On Friday, 22 May 2020 at 17:12:47 UTC, Atila Neves wrote:
[..]
Yes, there's a cost, which is carefully vetting extern(C) and extern(C++) declarations. The decision came down to finding this an acceptable trade-off.

How would you feel about a DIP that the only thing it did was assume all non-extern (D) code was implciti @trusted? And how about if all such code suddenly became @safe without any vetting by developers and not even a compiler switch to revert to the old behavior?

As evidenced by the community outrage, no one but Walter and (maybe) you are convinced that safe-by-default on function bodies should imply @safe on non-extern(D) function declarations.

So how about a compromise? We accept a modified version of DIP1028 in which safe-by-default applies only to function definitions and extern(D) function declarations. And then there's a separate compiler switch that changes non-extern (D) function declarations to be @trusted? If you like this "feature" you're free to use it on your personal projects, but please don't force it on everyone who wants @safe to mean anything meaningful.

Reply via email to