[Dlang-internal] Regression control & breaking changes policies
Walter Bright via Dlang-internal
dlang-internal at puremagic.com
Tue Dec 6 19:34:02 PST 2016
On 12/6/2016 5:54 PM, Dicebot wrote:
> On 12/05/2016 03:10 AM, Walter Bright wrote:
>> The table makes sense and looks right. But there's a problem with the
>> return scope changes. It's just too much to just wholesale deprecate
>> things all at once.
>
> It will need to happen at some point anyway. Without having those
> deprecation implemented we can't even know how much existing code is
> affected.
That's the point of the flag. It can be done on the user's timescale, not ours.
>> People need time to ease into it, not be faced with
>> a pile of diverse deprecation messages.
>
> We can introduce `-preview=XXX` flag for that purpose but the key thing
> is that it still has to use deprecations and not errors for all scope
> related changes. Otherwise you introduce dangerous disparity between
> what gets previewed and what will eventually become the default.
I agree, but it doesn't have to be deprecations until the flag becomes the default.
>> Having -transition=safe makes that practical, and also ensures time to
>> correct any unrecognized issues with it.
>
> 1) `-transition` flag is not for this purpose. You want this behavior -
> please introduce new flag group, for example `-preview=scope`. Desire is
> legit but you have to use a different flag for such purpose.
It originally was just `-safe`, but I got a lot of flak for that and pressure to
use `-transition`. I don't really care what the flag is. It just needs a flag.
I doubt users will really care either if it is -safe, -dip1000,
-transition=safe, or -preview=safe.
> 2) You must not use the very same flag for bug fixes as an excuse to not
> bother of deprecations. https://github.com/dlang/dmd/pull/6290 is the
> last one remaining now there was no justification to merge it in first
> place.
There isn't a hard line between what is a bug and what is not. It'd be nice if
there was. Pretty much all of these fall under fixing unsafe code.
More information about the Dlang-internal
mailing list