On 5/11/2013 7:30 PM, Jonathan M Davis wrote:
But in theory, the way to solve the problem of your program not compiling with
the new compiler is to compile with the compiler it was developed with in the
first place, and then if you want to upgrade your code, you upgrade your code
and use it with the new compiler. The big problem is when you need to compile
the compiler. You have a circular dependency due to the compiler depending on
itself, and have to break it somehow. As long as newer compilers can compiler
older ones, you're fine, but that's bound to fall apart at some point unless
you freeze everything. But even bug fixes could make the old compiler not
compile anymore, so unless the language and compiler (and anything they depend
on) is extremely stable, you risk not being able to compile older compilers,
and it's hard to guarantee that level of stability, especially if the compiler
is not restricted in what features it uses or in what it uses from the
standard library.

It isn't just compiling the older compiler, it is compiling it and verifying that it works.

At least for dmd, we keep all the old binaries up and downloadable for that 
reason.

Reply via email to