| <!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> |