[17:41] <Krystof> It's compiling! [17:41] <Krystof> make-target-2 is running! [17:41] <Krystof> WOOOOHOOOOO! [17:41] <wnewman> ship it. extensive testing is for weenies
Well, that might be a little exuberant; maybe an IRC excerpt isn't the best way of summarizing an achievement. So what have we done? Well, we now have a Common Lisp compiler, written in Common Lisp that can be built from a mostly unrelated Lisp compiler.
To people in the C world, this may not seem unusual. After all, gcc is built initially by vendor C compilers, then by itself. The difference between compiling C and compiling Lisp (well, OK, a difference) is that the act of compilation changes the state of the compiler.
This therefore raises portability issues as soon as you try to model the act of compilation itself. For instance, CMUCL, in its build process, scribbles over its own internal data structures, which is fine, as long as you're not trying to change the representation of those data structures; if you are, you need to find some way of bootstrapping the changes.
As of this week, though, we can state with a small degree of confidence that one can make arbitrary (consistent) changes to the source of SBCL and not have to deal with the bootstrapping question. What does this buy us? Nothing, really, except a small degree of confidence that one can change various representations without having nasty surprises jump out at us. This is not an end-user-visible improvement, really. It does give the maintainers a warm, fuzzy feeling, though.