LISPOS: My manifesto
Dave Mason
dmason@scs.Ryerson.CA
Sat, 28 Mar 1998 10:40:46 -0500
BRIAN SPILSBURY writes:
> Why did the list die down last time? Not because it had any different
> ideas to this time, but because nothing got started. People stopped
> talking once it was clear that nothing was happening, and either went
> away or went off to start something, and come back when they had a core
> to build upon.
>
> If you want the list to serve a purpose you'll need to get several people
> to agree on doing something, and co-ordinate via the list, or wait until
> someone who has gone away has a core they consider worthy of being built
> upon.
I think we should work in parallel as much as possible. If some
people want to work in CL, cool; if some people want to get down to
the silicon, cool; let them do it. I wish them good luck, and think
that (at least the latter) is a fine project (but see points 5,6 of my
last paragraph).
But, I want to make *my* life better, as well as the maximum number of
other people, within the context of what I can do. So here is what I
am doing:
1) Adopting Rscheme. It has a nice object system that goes all the
way down. Not full-blown CLOS, but, in the words of the prime
Rscheme author, ``the closest that we know how to do efficiently,
today''. It has a high-quality garbage collector. It has
persistent store. It has a compiler to C, and a good byte-code
compiler. It has bindings to Posix, Unix, and X11. It is under
active development and support. Yes, it has a big footprint, but
memory and disk is cheap, and see #7, below.
2) Adopting Unix and X11. I'll be doing my development on Linux and
Solaris, but everything should be portable to other (at least Unix)
platforms. X11 may not be the best, but it's certainly good
enough, and it's time that the Lisp community got the message from
Dick Gabriel's paper! Linux will, arguably become the #2 operating
system on desk-tops over the next few years, and I want to leverage
off that. Despite the contentions of one lone voice, Windows isn't
a platform that *I* would even consider running on for longer than I
have to, let alone develop on. I may hate Unix, but it's the best
of a bad bunch.
3) I have a thesis student building a RScheme-based window manager for
X11. It will be clean, flexible, and Scheme from top-to-bottom;
from customization language on up.
4) I will build a RScheme-based web browser for X11. (Netscape is
driving me nutty, and doesn't have the flexibility I want. IE is,
of course, orders of magnitude worse.)
5) I'm planning to hire a student to work on a free CLIM port to
RScheme/X11 this summer. If anyone has advice, particularly on
priority items and appropriate directions, I'd be more than happy
to hear them. I haven't used CLIM, but it looks like a good system
and I'd rather we followed existing, good, standards than make up
new ones.
6) I have some significant extensions to a HTTP server that Donovan
Kolbly (the RScheme lead) started. Not quite ready for prime-time,
but some very cool features.
7) My research is on whole-program-analysis compilers. I have the
start of a Scheme front-end for this, and am expecting *very*
high-quality results (fast/small executables) from this. This
compiler is definitely in the category of slow/batch compilation at
the moment, but my goal is to make the system as compatible with
RScheme (especially in the area of Posix, Unix, and X11 bindings)
as possible, so you can use RScheme for interactive work, then use
my compiler to produce the final executable.
Versions of 3,4,6 should be available by late June. 5 will be later
in the summer, and 7 will be 8-12 months.
Things I wish other people would do:
1) a cleaner, leaner, XEmacs, in Scheme using RScheme's objects;
2) port scsh to RScheme;
3) build utilities;
4) help write a free Scheme CLIM (The fact that there's one available
for ACL is almost enough to convince me to work with CL instead of
Scheme, but then I look at CL and the investment to learn all the
libraries and I gag... but if it works for you, cool... regardless,
I don't want to argue about it);
5) add extensions to the Linux brk system call to support better GC/VM
interaction;
6) extend Linux loadable-modules to support loadable Scheme
executables in the Linux kernel (this would give almost all the
power I hear people wanting from a LISP-to-the-metal system, while
leveraging off the billion Linux support people out there);
7) applications; applications; applications...
../Dave