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

several hundred ugly things

    ...  You develop your program using whatever parts of the full
    language you need, then compile in a way that trims away anything that
    wasn't used.  This creates a subset of Common Lisp that exactly fits the
    needs of the application in question.  A simple version of this is trivial
    to implement in any system that has a copying GC; ...

If only that were true.  For example, a routine that uses + implicitly
uses bignums and complex numbers, plus ERROR to handle problems like
(+ 'a '(foo)).  Bignums require GC.  ERROR uses FORMAT, READ, and
EVAL.  FORMAT uses..., and pretty soon you've got the kitchen sink
again.  Lucid has devoted a lot of effort over the last year or so to
the goal of making small delivery images.  We've learned a lot and made
considerable progress, but because of issues like the above, the task
was unfortunately far from trivial.

Perhaps another way to state the problem is that defining "fits the
needs of the application" for arbitrary applications is a knowledge-
intensive (i.e. difficult) task.

On the other hand, if you meant by "simple" that ERROR terminates
lisp, bignums aren't allowed, etc., then I guess I can't quibble.