Update Gnulib to v0.0-6827-g39c3009; use the `dirfd' module.
[bpt/guile.git] / libguile / guardians.c
CommitLineData
393baa8a 1/* Copyright (C) 1998,1999,2000,2001, 2006, 2008, 2009, 2011 Free Software Foundation, Inc.
e1f2bf99 2 *
73be1d9e 3 * This library is free software; you can redistribute it and/or
53befeb7
NJ
4 * modify it under the terms of the GNU Lesser General Public License
5 * as published by the Free Software Foundation; either version 3 of
6 * the License, or (at your option) any later version.
e1f2bf99 7 *
53befeb7
NJ
8 * This library is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
73be1d9e
MV
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
53befeb7
NJ
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16 * 02110-1301 USA
73be1d9e 17 */
1bbd0b84 18
e1f2bf99 19\f
e1f2bf99
MD
20/* This is an implementation of guardians as described in
21 * R. Kent Dybvig, Carl Bruggeman, and David Eby (1993) "Guardians in
22 * a Generation-Based Garbage Collector" ACM SIGPLAN Conference on
23 * Programming Language Design and Implementation, June 1993
24 * ftp://ftp.cs.indiana.edu/pub/scheme-repository/doc/pubs/guardians.ps.gz
25 *
06c1d900
MV
26 * Original design: Mikael Djurfeldt
27 * Original implementation: Michael Livshin
28 * Hacked on since by: everybody
29 *
56495472
ML
30 * By this point, the semantics are actually quite different from
31 * those described in the abovementioned paper. The semantic changes
32 * are there to improve safety and intuitiveness. The interface is
33 * still (mostly) the one described by the paper, however.
34 *
06c1d900
MV
35 * Boiled down again: Marius Vollmer
36 *
37 * Now they should again behave like those described in the paper.
38 * Scheme guardians should be simple and friendly, not like the greedy
39 * monsters we had...
bc700b6d 40 *
5aec3cf4 41