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
