[dmd-internals] [D-Programming-Language/dmd] 588161: Add option to show deprecated errors as warnings

Jonathan M Davis jmdavisProg at gmx.com
Mon Nov 12 10:19:41 PST 2012


On Monday, November 12, 2012 11:08:23 Leandro Lucarella wrote:
> I'll be more than happy to make the changes if you convince Walter to merge
> them, it took me more than an year to convince him of this change, and it
> was completely backwards compatible :D
> 
> I did it this way just to increase the chances of being merged, but I
> strongly believe the right default is to emit warnings for deprecations and
> have, say, -de for convert them to errors and the regular -d to completely
> silence them.
> 
> Backwards compatibility is not a huge problem as for the extremely special
> cases when somebody want's the old behaviour as default, it can just add -de
> to dmd.conf and that's it.

Except that the change _would_ be backwards compatible. Anything that's 
already deprecated would just start compiling, whereas before it didn't 
without -d. Presumably -d still gets rid of the warnings/errors, so there 
would be no change there. So, there wouldn't really be any effect until more 
stuff is deprecated after the change is made, because those deprecations 
wouldn't then break code. The only backwards compatibility which would be
lost would be the -di flag, since it wouldn't be needed anymore, but it was
just added, so dmd has never been released with it anyway.

I'm all for arguing in favor of this, but I don't know what Walter's take on 
it is. I would think though that the fact that making deprecated warn by 
default would reduce code breakage would be something that he'd be interested 
in given how much he hates it when people's code gets broken due to library 
changes. Multiple of us have argued this in at least a couple of places 
lately, but Walter hasn't responded to the idea anywhere AFAIK.

- Jonathan M Davis


More information about the dmd-internals mailing list