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

Steven Schveighoffer via Digitalmars-d digitalmars-d at puremagic.com
Wed Apr 22 09:10:37 PDT 2015


On 4/22/15 7:41 AM, Daniel Kozak wrote:
> On Wednesday, 22 April 2015 at 11:36:35 UTC, Dicebot wrote:
>> On Wednesday, 22 April 2015 at 11:28:44 UTC, Daniel Kozak wrote:
>>> This code compile fine under both versions:
>>>
>>> dmd (2.066, -debug -d):
>>
>> -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?
>
> I decided to ignore deprication messages, but I never expect it could
> lead to change semantics. I would expect compile breakage on 2.067 and
> after some releases maybe change of semantics. Btw. on 2.067 its compile
> even without -d parameter

You are misunderstanding what deprecation means then. The whole point is 
"the semantics are going to change, please update your code, it's coming 
soon". The -d is a way to get your code to compile now while you update.

-Steve


More information about the Digitalmars-d mailing list