Breaking D2 language/spec changes with D1 being discontinued in a month

SiegeLord none at none.com
Tue Nov 27 17:38:37 PST 2012


Another DMD alpha, another set of previously valid code that no 
longer compiles. With 2.060 it was the TypeInfo constness changes 
in druntime, with 2.061 it is the dissalowance of rebindability 
of the this pointer. The latter did make it into the spec half a 
year ago, but recently it was actually dissallowed in the beta. 
Unlike many other features of the sort (e.g. octal literals) 
there is no warning or deprecation errors... code that use to 
compile simply does not anymore.

In this last case, in principle, we were lucky... the spec was 
changed. What about things like this: 
http://dlang.org/attribute.html#inout . Are those undocumented 
features liable to change at any time? What warning will there be 
when somebody decides to submit an inout bug and somebody else 
fixes it in a way that breaks existing code?

D1 is scheduled to be discontinued in a month, and every new 
version of DMD keeps changing D2 in code breaking ways (or worse, 
with backwards incompatible spec changes). I think that unless 
people responsible for these things get their act together and 
stabilize D2 against these issues, D1 support should be extended 
until that happens.


More information about the Digitalmars-d mailing list