Maxim Fomin:
Thanks, that is clear. Unfortunately, I cannot say that the
explanation improves my attidute to the language - dmd still
breaks too often code and some significant features (like AAs,
scope, shared) are at risk to be seriously changed which is a
serious problem to the user.
The creation of such breaking changes should have priority over
(= happen sooner than) most other compiler changes and bug fixes.
Beside AAs, scope, and shared, another smaller example of such
breaking changes was discussed a lot today:
http://d.puremagic.com/issues/show_bug.cgi?id=11080
http://d.puremagic.com/issues/show_bug.cgi?id=4733
In Issue 11080 someone has asked to disallow code like:
assert("something going wrong");
But I suggest to not add that rule and instead implement the
small breaking change discussed in Issue 4733, that disallows the
use of dynamic arrays in all boolean evaluation contexts. So
Issue 11080 becomes a special case that needs no special testing
code in the compiler.
Bye,
bearophile