State of Play

Sean Kelly sean at invisibleduck.org
Thu Mar 26 13:08:20 PDT 2009


== Quote from Walter Bright (newshound1 at digitalmars.com)'s article
> Tomas Lindquist Olsen wrote:
> > On Thu, Mar 26, 2009 at 8:17 PM, Walter Bright
> > <newshound1 at digitalmars.com> wrote:
> >> Denis Koroskin wrote:
> >>> One of the breaking changes that I recall was that you made Posix
> >>> identifier built-in and thus any custom Posix versioning became an
> >>> error. Not sure if it was introduced in 1.041, though, but it is
> >>> still a breaking change.
> >> It was more of a build system change, but I get your point. It shows that
> >> even trivial changes are a bad idea for D1.
> >>
> >
> > Everyone certainly does not think it was a bad idea. If trivial things
> > like this sets people off, they should at least look at the problem
> > (and comment those few lines) before complaining.
> >
> > All my humble opinion of course.
> To me, it illustrates a fundamental disconnect. One cannot have both a
> 100% stable language and yet introduce improvements to it.
> As for the does one develop stable code targeting D1 and D2, I would
> suggest targeting D1 but be careful to use the string alias for all the
> char[]'s, and treat strings as if they were immutable. This will cover
> 90% of any source code changes between D1 and D2, perhaps even more than
> 90%. It's also very possible to write D1 code using the immutability
> style, in fact, I advocated it long before D2 (see all the old threads
> discussing Copy On Write). If code follows the COW principle, it should
> port from D1 to D2 with little more than a few cosmetic changes.

One minor thing in druntime that may help is that opEquals() returns
an equals_t, which evaluates to bool in D2.  It would probably be worth
changing the declaration in D1 to have a similar alias that evaluates to
int.  That should help address another minor inconsistency between D1
and D2.



More information about the Digitalmars-d mailing list