In the last week, I appear to have gotten most of the way[*] through
porting the old CMUCL HPPA backend to SBCL. Currently, the port (running
on parisc/Linux) gets all the way through cold-init and into warm load
before dying, probably at the first triggered garbage collection
(sometime while compiling the assembly/ files).
Why am I doing this? Well, firstly there's the slight "because it's
there" phenomenon -- a friend of mine has an HPPA/Linux machine and
asked me if I wanted a challenge. But there is[*] a plan behind the
One of the great advantages, I believe, of SBCL is that it builds
without manual intervention from earlier versions of itself. Now, while
that may sound like a bit of a theoretical advantage, I think it's
a practical one too, because it means that maintaining backends is much
lower maintenance[*] (for instance, on Linux, we can rely on the Debian
project to produce binaries for new releases using their "buildd"
So, what I would like to do is to get running the hppa and mips backends
from cmucl (is there any hardware in existence that looks like "RT"?) so
that users of those platforms can have a native-code compiler without
too much difficulty... but then, once all the backends have been ported
from cmucl, I plan to take a scalpel to them and extract what is common
to all, effectively defining an interface. This I would do in the hope
of making future ports (from scratch!) to backends more easy, as well as
increasing[*] the maintainability of the existent supported backends.
Any thoughts or ideas (or volunteers to port the mips backend or to look
at the hppa code -- there's some ldso-stubs.S hackery that needs to be
done, at the very least... :-) would be most welcome.
[*] I hope.
Jesus College, Cambridge, CB5 8BL +44 1223 510 299
http://www-jcsu.jesus.cam.ac.uk/~csr21/ (defun pling-dollar
(str schar arg) (first (last +))) (make-dispatch-macro-character #\! t)
(set-dispatch-macro-character #\! #\$ #'pling-dollar)