[LispM-Hackers] Heads-up

John Morrison jm@mak.mak.com
Mon Apr 8 19:50:01 2002


Hi All;

I have compiled (not run, and yes, I know there is a difference) and
linked the mainline e3 sources against the primitive x86 runtime
support package (such as it is).  I have downloaded and run the
resulting executable (which, as I said, included the e3 object, but
didn't jump to any entry points).  The executable is still within
acceptable size limits (640K DOS type limits).

I have not run any really significant portion of the e3 code on the
bare iron.  Before I can do that, I need to do some MMU work in the
runtime support package (in order to have a 128MB continuous block of
address space to map onto the existing in-memory band pages).

Most of the problems I had dealt with C++ stream I/O.  I had to fake
up a portion of the library.  I also ifdefed some formatted
printf-based I/O stuff and used stream stuff instead.  I also disabled
some speculative interpretation of lispm Q pointer contents as
characters because it used ctype (and I was in a hurry).  I also
ifdefed out some unneeded include files (at least they're unneeded on
my linux box) in order to try to minimize the number of things I had
to fake up.

I also separated out the band loader from the band proper because I
suspect I'll just want to remap the band in situ after Etherboot has
loaded it.  We might want to do something similar with mmap and
copy-on-write and mprotect (do we need to have a read-barrier?) on
UNIXish OSes.

Although I rebuilt the "normal" e3 (i.e., the one you get when you
type "make" in the top-level e3 directory) and ran it successfully (as
near as I could tell from the diagnostic printouts), I will probably
check a little harder to make sure I haven't really screwed up
anything and then commit the stuff ASAP.

-jm

-- 
==== John Morrison
==== MAK Technologies Inc.
==== 185 Alewife Brook Parkway, Cambridge, MA 02138
==== http://www.mak.com/
==== vox:617-876-8085 x115
==== fax:617-876-9208
==== jm@mak.com