Migrating D front end to D - post Dconf

Jonathan M Davis jmdavisProg at gmx.com
Sat May 11 15:52:11 PDT 2013


On Saturday, May 11, 2013 23:43:19 John Colvin wrote:
> Can't this be eased with readily available binaries and cross
> compilation?
> 
> E.g. We drop the C++ version in 2.7. You want DMD version 2.8.2.
> The minimum needed to compile 2.8.2 is 2.7.5:
> 
> You can download a binary of 2.7.5 for any common system, cross
> compile 2.8.2 for your development system, viola! If there are
> binaries available for your development system, then it becomes
> almost trivial.

Sure, but that assumes that you have access to a compatible binary. That's not 
always easy, and it can be particularly nasty in *nix. A binary built a few 
years ago stands a good chance of being completely incompatible with current 
systems even if all it depends on is glibc, let alone every other dependency 
that might have changed. It's even harder when your language is not one 
included by default in distros. For Windows, this probably wouldn't be an 
issue, but it could be a big one for *nix systems.

> Even if this wasn't possible for some reason, recursively
> building successive versions of the compiler is a completely
> automatable process. dmd+druntime+phobos compiles quickly enough
> that it's not a big problem.

Sure, assuming that you can get an old enough version of the compiler which 
you can actually compile. It's by no means an insurmountable problem, but you 
_do_ very much risk being in a situation where you literally have to compile 
the last C++ version of D's compiler and then compile every version of the 
compiler since then until you get to the one you want. And anyone who doesn't 
know that they could go to an older compiler which was in C++ (let alone which 
version it was) is going to have a lot of trouble.

I don't know how much we want to worry about this, but it's very much a real 
world problem when you don't have a binary for an older version of the 
compiler that you need, and the current compiler can't build it. It's been 
costing me a lot of time trying to sort that out in Haskell thanks to the 
shift from the 98 standard to 2010.

- Jonathan M Davis


More information about the Digitalmars-d mailing list