Migrating D front end to D - post Dconf
David Nadlinger
see at klickverbot.at
Sat May 11 11:45:06 PDT 2013
On Saturday, 11 May 2013 at 18:15:22 UTC, Daniel Murphy wrote:
> If we use them in the compiler, we effectively freeze them. We
> can't use
> the new modules, because the old toolchains don't have them.
Fair enough, but in such a case we could always add the parts of
them we really need to the compiler source until the module is
present in the last supported version. The critical difference of
this scenario to your approach is that the extra maintenance
burden is limited in time: The code is guaranteed to be removed
again after (say) a year, and as Phobos stabilizes more and more,
the total amount of such "compatibility" code will go down as
well.
> We can't fix
> old broken modules because the compiler depends on them.
I don't see your point here:
1) The same is true for any client code out there. The only
difference is that we now directly experience what any D library
writer out there has to go through anyway, if they want their
code to work with multiple compiler releases.
2) If a module is so broken that any "fix" would break all
client code, we probably are not going to use it in the compiler
anyway.
> If you add code to
> work around old modules being gone in later versions, you
> pretty much end up
> moving the source into the compiler after all.
Yes, but how often do you think this will happen? At the current
point, the barrier for such changes should be quite high anyway.
The amount of D2 code in the wild is already non-negligible and
growing steadily.
> If we only need to be able to compile with a version from 6
> months ago, this
> is not a problem. A year and it's still workable. But two
> years? Three?
> We can get something right here that gcc got so horribly wrong.
Care to elaborate on that?
David
More information about the Digitalmars-d
mailing list