(18.03.95)
>Also, I know that Chez Scheme, which is available as a commercial product, >uses some sort of spiffy cutting-edge all-singing all-dancing GC algorithm, >but I don't know the details. >Most of the features are described in an Indiana University tech report available via ftp:
ftp.cs.indiana.edu:pub/techreports/TR400.ps.Z
Details about collector support for weak pointers and finalization using "guardians" can be found in the proceedings of the 1993 PLDI conference. The paper is also available via ftp:
ftp.cs.indiana.edu:pub/scheme-repository/doc/pubs/guardians.ps.gz
Carl Bruggeman bruggema@cs.indiana.edu
K. Nilsen. Reliable Real-Time Garbage Collection of C++. Computing Systems. vol. 7, no. 4, (Fall 1994).
Though the title mentions C++, the techniques can be generalized to support other languages. The paper discusses "accurate" (as opposed to conservative) garbage collection techniques, and describes the performance constraints that characterize "real-time performance".
To summarize, our garbage collection technique supports worst-case memory allocation delays of 500 microseconds at predictable times and worst-case memory access delays of 2 microseconds. The amortized allocation and memory access costs are nearly indistinguishable from more traditional C++ techniques for memory management. We rely on a "small" amount of hardware support coupled with the memory system to achieve this performance. The general design of the memory subsystem is portable between CPU architectures. A FPGA prototype is currently under construction. Eventually, we intend to package all of the special circuitry on a single chip, the cost of which remains to be determined.
Additional reports are available by anonymous ftp from
ftp.cs.iastate.edu:/pub/kelvin
Kelvin Nilsen/Dept. of Computer Science/Iowa State University/Ames, IA 50011
(515) 294-2259 kelvin@cs.iastate.edu uunet!cs.iastate.edu!kelvin
ftp.cs.utexas.edu: /pub/garbage is the place. A survey of GC, generation GC, distributed GC, all kinds of stuff.