On 28 November 2012 03:40, deadalnix <[email protected]> wrote: > 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 ? >
Not really. I haven't seen any problems in any new stuff since I've been around. Almost all the issues I encounter stem from the type system (like the alias/builtin type thing discussed), tuples (value/expression/type tuples? what is the syntax to identify these? what are they exactly?), is()/__traits not identifying things cleanly (strange workarounds to identify seemingly trivial details)... and ref. Every one of these things was in the language before I started using it, so at least to me, they feel like old features that have just always been there... 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 ! >
