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. Larceny now supports the four most important standards for Scheme (IEEE/ANSI, R5RS, R6RS, and R7RS) together with many of the Scheme Requests for Implementation (SRFIs).
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, R6RS, and R7RS.
- Built around an optimizing Scheme compiler: Twobit.
- Supports pluggable garbage collectors.
The following garbage collectors have been supported
at one time or another:
- 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
- a regional collector
- the Boehm-Demers-Weiser conservative collector
Development of Larceny has been supported by NSF, Sun Microsystems, and Microsoft.