How do we get started?

Jordan Henderson jordan@Starbase.NeoSoft.COM
Fri, 23 May 1997 09:08:14 -0500 (CDT)

Fare Rideau writes:
>    Immediate goals:
> define a core language, and implement it in any quick implementation
> language: hacks an existing CL/Scheme compiler (say, CMUCL),
> write an interpreter in C/asm, whatever.

Why not write the Kernel Lisp in CL?  Not as an extension of CL, or a bunch
of hacks to CL, but first an interpreter for the new language and then a
compiler for the new language.  You'd be further ahead in the recoding
of the Kernel Lisp in Kernel Lisp if it were first expressed in CL.

And... sorry about arguing a small point when you're trying to get 
something organized here.  I still believe that we need to be thinking
of writing whatever we need in CL (or scheme) wherever possible.  The
danger is that if we don't eliminate C from the underpinnings wherever
possible people won't put their efforts in really doing the necessary
infrastructure work in CL, they'll fall back on awk or perl, or C or C++,

I really winced when I saw an early MzScheme release that used a perl
script to generate C++ interface code.  I think we need to be advocates
of Lisp first, and OS designers second.  Maybe I'll submit some language
to the draft manifesto along these lines, but I think we are trying to 
show that Lisp and Lisp-like languages have the most applicability, that
they are good for all kinds of applications, including writing an OS.

One really powerful thing that could come out of these projects early
would be a portable, working rebuttal to John Ousterhaupt's opinion that
you need both a scripting and a systems programming language.  I think 
we can come up with an environment good for both!  (By systems programming
he was not referring to the domain of Kernel Lisp, but just low-level
programming within the contex of an OS.)

For this (and other) reasons, there needs to be an overall project that
synergizes the sub-projects.  For example, a good first Kernel Lisp compiler
could generate LispVM if the LispVM is designed to be easily compiled to
native.  If the LispVM doesn't have as a goal good compilation to native,then
it makes a poor target for the Kernel Lisp.

Sorry about this... It's probably more empty talk.  I could better spend my
time actually doing some of the above than talking about it.

-Jordan Henderson