From: Martin Cracauer
Subject: CMU-Lisp on 486 running Mach ?
Date: 
Message-ID: <1992Nov11.132604.19198@wavehh.hanse.de>
I wonder, if one can bring up the CMU Common Lisp from the sources on
a PC running Mach.

Anybody there, who knows ?

An e-mail address of someone at CMU, who likes to respond, would be
good, too.

Thanks
	Martin
-- 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Martin Cracauer,    ········@wavehh.hanse.de
Waldstrasse 200, W-2000 Norderstedt, Germany
Tel.: +49 / 522 18 29, Fax.: +49 / 522 85 36
From: ············@cs.cmu.edu
Subject: Re: CMU-Lisp on 486 running Mach ?
Date: 
Message-ID: <0f2=FHG00jeiMrS8UM@cs.cmu.edu>
········@wavehh.hanse.de (Martin Cracauer) writes:
> I wonder, if one can bring up the CMU Common Lisp from the sources on
> a PC running Mach.
> 
> Anybody there, who knows ?
> 
> An e-mail address of someone at CMU, who likes to respond, would be
> good, too.
> 
> Thanks
>         Martin
> -- 
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> Martin Cracauer,    ········@wavehh.hanse.de
> Waldstrasse 200, W-2000 Norderstedt, Germany
> Tel.: +49 / 522 18 29, Fax.: +49 / 522 85 36

Random queries about CMUCL can be sent to ··········@cs.cmu.edu.

A port to the 386/486 running MACH is currently in progress but is
much more involved then a port to Yet Another Risc Machine would be
because of the limited number of registers.  The biggest problem is
that the garbage collector assumes that the register file can be
partitioned into two sets, one that only over holds valid lisp
descriptors that can be identified by the garbage collector and one
that holds raw binary values that would confuse the garbage collector.
Given that the x86 only has 8 registers, artificially constraining
their use would result in horrible performance if not a total
implementation nightmare.

We have figured out how to solve this problem, but it requires a
rather significant change: the compiler is going to have to annotate
the object code with information about what registers hold valid lisp
objects (i.e. the liveness info) at various points in the code and
then the garbage collector has to be taught that it can only GC at
those points.

We've been planning to move to a generational garbage collector, and
it seemed like a good idea to merge these two tasks together given
that they both involve bashing on the garbage collector.  But other
higher priority tasks keep pushing this one back.  I plan on resuming
active work on the 386/486 port Real Soon Now, and should have an
alpha system Soon After That.  In other words, don't expect anything
before early next year, and that is even rather optimistic.  (Of
course, if someone were to donate money and/or machines to our
project, that would of course cause us to re-prioritize the various
tasks at hand. :-)

-William Lott
CMU Common Lisp Group