WTF: dmd 2.066 vs. dmd 2.067 really dangerous code breakage

Dicebot via Digitalmars-d digitalmars-d at puremagic.com
Thu Apr 23 02:16:04 PDT 2015


On Thursday, 23 April 2015 at 08:11:50 UTC, Daniel Kozak wrote:
> On Wednesday, 22 April 2015 at 22:23:30 UTC, Martin Nowak wrote:
>> On 04/22/2015 01:36 PM, Dicebot wrote:
>>> 
>>> -d is your enemy, If you remove that, there will be a clear 
>>> warning
>>> "Deprecation: variable XXX.S.FLAG_ON immutable field with 
>>> initializer
>>> should be static, __gshared, or an enum". You decided to 
>>> ignore and hide
>>> it, why the surprise about the breakage?
>>
>> Maybe using -d should itself emit a warning?
>
> This does not help (-d is not problem), you can not protect me 
> from myself. Real problem is that changing semantics never end 
> up well. If I skip 2.066(and many versions before) version of D 
> compiler, I even do not get any deprecation or warning message. 
> Original code is 2 years old (which should be legacy code for 
> someone).

Skipping compiler versions during upgrade is asking for trouble 
too. I don't remember it being done even for GCC - production 
users always do it one major version step at a time. And C was 
not supposed to change at all.



More information about the Digitalmars-d mailing list