The Larceny Project -- Overview
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 theR6RS.
- 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
The
current version
of Larceny offers a choice between the first three garbage collectors
listed above. Younger-first generational collection is the current
default.
The hybrid deferred-older-first and conservative collectors
are no longer supported, as they seldom performed as well as
the younger-first or hybrid renewal-older-first collectors.
Central aspects of Larceny are described in
the
user manual,
a set of
design notes,
and the current
developers' notes.
Several theses and papers describe research conducted using Larceny:
- Lars Thomas Hansen, The Impact of Programming Style on the
Performance of Scheme Programs. M.S. thesis, University of Oregon
Department of Computer and Information Science, August 1992.
- William D Clinger
and
Lars Thomas Hansen.
Lambda,
the ultimate label, or a simple optimizing compiler for Scheme.
In the Proceedings of the 1994 ACM conference on LISP and Functional
Programming, SIGPLAN Lisp Pointers 7(3) (July-September 1994),
pages 128-139.
- William D Clinger and Lars T Hansen,
Generational Garbage Collection
and the Radioactive Decay Model.
Proceedings of the 1997 ACM Conference on Programming Language
Design and Implementation.
- William
D Clinger, Anne H Hartheimer, and Eric M Ost.
Implementation strategies for first-class continuations.
In
Journal
of Higher Order and Symbolic Computation,
12(1), 1999, pages 7-45.
(Click on Volume 11, Number 1 to navigate to the web page that
contains a link to the PDF.)
- Lars T Hansen.
Older-first garbage collection
in practice.
PhD thesis, Northeastern University, November 2000.
- Lars T Hansen and
William
D Clinger.
An experimental study of renewal-older-first garbage collection.
Proceedings of the 2002 ACM
International Conference on
Functional Programming, October 2002.
- William
D Clinger.
Common Larceny.
In the Proceedings of the 2005 International Lisp Conference,
June 2005, pages 101-107.
The
slides from the presentation are also online.
- William
D Clinger and
Fabio V Rojas.
Linear combinations of radioactive decay models for
generational garbage collection.
In Science of Computer Programming,
Volume 62, Issue 2, 1 October 2006, pages 184-203.
- William
D Clinger.
Rapid case dispatch in Scheme.
In the
Proceedings of the 2006 Scheme and Functional Programming
Workshop, University of Chicago TR-2006-06,
September 2006, pages 63-69.
Our research has been supported by generous support from
the National Science Foundation,
Sun Microsystems, and Microsoft.
$Id: overview.html,v 1.5 1998/12/21 21:46:17 will Exp $
larceny@ccs.neu.edu
Last updated (not yet checked in!) 24 December 2007.