On 03/16/2014 05:08 AM, Andrei Alexandrescu wrote:
This will statically break code. It will refuse to compile code that is
incorrect, but also plenty of code that is correct; the compiler will
demand extra guarantees from user code, be they in the form of casts and
stated assumptions.
I believe this is a bridge we do need to cross. One question is how we
go about it: all at once, or gradually?
Please think hard about this. Why does it need to break code?
Can't we have a proper deprecation cycle?
Until now it was always possible to add proper deprecation warnings and
allow people to transition code at their own pace. I'm optimistic a
solution can be found here too.
Prominent examples for complex changes with working deprecation:
https://d.puremagic.com/issues/show_bug.cgi?id=6652
https://d.puremagic.com/issues/show_bug.cgi?id=12359
By the way we've succeeded to release multiple version without major
breakages. For the first time it was actually possible to compile the
same code with an updated compiler :o.
Next release 2.066 already risks to end this row by touching import
rules and AAs.