16 Jun 2002 crhodes   » (Master)

[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.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!