[LispM-Hackers] E3 hardware and software system requirements
James A. Crippen
30 Dec 2001 15:13:57 -0900
John Morrison <firstname.lastname@example.org> writes:
> Paolo Amoroso wrote:
> > It would be useful to list on the E3 project site some information on the
> > current hardware and software requirements, especially regarding
> > compilers--gcc and/or egcs?--and required libraries, for trying the
> > emulator, i.e. for running it until it dies at the right place.
> Good idea. Even complaints of the form "e3 doesn't build on ..." would
> help us both fix the portability issues and learn what platforms are
> interesting to people (and maybe pick up some recruits).
I suppose I could hack up a quickie table listing last known test
dates on which platforms, and results which would basically be 'works
-- output looks right' or 'works -- not sure about output' or 'blows
up' or 'can't compile'. If someone else wants to do so they're
welcome to it, but I think I've become the default web presence
I'll announce it when I get the table up.
> > By checking the list archive I get the impression that any reasonably
> > standard Unix system will do, and that nothing has been decided about
The goal is to have it basically POSIX portable to the extent
possible. Some things probably won't be POSIX portable in the long
run, like fake ethernet (which I've been thinking could be done using
There's only one major hardware requirement at this point, and that is
that you have at least (and preferably more than) 32 MB of physical
memory on the system that you are using. This is because the
N928.LOAD band that we are testing with is 32 MB in size, and the
entire band is loaded at boot. The requirement for memory may not
actually be necessary to run, but I'd rather not suggest that you swap
a lot unless you really enjoy watching your drive lights flicker.
So far I know it builds fine and runs okay on every Unix I've tested
or heard tested, including Linux/x86, Linux/UltraSparc, MacOS X, and
Solaris/UltraSparc. I think a Solaris/Sparc test will be coming
fairly soon when a friend finishes patching his Sun box. JM tried
Cygwin under Win2k as well, and got it sorta working (some ugly hacks
necessary for missing headers).
The main problems in portability are going to be due to emulation of
certain hardware, like networking and serial. Secondary portability
problems will crop up from differences in quality of C++ compilers and
associated libraries and headers. The code is already (or seems to be
so far) endian-independent, adjusted at compile time.
> (james?) for Sparc. I also built it using Cygwin for Win2K, but that
Kappa runs Linux/UltraSparc, btw.
> was before I realized that meant we'd be forced to GPL the code (which
> might be a reasonable thing to do but I hate being pressured).
Indeed. The web page says that the license is 'envisioned' as MIT/X
or BSD-like. We'll argue about that later when we have something to
actually use. Until then think of it as approximately public domain
with some nebulous, unidentified strings attached.
> > graphics yet. Is this correct?
> Yup. At work, we use Qt as a portable GUI system (even if we really
> don't need very much help). Even if we did use something like that I
> want to build e3 to run on bare x86 iron, so some HAL is probably
Qt btw is not free for Windows, it's commercial. But an evaluation
copy is available for non-commercial(?) use. It is of course free
under Linux and *BSD.
I see graphics support that can be recompiled for a few different
backends, eg Xlib, SDL, etc. We once talked about this but decided to
put off discussing graphics until we had something more than the cold
load stream to worry about. (The cold load stream is basically like
console output on a Unix box before the window system starts up.
Except that it's a little different... Anyway, it's non-graphical and
can be done using plain ASCII text.)
James A. Crippen <email@example.com> ,-./-. Anchorage, Alaska,
Lambda Unlimited: Recursion 'R' Us | |/ | USA, 61.20939N, -149.767W
Y = \f.(\x.f(xx)) (\x.f(xx)) | |\ | Earth, Sol System,
Y(F) = F(Y(F)) \_,-_/ Milky Way.