Use thread-local allocation (significant perf. improvement!); added the `boehm-gc...
[bpt/guile.git] / libguile / guardians.c
CommitLineData
2b829bbb 1/* Copyright (C) 1998,1999,2000,2001, 2006 Free Software Foundation, Inc.
e1f2bf99 2 *
73be1d9e
MV
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2.1 of the License, or (at your option) any later version.
e1f2bf99 7 *
73be1d9e
MV
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
e1f2bf99 12 *
73be1d9e
MV
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the Free Software
92205699 15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
73be1d9e 16 */
1bbd0b84 17
e1f2bf99 18\f
e1f2bf99
MD
19/* This is an implementation of guardians as described in
20 * R. Kent Dybvig, Carl Bruggeman, and David Eby (1993) "Guardians in
21 * a Generation-Based Garbage Collector" ACM SIGPLAN Conference on
22 * Programming Language Design and Implementation, June 1993
23 * ftp://ftp.cs.indiana.edu/pub/scheme-repository/doc/pubs/guardians.ps.gz
24 *
06c1d900
MV
25 * Original design: Mikael Djurfeldt
26 * Original implementation: Michael Livshin
27 * Hacked on since by: everybody
28 *
56495472
ML
29 * By this point, the semantics are actually quite different from
30 * those described in the abovementioned paper. The semantic changes
31 * are there to improve safety and intuitiveness. The interface is
32 * still (mostly) the one described by the paper, however.
33 *
06c1d900
MV
34 * Boiled down again: Marius Vollmer
35 *
36 * Now they should again behave like those described in the paper.
37 * Scheme guardians should be simple and friendly, not like the greedy
38 * monsters we had...
bc700b6d
LC
39 *
40