<!DOCTYPE HTML> | |
<html><head><title>A garbage collector for C and C++</title></head> | |
<body> | |
<table bgcolor="#f0f0ff" cellpadding="10%"> | |
<tbody><tr> | |
<td><a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcinterface.html">Interface Overview</a></td> | |
<td><a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/04tutorial.pdf">Tutorial Slides</a></td> | |
<td><a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/faq.html">FAQ</a></td> | |
<td><a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/simple_example.html">Example</a></td> | |
<td><a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source">Download</a></td> | |
<td><a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/license.txt">License</a></td> | |
</tr> | |
</tbody></table> | |
<h1>A garbage collector for C and C++</h1> | |
<ul> | |
<li><a href="#platforms">Platforms</a> | |
</li><li><a href="#multiprocessors">Scalable multiprocessor versions</a> | |
</li><li><a href="#details">Some collector details</a> | |
</li><li><a href="#further">Further reading</a> | |
</li><li><a href="#users">Current users</a> | |
</li><li><a href="#collector">Local Links for this collector</a> | |
</li><li><a href="#background">Local Background Links</a> | |
</li><li><a href="#contacts">Contacts and Mailing List</a> | |
</li></ul> | |
[ This is an updated version of the page formerly at | |
<tt>http://reality.sgi.com/boehm/gc.html</tt> | |
and before that at | |
<a href="ftp://parcftp.xerox.com/pub/gc/gc.html"> | |
<tt>ftp://parcftp.xerox.com/pub/gc/gc.html</tt></a>.] | |
<p> | |
The <a href="http://www.hpl.hp.com/personal/Hans_Boehm">Boehm</a>-<a href="http://www.cs.cornell.edu/annual_report/00-01/bios.htm#demers">Demers</a>-<a href="http://www-sul.stanford.edu/weiser/">Weiser</a> | |
conservative garbage collector can | |
be used as a garbage collecting | |
replacement for C <tt>malloc</tt> or C++ <tt>new</tt>. | |
It allows you to allocate memory basically as you normally would, | |
without explicitly deallocating memory that is no longer useful. | |
The collector automatically recycles memory when it determines | |
that it can no longer be otherwise accessed. | |
A simple example of such a use is given | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/simple_example.html">here</a>. | |
</p><p> | |
The collector is also used by a number of programming language | |
implementations that either use C as intermediate code, want | |
to facilitate easier interoperation with C libraries, or | |
just prefer the simple collector interface. | |
For a more detailed description of the interface, see | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcinterface.html">here</a>. | |
</p><p> | |
Alternatively, the garbage collector may be used as | |
a <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/leak.html">leak detector</a> | |
for C or C++ programs, though that is not its primary goal. | |
</p><p> | |
Typically several versions will be available. | |
Usually you should first try to use | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc.tar.gz"><tt>gc_source/gc.tar.gz</tt></a>, | |
which is normally an older, more stable version. | |
</p><p> | |
If that fails, try the latest explicitly numbered version | |
in <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/"> | |
<tt>gc_source/</tt></a>. | |
Later versions may contain additional features, platform support, | |
or bug fixes, but are likely to be less well tested. | |
Note that versions containing the letters <tt>alpha</tt> are even less | |
well tested than others, especially on non-HP platforms. | |
</p><p> | |
A slightly older version of the garbage collector is now also | |
included as part of the | |
<a href="http://gcc.gnu.org/">GNU compiler</a> | |
distribution. The source | |
code for that version is available for browsing | |
<a href="http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/boehm-gc/">here</a>. | |
</p><p> | |
The arguments for and against conservative garbage collection | |
in C and C++ are briefly | |
discussed in | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/issues.html">issues.html</a>. The beginnings of | |
a frequently-asked-questions list are <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/faq.html">here</a>. | |
</p><p> | |
The garbage collector code is copyrighted by | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm">Hans-J. Boehm</a>, | |
Alan J. Demers, | |
<a href="http://www.xerox.com/">Xerox Corporation</a>, | |
<a href="http://www.sgi.com/">Silicon Graphics</a>, | |
and | |
<a href="http://www.hp.com/">Hewlett-Packard Company</a>. | |
It may be used and copied without payment of a fee under minimal restrictions. | |
See the README file in the distribution or the | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/license.txt">license</a> for more details. | |
<b>IT IS PROVIDED AS IS, | |
WITH ABSOLUTELY NO WARRANTY EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK</b>. | |
</p><p> | |
Empirically, this collector works with most unmodified C programs, | |
simply by replacing | |
<tt>malloc</tt> with <tt>GC_malloc</tt> calls, | |
replacing <tt>realloc</tt> with <tt>GC_realloc</tt> calls, and removing | |
free calls. Exceptions are discussed | |
in <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/issues.html">issues.html</a>. | |
</p><h2><a name="platforms">Platforms</a></h2> | |
The collector is not completely portable, but the distribution | |
includes ports to most standard PC and UNIX/Linux platforms. | |
The collector should work on Linux, *BSD, recent Windows versions, | |
MacOS X, HP/UX, Solaris, | |
Tru64, Irix and a few other operating systems. | |
Some ports are more polished than others. | |
<p> | |
Irix pthreads, Linux threads, Win32 threads, Solaris threads | |
(old style and pthreads), | |
HP/UX 11 pthreads, Tru64 pthreads, and MacOS X threads are supported | |
in recent versions. | |
</p><h3>Separately distributed ports</h3> | |
For MacOS 9/Classic use, Patrick Beard's latest port is available from | |
<a href="http://homepage.mac.com/pcbeard/gc/"> | |
<tt>http://homepage.mac.com/pcbeard/gc/</tt></a>. | |
(Unfortunately, that's now quite dated. | |
I'm not in a position to test under MacOS. Although I try to | |
incorporate changes, it is impossible for | |
me to update the project file.) | |
<p> | |
Precompiled versions of the collector for NetBSD are available | |
<a href="ftp://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc/devel/boehm-gc/README.html">here</a> | |
or | |
<a href="http://www.netbsd.org/packages/devel/boehm-gc/README.html">here</a>. | |
</p><p> | |
<a href="http://www.debian.org/">Debian Linux</a> includes prepackaged | |
versions of the collector. | |
</p><h2><a name="multiprocessors">Scalable multiprocessor versions</a></h2> | |
Kenjiro Taura, Toshio Endo, and Akinori Yonezawa have made available | |
a <a href="http://www.yl.is.s.u-tokyo.ac.jp/gc/">parallel collector</a> | |
based on this one. Their collector takes advantage of multiple processors | |
during a collection. Starting with collector version 6.0alpha1 | |
we also do this, though with more modest processor scalability goals. | |
Our approach is discussed briefly in | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/scale.html"><tt>scale.html</tt></a>. | |
<h2><a name="details">Some Collector Details</a></h2> | |
The collector uses a <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/complexity.html">mark-sweep</a> algorithm. | |
It provides incremental and generational | |
collection under operating systems which provide the right kind of | |
virtual memory support. (Currently this includes SunOS[45], IRIX, | |
OSF/1, Linux, and Windows, with varying restrictions.) | |
It allows <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/finalization.html"><i>finalization</i></a> code | |
to be invoked when an object is collected. | |
It can take advantage of type information to locate pointers if such | |
information is provided, but it is usually used without such information. | |
ee the README and | |
<tt>gc.h</tt> files in the distribution for more details. | |
<p> | |
For an overview of the implementation, see <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcdescr.html">here</a>. | |
</p><p> | |
The garbage collector distribution includes a C string | |
(<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/cordh.txt"><i>cord</i></a>) package that provides | |
for fast concatenation and substring operations on long strings. | |
A simple curses- and win32-based editor that represents the entire file | |
as a cord is included as a | |
sample application. | |
</p><p> | |
Performance of the nonincremental collector is typically competitive | |
with malloc/free implementations. Both space and time overhead are | |
likely to be only slightly higher | |
for programs written for malloc/free | |
(see Detlefs, Dosser and Zorn's | |
<a href="ftp://ftp.cs.colorado.edu/pub/techreports/zorn/CU-CS-665-93.ps.Z">Memory Allocation Costs in Large C and C++ Programs</a>.) | |
For programs allocating primarily very small objects, the collector | |
may be faster; for programs allocating primarily large objects it will | |
be slower. If the collector is used in a multithreaded environment | |
and configured for thread-local allocation, it may in some cases | |
significantly outperform malloc/free allocation in time. | |
</p><p> | |
We also expect that in many cases any additional overhead | |
will be more than compensated for by decreased copying etc. | |
if programs are written | |
and tuned for garbage collection. | |
</p><h1><a name="further">Further Reading:</a></h1> | |
<b>The beginnings of a frequently asked questions list for this | |
collector are <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/faq.html">here</a></b>. | |
<p> | |
<b>The following provide information on garbage collection in general</b>: | |
</p><p> | |
Paul Wilson's <a href="ftp://ftp.cs.utexas.edu/pub/garbage">garbage collection ftp archive</a> and <a href="ftp://ftp.cs.utexas.edu/pub/garbage/gcsurvey.ps">GC survey</a>. | |
</p><p> | |
The Ravenbrook <a href="http://www.memorymanagement.org/"> | |
Memory Management Reference</a>. | |
</p><p> | |
David Chase's | |
<a href="http://www.iecc.com/gclist/GC-faq.html">GC FAQ</a>. | |
</p><p> | |
Richard Jones' | |
<a href="http://www.ukc.ac.uk/computer_science/Html/Jones/gc.html"> | |
GC page</a> and | |
<a href="http://www.cs.kent.ac.uk/people/staff/rej/gcbook/gcbook.html"> | |
his book</a>. | |
</p><p> | |
<b>The following papers describe the collector algorithms we use | |
and the underlying design decisions at | |
a higher level.</b> | |
</p><p> | |
(Some of the lower level details can be found | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcdescr.html">here</a>.) | |
</p><p> | |
The first one is not available | |
electronically due to copyright considerations. Most of the others are | |
subject to ACM copyright. | |
</p><p> | |
Boehm, H., "Dynamic Memory Allocation and Garbage Collection", <i>Computers in Physics | |
9</i>, 3, May/June 1995, pp. 297-303. This is directed at an otherwise sophisticated | |
audience unfamiliar with memory allocation issues. The algorithmic details differ | |
from those in the implementation. There is a related letter to the editor and a minor | |
correction in the next issue. | |
</p><p> | |
Boehm, H., and <a href="http://www.ubiq.com/hypertext/weiser/weiser.html">M. Weiser</a>, | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/spe_gc_paper">"Garbage Collection in an Uncooperative Environment"</a>, | |
<i>Software Practice & Experience</i>, September 1988, pp. 807-820. | |
</p><p> | |
Boehm, H., A. Demers, and S. Shenker, <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/papers/pldi91.ps.Z">"Mostly Parallel Garbage Collection"</a>, Proceedings | |
of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, | |
<i>SIGPLAN Notices 26</i>, 6 (June 1991), pp. 157-164. | |
</p><p> | |
Boehm, H., <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/papers/pldi93.ps.Z">"Space Efficient Conservative Garbage Collection"</a>, Proceedings of the ACM | |
SIGPLAN '93 Conference on Programming Language Design and Implementation, <i>SIGPLAN | |
Notices 28</i>, 6 (June 1993), pp. 197-206. | |
</p><p> | |
Boehm, H., "Reducing Garbage Collector Cache Misses", | |
<i> Proceedings of the 2000 International Symposium on Memory Management </i>. | |
<a href="http://portal.acm.org/citation.cfm?doid=362422.362438"> | |
Official version.</a> | |
<a href="http://www.hpl.hp.com/techreports/2000/HPL-2000-99.html"> | |
Technical report version.</a> Describes the prefetch strategy | |
incorporated into the collector for some platforms. Explains why | |
the sweep phase of a "mark-sweep" collector should not really be | |
a distinct phase. | |
</p><p> | |
M. Serrano, H. Boehm, | |
"Understanding Memory Allocation of Scheme Programs", | |
<i>Proceedings of the Fifth ACM SIGPLAN International Conference on | |
Functional Programming</i>, 2000, Montreal, Canada, pp. 245-256. | |
<a href="http://www.acm.org/pubs/citations/proceedings/fp/351240/p245-serrano/"> | |
Official version.</a> | |
<a href="http://www.hpl.hp.com/techreports/2000/HPL-2000-62.html"> | |
Earlier Technical Report version.</a> Includes some discussion of the | |
collector debugging facilities for identifying causes of memory retention. | |
</p><p> | |
Boehm, H., | |
"Fast Multiprocessor Memory Allocation and Garbage Collection", | |
<a href="http://www.hpl.hp.com/techreports/2000/HPL-2000-165.html"> | |
HP Labs Technical Report HPL 2000-165</a>. Discusses the parallel | |
collection algorithms, and presents some performance results. | |
</p><p> | |
Boehm, H., "Bounding Space Usage of Conservative Garbage Collectors", | |
<i>Proceeedings of the 2002 ACM SIGPLAN-SIGACT Symposium on Principles of | |
Programming Languages</i>, Jan. 2002, pp. 93-100. | |
<a href="http://portal.acm.org/citation.cfm?doid=503272.503282"> | |
Official version.</a> | |
<a href="http://www.hpl.hp.com/techreports/2001/HPL-2001-251.html"> | |
Technical report version.</a> | |
Includes a discussion of a collector facility to much more reliably test for | |
the potential of unbounded heap growth. | |
</p><p> | |
<b>The following papers discuss language and compiler restrictions necessary to guaranteed | |
safety of conservative garbage collection.</b> | |
</p><p> | |
We thank John Levine and JCLT for allowing | |
us to make the second paper available electronically, and providing PostScript for the final | |
version. | |
</p><p> | |
Boehm, H., <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/papers/pldi96.ps.gz">``Simple | |
Garbage-Collector-Safety''</a>, Proceedings | |
of the ACM SIGPLAN '96 Conference on Programming Language Design | |
and Implementation. | |
</p><p> | |
Boehm, H., and D. Chase, <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/papers/boecha.ps.gz"> | |
``A Proposal for Garbage-Collector-Safe C Compilation''</a>, | |
<i>Journal of C Language Translation 4</i>, 2 (Decemeber 1992), pp. 126-141. | |
</p><p> | |
<b>Other related information: </b> | |
</p><p> | |
The Detlefs, Dosser and Zorn's <a href="ftp://ftp.cs.colorado.edu/pub/techreports/zorn/CU-CS-665-93.ps.Z">Memory Allocation Costs in Large C and C++ Programs</a>. | |
This is a performance comparison of the Boehm-Demers-Weiser collector to malloc/free, | |
using programs written for malloc/free. | |
</p><p> | |
Joel Bartlett's <a href="ftp://ftp.digital.com/pub/DEC/CCgc">mostly copying conservative garbage collector for C++</a>. | |
</p><p> | |
John Ellis and David Detlef's <a href="ftp://parcftp.xerox.com/pub/ellis/gc/gc.ps">Safe Efficient Garbage Collection for C++</a> proposal. | |
</p><p> | |
Henry Baker's <a href="http://home.pipeline.com/%7Ehbaker1/">paper collection</a>. | |
</p><p> | |
Slides for Hans Boehm's <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/myths.ps">Allocation and GC Myths</a> talk. | |
</p><h1><a name="users">Current users:</a></h1> | |
Known current users of some variant of this collector include: | |
<p> | |
The runtime system for <a href="http://gcc.gnu.org/java">GCJ</a>, | |
the static GNU java compiler. | |
</p><p> | |
<a href="http://w3m.sourceforge.net/">W3m</a>, a text-based web browser. | |
</p><p> | |
Some versions of the Xerox DocuPrint printer software. | |
</p><p> | |
The <a href="http://www.mozilla.org/">Mozilla</a> project, as leak | |
detector. | |
</p><p> | |
The <a href="http://www.go-mono.com/">Mono</a> project, | |
an open source implementation of the .NET development framework. | |
</p><p> | |
The <a href="http://www.gnu.org/projects/dotgnu/">DotGNU Portable.NET | |
project</a>, another open source .NET implementation. | |
</p><p> | |
The <a href="http://irssi.org/">Irssi IRC client</a>. | |
</p><p> | |
<a href="http://titanium.cs.berkeley.edu/">The Berkeley Titanium project</a>. | |
</p><p> | |
<a href="http://www.nag.co.uk/nagware_fortran_compilers.asp">The NAGWare f90 Fortran 90 compiler</a>. | |
</p><p> | |
Elwood Corporation's <a href="http://www.elwood.com/eclipse-info/index.htm"> | |
Eclipse</a> Common Lisp system, C library, and translator. | |
</p><p> | |
The <a href="http://www-sop.inria.fr/mimosa/fp/Bigloo/">Bigloo | |
Scheme</a> | |
and <a href="http://kaolin.unice.fr/%7Eserrano/camloo.html">Camloo ML | |
compilers</a> | |
written by Manuel Serrano and others. | |
</p><p> | |
Brent Benson's <a href="http://ftp.cs.indiana.edu/pub/scheme-repository/imp/">libscheme</a>. | |
</p><p> | |
The <a href="http://www.cs.rice.edu/CS/PLT/packages/mzscheme/index.html">MzScheme</a> scheme implementation. | |
</p><p> | |
The <a href="http://www.cs.washington.edu/research/projects/cecil/www/cecil-home.html">University of Washington Cecil Implementation</a>. | |
</p><p> | |
<a href="http://www.icsi.berkeley.edu/Sather/">The Berkeley Sather implementation</a>. | |
</p><p> | |
<a href="http://www.cs.berkeley.edu/%7Eharmonia/">The Berkeley Harmonia Project</a>. | |
</p><p> | |
The <a href="http://www.cs.arizona.edu/sumatra/toba/">Toba</a> Java Virtual | |
Machine to C translator. | |
</p><p> | |
The <a href="http://www.gwydiondylan.org/">Gwydion Dylan compiler</a>. | |
</p><p> | |
The <a href="http://gcc.gnu.org/onlinedocs/gcc/Objective-C.html"> | |
GNU Objective C runtime</a>. | |
</p><p> | |
<a href="http://www.math.uiuc.edu/Macaulay2">Macaulay 2</a>, a system to support | |
research in algebraic geometry and commutative algebra. | |
</p><p> | |
The <a href="http://www.vestasys.org/">Vesta</a> configuration management | |
system. | |
</p><p> | |
<a href="http://www.visual-prolog.com/vip6">Visual Prolog 6</a>. | |
</p><p> | |
<a href="http://asymptote.sf.net/">Asymptote LaTeX-compatible | |
vector graphics language.</a> | |
</p><h1><a name="collector">More collector information at this site</a></h1> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/simple_example.html">A simple illustration of how to build and | |
use the collector.</a>. | |
<p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcinterface.html">Description of alternate interfaces to the | |
garbage collector.</a> | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/04tutorial.pdf">Slides from an ISMM 2004 tutorial about the GC.</a> | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/faq.html">A FAQ (frequently asked questions) list.</a> | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/leak.html">How to use the garbage collector as a leak detector.</a> | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/debugging.html">Some hints on debugging garbage collected | |
applications.</a> | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcdescr.html">An overview of the implementation of the | |
garbage collector.</a> | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/tree.html">The data structure used for fast pointer lookups.</a> | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/scale.html">Scalability of the collector to multiprocessors.</a> | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source">Directory containing garbage collector source.</a> | |
</p><h1><a name="background">More background information at this site</a></h1> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/bounds.html">An attempt to establish a bound on space usage of | |
conservative garbage collectors.</a> | |
<p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/complexity.html">Mark-sweep versus copying garbage collectors | |
and their complexity.</a> | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/conservative.html">Pros and cons of conservative garbage collectors, | |
in comparison to other collectors. | |
</a> | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/issues.html">Issues related to garbage collection vs. | |
manual memory management in C/C++.</a> | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/example.html">An example of a case in which garbage collection | |
results in a much faster implementation as a result of reduced | |
synchronization.</a> | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/nonmoving">Slide set discussing performance of nonmoving | |
garbage collectors.</a> | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/popl03/web"> | |
Slide set discussing <i>Destructors, Finalizers, and Synchronization</i> | |
(POPL 2003).</a> | |
</p><p> | |
<a href="http://portal.acm.org/citation.cfm?doid=604131.604153"> | |
Paper corresponding to above slide set.</a> | |
(<a href="http://www.hpl.hp.com/techreports/2002/HPL-2002-335.html"> | |
Technical Report version</a>.) | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_bench.html">A Java/Scheme/C/C++ garbage collection benchmark.</a> | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/myths.ps">Slides for talk on memory allocation myths.</a> | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gctalk.ps">Slides for OOPSLA 98 garbage collection talk.</a> | |
</p><p> | |
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/papers">Related papers.</a> | |
</p><h1><a name="contacts">Contacts and Mailing List</a><a></a></h1> | |
<a>We have recently set up two mailing list for collector announcements | |
and discussions: | |
</a><ul> | |
<li><a href="mailto:gc-announce@linux.hpl.hp.com">gc-announce@linux.hpl.hp.com</a> | |
is used for announcements of new versions. Postings are restricted. | |
We expect this to always remain a very low volume list. | |
</li><li><a href="mailto:gc@linux.hpl.hp.com">gc@linux.hpl.hp.com</a> is used for | |
discussions, bug reports, and the like. Subscribers may post. | |
On-topic posts by nonsubscribers will usually also be accepted, but | |
it may take some time to review them. | |
</li></ul> | |
To subscribe to these lists, send a mail message containing the | |
word "subscribe" to | |
<a href="mailto:gc-announce-request@linux.hpl.hp.com?subject=subscribe">gc-announce-request@linux.hpl.hp.com</a> | |
or to | |
<a href="mailto:gc-request@linux.hpl.hp.com?subject=subscribe">gc-request@linux.hpl.hp.com</a>. | |
(Please ignore the instructions about web-based subscription. | |
The listed web site is behind the HP firewall.) | |
<p> | |
The archives for these lists appear | |
<a href="http://www.hpl.hp.com/hosted/linux/mail-archives">here</a>. | |
The gc list archive may also be read at | |
<a href="http://dir.gmane.org/gmane.comp.programming.garbage-collection.boehmgc">gmane.org</a>. | |
</p><p> | |
Some prior discussion of the collector has taken place on the gcc | |
java mailing list, whose archives appear | |
<a href="http://gcc.gnu.org/ml/java/">here</a>, and also on | |
<a href="http://lists.tunes.org/mailman/listinfo/gclist">gclist@iecc.com</a>. | |
</p><p> | |
Comments and bug reports may also be sent to | |
(<a href="mailto:Hans_Boehm@hp.com">Hans.Boehm@hp.com</a>) or | |
(<a href="mailto:boehm@acm.org">boehm@acm.org</a>), but the gc | |
mailing list is usually preferred. | |
</p></body></html> |