On Wednesday, 28 November 2012 at 00:07:42 UTC, bearophile wrote:
Walter Bright:
It is unbelievably frustrating for people to have their code
break with each new release, have older projects all
invalidated, with few willing to do the maintenance work to
bring them back on line.
I am still converting some of my D1 code to D2, plus I have lot
of D2 code. Since many months I have stopped downloading
official dmd releases because the amount of breakages in my D2
code between a version and the successive one was too much
large. DMD 2.061 has so many changes and improvements that it
will require several changes in everyone D2 code.
To avoid performing such large amount of changes I now compile
dmd every two or three days, and I have scripts that compile
all my D2 programs and report the breakages. This way I fix a
small amount of breakages at a time in my D2 code, this is
simpler.
Most of those breakages are caused by bug fixings that reveal
bugs in my D2 code (example: since recently throwing
constructors accepted a nothrow tag, and I have many more
examples). But I am willing to perform this maintenance work
because they improve my future D2 programming and code.
If we add to those bug-fixing-changes some breakage caused by
design changes, this is not going to make my live significantly
worse, it's just one more breakage among several others.
Don't you think that this whole situation is due to adding
feature after feature in an unstabilized mess ?
I mean, how the fact that a nothrow constructor can throw can be
explained in another way (to use your example) ? A feature in
that state should have reached any release, ever !