DIP 1028---Make @safe the Default---Community Review Round 1
newshound2 at digitalmars.com
Sat Jan 4 04:21:05 UTC 2020
On 1/3/2020 3:30 PM, Johan wrote:
> I expect the change of default to be a _lot_ of work to deal with at Weka. I
> think it will not be easy at all, because there is a lot of templated code and
> code checking whether something compiles or not (`__traits(compiles)`). Every
> compiler update changes what compiles and does not compiles, and it is almost
> always very hard to track down how that changes the behavior of Weka's code. (If
> something doesn't compile, the error happens in a template that cannot be
> instantiated because some template 5 layers down is not instantiatable for
> example. The error won't say that of course...)
> With the @safe change, I'm expecting 100s of templates that will no longer
> compile or change behavior, and for very few of the compile errors will it be
> obvious what is going on. As said before, `@system:` is not going to help.
Templates without an explicit @safe/@trusted/@system will still get their safety
attributes inferred as before.
> I have no opinion on whether this is a good change or not. I just very much
> would like to get the message across that this change will be very disruptive
> and so please provide a long deprecation time (e.g. something like 2 years).
That's probably a good idea. Keep in mind that even when it is no longer a
-preview feature, there'll be a -revert switch there for a long time to continue
to use the old behavior.
I am interested to hear about your experience with this on Weka's codebase, and
am open to your advice on the timing.
More information about the Digitalmars-d