Larceny is a simple and efficient implementation of the Scheme programming language. Created originally as a test vehicle for research on garbage collection and compiler optimizations, Larceny has grown into a major multiplatform system, and is currently the only implementation that supports all four de facto standards for Scheme: IEEE/ANSI, R5RS, ERR5RS, and the R6RS.
Major goals of Larceny are:
- Small and reasonably portable: The libraries are written almost entirely in Scheme, and machine-specific parts of the run-time are mostly isolated to a few modules written in C or assembly language.
- Good overall performance: Roughly comparable to Chez Scheme, SML of New Jersey, and commercial Common Lisp systems.
- Implements all four de facto standards for Scheme: IEEE/ANSI, R5RS, ERR5RS, and the R6RS.
- Built around an optimizing Scheme compiler: Twobit.
- Supports pluggable garbage collectors. At one time there were five:
- a traditional stop-and-copy collector
- a traditional copying younger-first generational collector
- a copying hybrid renewal-older-first generational collector
- a copying hybrid deferred-older-first generational collector
- the Boehm-Demers-Weiser conservative collector
A radical new garbage collector is under development.
Development of Larceny has been supported by NSF, Sun Microsystems, and Microsoft.