[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Leakiness and Kernels

It is certainly true that Common Lisp is more complex than the Lisps
I know and love.  But it's not *that* big.  Our current kernel is 
40312 words (79 pages).  The whole thing takes 559 pages, which is
somewhat more than a section.  But that's not the kernel: that's
the whole implementation.  And we don't have a compiler yet, so
that is interpreted code.  I assume the compiled version will be
smaller.  Note that our "kernel" is in fact somewhat larger than
necessary.  I have handcoded everything that I thought would
improve performance.  This includes EVAL, most of READ and PRINT,
and various other things.  There are also complications such as
an EMACS interface, and code to save a core image without using
the SSAVE JSYS.  These are not part of the Common Lisp definition.
(And in fact the save code is no longer needed, as SSAVE now works
with multi-section programs.)

If you wanted to do an implementation on a microcomputer, using a
minimal kernel, I don't think the kernel for Common Lisp would be
any bigger than the kernel for any other modern dialect.  The
things I object to most are complexities in lambda binding, multiple
values, and the way the sequence functions are designed.  But only
multiple values are really needed in the kernel, and the amount of
code for them is minimal.