DIP 1028---Make @safe the Default---Community Review Round 1

mipri mipri at minimaltype.com
Thu Jan 2 15:50:29 UTC 2020

On Thursday, 2 January 2020 at 15:29:38 UTC, jmh530 wrote:
> The problem is that the behavior of foo changes if baz is 
> marked @safe rather than @system.

So, +1 migration task:

- [ ] audit uses of isSafe et al.

Excepting assertions, in Phobos, std.range RefRange uses it to
conditionally add @trusted and std.datetime uses it in some
deprecated code.

My response to this DIP was "that sounds great but I hope it
doesn't take forever for the default-default to change." I
think a list of things to check, like this, would help.

These measures may also help:

* --legacy=systemdefault=[fakesafe|system] flag

where 'fakesafe' presents unannotated functions *without* this
flag as if they were @trusted.

* dub.pm stale-package designation.

If a module hasn't been updated since some date, then dub warns
that it's stale while turning the previous flag on for it. This
lets the default-default change *sooner*, which is *better* as
it reduces the truly sucky period of things being up in the

* other stuff?

More information about the Digitalmars-d mailing list