LISPOS: My manifesto

Dave Mason dmason@scs.Ryerson.CA
Sat, 28 Mar 1998 10:40:46 -0500

> 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

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...