Common Lisp Implementation Candidates
Clisp
Clisp is a Common Lisp implementation available here.
(The following hype was extracted from a post written by Reggie Perry.)
Clisp is a GPLed implementation of Common Lisp. Its flavor is that it
has a CLTL1(Commom Lisp, the Language Vol. 1) feel but they have
implemented a large portion of the passed votes in CLTL2 so they are
sort of ANSI. There are a couple of cool things about Clisp. First its
executable size and memory footprint is suprisingly small for a
full-blown lisp implementation.
In addition, He has gone through lots of trouble to tune the
implementation. It has generational garbage collection and hand tuned
assembly code for x86 and a couple of other implementations. It also
has short-float and long-float in which the long float has a variable
mantissa length, which is a multiple of 16 (or 32, depending on the
word size of the processor). These combinations mean that although the
system uses byte compilation, some operations end up being suprisingly
fast. The system runs on a lot of different machines/OSes including
NT, OS/2, and Amigia. It would seem like a nice base from which to
start although I am by no means a lisp of XEmacs expert. You might
want to talk to Bruno (Bruno Haible [haible@ilog.fr]) I bet he would
have some good suggestions.
So while I agree that native compilation is the best, Clisp may be a
good portable solution for people who dont have access to Unix to run
CMUCL, Linux to run Allegro CL, dont have the cash to get Commom Lisp
on Windows or want to use a CL based XEmacs but is running on OS/2 or
some other system that commercial lisp vendors wont port their wares
to.
(The following hype was written by Bruno Haible.)
- CLISP is pretty close to the ANSI Common Lisp standard (except for
some exotic features which would have a noticeable efficiency penalty).
- CLISP comes with its own bytecode compiler and bytecode interpreter
engine. As with Emacs Lisp, interpreted functions are debuggable,
and bytecode is not (because all source has been thrown away).
- CLISP is very portable. Ports include Amiga, OS/2, and
Win32. No such unportable things like `unexec'.
- CLISP is very robust. All functions perform strict argument type checking.
It's very difficult to make it crash, except by extending it with
buggy C code.
- CLISP has been in use continuously by about 1000 people since 1993,
200 of them on the mailing list. This has shaked out even the smallest
bugs.
- CLISP has a very efficient memory management and garbage
collector.
Michael Sperber [Mr. Preprocessor]
Last modified: Wed Jul 15 11:34:02 MST 1998