Subject: Re: GC algorithm needed
From: (Rob Warnock)
Date: 1998/03/19
Newsgroups: comp.lang.scheme
Message-ID: <6eq8mr$>

Will Hartung <> wrote:
| writes:
| >Does anybody knows where can I get detailed description of a Lisp/Scheme
| >garbage collection algorithm?
| Take a look at SIOD. It has a pretty straightforward GC. In fact, I
| believe it has TWO of them, but one only works at the toplevel.
| The GC that runs only at the top level is, I think, a mark-and-sweep
| algortihm, and the one that works "all the time" copies living objects
| from Heap A to Heap B, then flushes Heap A. I don't recall what kind
| of GC algorithm is called. Naively, I'd say it's a "copying" GC.

Actually, it's the other way around...  SIOD's "stop & copy" GC is
the one that only works at the top level, and its "mark & sweep" GC
is the one than can run any time. For the sources, see:

You may also want to look at the Boehm-Demers-Weiser conservative GC:

which has been used by several Scheme implementations (e.g., MzScheme).

And if you have lots of time for reading, here's a mess of useful links:


Rob Warnock, 7L-551
Silicon Graphics, Inc.		Phone: 650-933-1673 [New area code!]
2011 N. Shoreline Blvd.		FAX: 650-933-4392
Mountain View, CA  94043	PP-ASEL-IA