implemented Setup.hs to build boehm cpp libs and install them;
[hs-boehmgc.git] / gc-7.2 / doc / overview.html
1 <!DOCTYPE HTML>
2 <html><head><title>A garbage collector for C and C++</title></head>
3 <body>
4 <table bgcolor="#f0f0ff" cellpadding="10%">
5   <tbody><tr>
6   <td><a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcinterface.html">Interface Overview</a></td>
7   <td><a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/04tutorial.pdf">Tutorial Slides</a></td>
8   <td><a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/faq.html">FAQ</a></td>
9   <td><a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/simple_example.html">Example</a></td>
10   <td><a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source">Download</a></td>
11   <td><a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/license.txt">License</a></td>
12   </tr>
13 </tbody></table>
14 <h1>A garbage collector for C and C++</h1>
15 <ul>
16 <li><a href="#platforms">Platforms</a>
17 </li><li><a href="#multiprocessors">Scalable multiprocessor versions</a>
18 </li><li><a href="#details">Some collector details</a>
19 </li><li><a href="#further">Further reading</a>
20 </li><li><a href="#users">Current users</a>
21 </li><li><a href="#collector">Local Links for this collector</a>
22 </li><li><a href="#background">Local Background Links</a>
23 </li><li><a href="#contacts">Contacts and Mailing List</a>
24 </li></ul>
25 [ This is an updated version of the page formerly at
26 <tt>http://reality.sgi.com/boehm/gc.html</tt>
27 and before that at
28 <a href="ftp://parcftp.xerox.com/pub/gc/gc.html">
29 <tt>ftp://parcftp.xerox.com/pub/gc/gc.html</tt></a>.]
30 <p>
31 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>
32 conservative garbage collector can
33 be used as a garbage collecting
34 replacement for C <tt>malloc</tt> or C++ <tt>new</tt>.
35 It allows you to allocate memory basically as you normally would,
36 without explicitly deallocating memory that is no longer useful.
37 The collector automatically recycles memory when it determines
38 that it can no longer be otherwise accessed.
39 A simple example of such a use is given
40 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/simple_example.html">here</a>.
41 </p><p>
42 The collector is also used by a number of programming language
43 implementations that either use C as intermediate code, want
44 to facilitate easier interoperation with C libraries, or
45 just prefer the simple collector interface.
46 For a more detailed description of the interface, see
47 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcinterface.html">here</a>.
48 </p><p>
49 Alternatively, the garbage collector  may be used as
50 a <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/leak.html">leak detector</a>
51 for C or C++ programs, though that is not its primary goal.
52 </p><p>
53 Typically several versions will be available.
54 Usually you should first try to use
55 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc.tar.gz"><tt>gc_source/gc.tar.gz</tt></a>,
56 which is normally an older, more stable version.
57 </p><p>
58 If that fails, try the latest explicitly numbered version
59 in <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/">
60 <tt>gc_source/</tt></a>.
61 Later versions may contain additional features, platform support,
62 or bug fixes, but are likely to be less well tested.
63 Note that versions containing the letters <tt>alpha</tt> are even less
64 well tested than others, especially on non-HP platforms.
65 </p><p>
66 A slightly older version of the garbage collector is now also
67 included as part of the
68 <a href="http://gcc.gnu.org/">GNU compiler</a>
69 distribution.  The source
70 code for that version is available for browsing
71 <a href="http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/boehm-gc/">here</a>.
72 </p><p>
73 The arguments for and against conservative garbage collection
74 in C and C++ are briefly
75 discussed in
76 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/issues.html">issues.html</a>.  The beginnings of
77 a frequently-asked-questions list are <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/faq.html">here</a>.
78 </p><p>
79 The garbage collector code is copyrighted by
80 <a href="http://www.hpl.hp.com/personal/Hans_Boehm">Hans-J. Boehm</a>,
81 Alan J. Demers,
82 <a href="http://www.xerox.com/">Xerox Corporation</a>,
83 <a href="http://www.sgi.com/">Silicon Graphics</a>,
84 and
85 <a href="http://www.hp.com/">Hewlett-Packard Company</a>.
86 It may be used and copied without payment of a fee under minimal restrictions.
87 See the README file in the distribution  or the
88 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/license.txt">license</a> for more details.
89 <b>IT IS PROVIDED AS IS,
90 WITH ABSOLUTELY NO WARRANTY EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK</b>.
91 </p><p>
92 Empirically, this collector works with most unmodified C programs,
93 simply by replacing
94 <tt>malloc</tt> with <tt>GC_malloc</tt> calls,
95 replacing <tt>realloc</tt> with <tt>GC_realloc</tt> calls, and removing
96 free calls.  Exceptions are discussed
97 in <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/issues.html">issues.html</a>. 
98 </p><h2><a name="platforms">Platforms</a></h2>
99 The collector is not completely portable, but the distribution
100 includes ports to most standard PC and UNIX/Linux platforms.
101 The collector should work on Linux, *BSD, recent Windows versions,
102 MacOS X, HP/UX, Solaris,
103 Tru64, Irix and a few other operating systems.
104 Some ports are more polished than others.
105 <p>
106 Irix pthreads, Linux threads, Win32 threads, Solaris threads
107 (pthreads only),
108 HP/UX 11 pthreads, Tru64 pthreads, and MacOS X threads are supported
109 in recent versions.
110 </p><h3>Separately distributed ports</h3>
111 For MacOS 9/Classic use, Patrick Beard's latest port is available from
112 <a href="http://homepage.mac.com/pcbeard/gc/">
113 <tt>http://homepage.mac.com/pcbeard/gc/</tt></a>.
114 (Unfortunately, that's now quite dated.
115 I'm not in a position to test under MacOS.  Although I try to
116 incorporate changes, it is impossible for
117 me to update the project file.)
118 <p>
119 Precompiled versions of the collector for NetBSD are available
120 <a href="ftp://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc/devel/boehm-gc/README.html">here</a>
121 or
122 <a href="http://www.netbsd.org/packages/devel/boehm-gc/README.html">here</a>.
123 </p><p>
124 <a href="http://www.debian.org/">Debian Linux</a> includes prepackaged
125 versions of the collector.
126 </p><h2><a name="multiprocessors">Scalable multiprocessor versions</a></h2>
127 Kenjiro Taura, Toshio Endo, and Akinori Yonezawa have made available
128 a <a href="http://www.yl.is.s.u-tokyo.ac.jp/gc/">parallel collector</a>
129 based on this one.  Their collector takes advantage of multiple processors
130 during a collection.  Starting with collector version 6.0alpha1
131 we also do this, though with more modest processor scalability goals.
132 Our approach is discussed briefly in
133 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/scale.html"><tt>scale.html</tt></a>.
134 <h2><a name="details">Some Collector Details</a></h2>
135 The collector uses a <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/complexity.html">mark-sweep</a> algorithm.
136 It provides incremental and generational
137 collection under operating systems which provide the right kind of
138 virtual memory support.  (Currently this includes SunOS[45], IRIX,
139 OSF/1, Linux, and Windows, with varying restrictions.)
140 It allows <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/finalization.html"><i>finalization</i></a> code
141 to be invoked when an object is collected.
142 It can take advantage of type information to locate pointers if such
143 information is provided, but it is usually used without such information.
144 ee the README and
145 <tt>gc.h</tt> files in the distribution for more details.
146 <p>
147 For an overview of the implementation, see <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcdescr.html">here</a>.
148 </p><p>
149 The garbage collector distribution includes a C string
150 (<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/cordh.txt"><i>cord</i></a>) package that provides
151 for fast concatenation and substring operations on long strings.
152 A simple curses- and win32-based editor that represents the entire file
153 as a cord is included as a
154 sample application.
155 </p><p>
156 Performance of the nonincremental collector is typically competitive
157 with malloc/free implementations.  Both space and time overhead are
158 likely to be only slightly higher
159 for programs written for malloc/free
160 (see Detlefs, Dosser and Zorn's
161 <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>.)
162 For programs allocating primarily very small objects, the collector
163 may be faster; for programs allocating primarily large objects it will
164 be slower.  If the collector is used in a multithreaded environment
165 and configured for thread-local allocation, it may in some cases
166 significantly outperform malloc/free allocation in time.
167 </p><p>
168 We also expect that in many cases any additional overhead
169 will be more than compensated for by decreased copying etc.
170 if programs are written
171 and tuned for garbage collection.
172 </p><h1><a name="further">Further Reading:</a></h1>
173 <b>The beginnings of a frequently asked questions list for this
174 collector are <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/faq.html">here</a></b>.
175 <p>
176 <b>The following provide information on garbage collection in general</b>:
177 </p><p>
178 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>.
179 </p><p>
180 The Ravenbrook <a href="http://www.memorymanagement.org/">
181 Memory Management Reference</a>.
182 </p><p>
183 David Chase's
184 <a href="http://www.iecc.com/gclist/GC-faq.html">GC FAQ</a>.
185 </p><p>
186 Richard Jones'
187 <a href="http://www.ukc.ac.uk/computer_science/Html/Jones/gc.html">
188 GC page</a> and
189 <a href="http://www.cs.kent.ac.uk/people/staff/rej/gcbook/gcbook.html">
190 his book</a>.
191 </p><p>
192 <b>The following papers describe the collector algorithms we use
193 and the underlying design decisions at
194 a higher level.</b>
195 </p><p>
196 (Some of the lower level details can be found
197 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcdescr.html">here</a>.)
198 </p><p>
199 The first one is not available
200 electronically due to copyright considerations.  Most of the others are
201 subject to ACM copyright.
202 </p><p>
203 Boehm, H., "Dynamic Memory Allocation and Garbage Collection", <i>Computers in Physics
204 9</i>, 3, May/June 1995, pp. 297-303.  This is directed at an otherwise sophisticated
205 audience unfamiliar with memory allocation issues.  The algorithmic details differ
206 from those in the implementation.  There is a related letter to the editor and a minor
207 correction in the next issue.
208 </p><p>
209 Boehm, H., and <a href="http://www.ubiq.com/hypertext/weiser/weiser.html">M. Weiser</a>,
210 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/spe_gc_paper">"Garbage Collection in an Uncooperative Environment"</a>,
211 <i>Software Practice &amp; Experience</i>, September 1988, pp. 807-820.
212 </p><p>
213 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
214 of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation,
215 <i>SIGPLAN Notices 26</i>, 6 (June 1991), pp. 157-164.
216 </p><p>
217 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
218 SIGPLAN '93 Conference on Programming Language Design and Implementation, <i>SIGPLAN
219 Notices 28</i>, 6 (June 1993), pp. 197-206.
220 </p><p>
221 Boehm, H., "Reducing Garbage Collector Cache Misses",
222 <i> Proceedings of the 2000 International Symposium on Memory Management </i>.
223 <a href="http://portal.acm.org/citation.cfm?doid=362422.362438">
224 Official version.</a>
225 <a href="http://www.hpl.hp.com/techreports/2000/HPL-2000-99.html">
226 Technical report version.</a>  Describes the prefetch strategy
227 incorporated into the collector for some platforms.  Explains why
228 the sweep phase of a "mark-sweep" collector should not really be
229 a distinct phase.
230 </p><p>
231 M. Serrano, H. Boehm,
232 "Understanding Memory Allocation of Scheme Programs",
233 <i>Proceedings of the Fifth ACM SIGPLAN International Conference on
234 Functional Programming</i>, 2000, Montreal, Canada, pp. 245-256.
235 <a href="http://www.acm.org/pubs/citations/proceedings/fp/351240/p245-serrano/">
236 Official version.</a>
237 <a href="http://www.hpl.hp.com/techreports/2000/HPL-2000-62.html">
238 Earlier Technical Report version.</a>  Includes some discussion of the
239 collector debugging facilities for identifying causes of memory retention.
240 </p><p>
241 Boehm, H.,
242 "Fast Multiprocessor Memory Allocation and Garbage Collection",
243 <a href="http://www.hpl.hp.com/techreports/2000/HPL-2000-165.html">
244 HP Labs Technical Report HPL 2000-165</a>.  Discusses the parallel
245 collection algorithms, and presents some performance results.
246 </p><p>
247 Boehm, H., "Bounding Space Usage of Conservative Garbage Collectors",
248 <i>Proceeedings of the 2002 ACM SIGPLAN-SIGACT Symposium on Principles of
249 Programming Languages</i>, Jan. 2002, pp. 93-100.
250 <a href="http://portal.acm.org/citation.cfm?doid=503272.503282">
251 Official version.</a>
252 <a href="http://www.hpl.hp.com/techreports/2001/HPL-2001-251.html">
253 Technical report version.</a>
254 Includes a discussion of a collector facility to much more reliably test for
255 the potential of unbounded heap growth.
256 </p><p>
257 <b>The following papers discuss language and compiler restrictions necessary to guaranteed
258 safety of conservative garbage collection.</b>
259 </p><p>
260 We thank John Levine and JCLT for allowing
261 us to make the second paper available electronically, and providing PostScript for the final
262 version.
263 </p><p>
264 Boehm, H., <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/papers/pldi96.ps.gz">``Simple
265 Garbage-Collector-Safety''</a>, Proceedings
266 of the ACM SIGPLAN '96 Conference on Programming Language Design
267 and Implementation.
268 </p><p>
269 Boehm, H., and D. Chase,  <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/papers/boecha.ps.gz">
270 ``A Proposal for Garbage-Collector-Safe C Compilation''</a>,
271 <i>Journal of C  Language Translation 4</i>, 2 (Decemeber 1992), pp. 126-141.
272 </p><p>
273 <b>Other related information: </b>
274 </p><p>
275 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>.
276  This is a performance comparison of the Boehm-Demers-Weiser collector to malloc/free,
277 using programs written for malloc/free.
278 </p><p>
279 Joel Bartlett's <a href="ftp://ftp.digital.com/pub/DEC/CCgc">mostly copying conservative garbage collector for C++</a>.
280 </p><p>
281 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.
282 </p><p>
283 Henry Baker's <a href="http://home.pipeline.com/%7Ehbaker1/">paper collection</a>.
284 </p><p>
285 Slides for Hans Boehm's <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/myths.ps">Allocation and GC Myths</a> talk.
286 </p><h1><a name="users">Current users:</a></h1>
287 Known current users of some variant of this collector include:
288 <p>
289 The runtime system for <a href="http://gcc.gnu.org/java">GCJ</a>,
290 the static GNU java compiler.
291 </p><p>
292 <a href="http://w3m.sourceforge.net/">W3m</a>, a text-based web browser.
293 </p><p>
294 Some versions of the Xerox DocuPrint printer software.
295 </p><p>
296 The <a href="http://www.mozilla.org/">Mozilla</a> project, as leak
297 detector.
298 </p><p>
299 The <a href="http://www.go-mono.com/">Mono</a> project,
300 an open source implementation of the .NET development framework.
301 </p><p>
302 The <a href="http://www.gnu.org/projects/dotgnu/">DotGNU Portable.NET
303 project</a>, another open source .NET implementation.
304 </p><p>
305 The <a href="http://irssi.org/">Irssi IRC client</a>.
306 </p><p>
307 <a href="http://titanium.cs.berkeley.edu/">The Berkeley Titanium project</a>.
308 </p><p>
309 <a href="http://www.nag.co.uk/nagware_fortran_compilers.asp">The NAGWare f90 Fortran 90 compiler</a>.
310 </p><p>
311 Elwood Corporation's <a href="http://www.elwood.com/eclipse-info/index.htm">
312 Eclipse</a> Common Lisp system, C library, and translator.
313 </p><p>
314 The <a href="http://www-sop.inria.fr/mimosa/fp/Bigloo/">Bigloo
315 Scheme</a>
316 and <a href="http://kaolin.unice.fr/%7Eserrano/camloo.html">Camloo ML
317 compilers</a>
318 written by Manuel Serrano and others.
319 </p><p>
320 Brent Benson's <a href="http://ftp.cs.indiana.edu/pub/scheme-repository/imp/">libscheme</a>.
321 </p><p>
322 The <a href="http://www.cs.rice.edu/CS/PLT/packages/mzscheme/index.html">MzScheme</a> scheme implementation.
323 </p><p>
324 The <a href="http://www.cs.washington.edu/research/projects/cecil/www/cecil-home.html">University of Washington Cecil Implementation</a>.
325 </p><p>
326 <a href="http://www.icsi.berkeley.edu/Sather/">The Berkeley Sather implementation</a>.
327 </p><p>
328 <a href="http://www.cs.berkeley.edu/%7Eharmonia/">The Berkeley Harmonia Project</a>.
329 </p><p>
330 The <a href="http://www.cs.arizona.edu/sumatra/toba/">Toba</a> Java Virtual
331 Machine to C translator.
332 </p><p>
333 The <a href="http://www.gwydiondylan.org/">Gwydion Dylan compiler</a>.
334 </p><p>
335 The <a href="http://gcc.gnu.org/onlinedocs/gcc/Objective-C.html">
336 GNU Objective C runtime</a>.
337 </p><p>
338 <a href="http://www.math.uiuc.edu/Macaulay2">Macaulay 2</a>, a system to support
339 research in algebraic geometry and commutative algebra.
340 </p><p>
341 The <a href="http://www.vestasys.org/">Vesta</a> configuration management
342 system.
343 </p><p>
344 <a href="http://www.visual-prolog.com/vip6">Visual Prolog 6</a>.
345 </p><p>
346 <a href="http://asymptote.sf.net/">Asymptote LaTeX-compatible
347 vector graphics language.</a>
348
349 </p><h1><a name="collector">More collector information at this site</a></h1>
350 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/simple_example.html">A simple illustration of how to build and
351 use the collector.</a>.
352 <p>
353 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcinterface.html">Description of alternate interfaces to the
354 garbage collector.</a>
355 </p><p>
356 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/04tutorial.pdf">Slides from an ISMM 2004  tutorial about the GC.</a>
357 </p><p>
358 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/faq.html">A FAQ (frequently asked questions) list.</a>
359 </p><p>
360 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/leak.html">How to use the garbage collector as a leak detector.</a>
361 </p><p>
362 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/debugging.html">Some hints on debugging garbage collected
363 applications.</a>
364 </p><p>
365 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcdescr.html">An overview of the implementation of the
366 garbage collector.</a>
367 </p><p>
368 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/tree.html">The data structure used for fast pointer lookups.</a>
369 </p><p>
370 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/scale.html">Scalability of the collector to multiprocessors.</a>
371 </p><p>
372 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source">Directory containing garbage collector source.</a>
373
374 </p><h1><a name="background">More background information at this site</a></h1>
375 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/bounds.html">An attempt to establish a bound on space usage of
376 conservative garbage collectors.</a>
377 <p>
378 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/complexity.html">Mark-sweep versus copying garbage collectors
379 and their complexity.</a>
380 </p><p>
381 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/conservative.html">Pros and cons of conservative garbage collectors,
382 in comparison to other collectors.
383 </a>
384 </p><p>
385 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/issues.html">Issues related to garbage collection vs.
386 manual memory management in C/C++.</a>
387 </p><p>
388 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/example.html">An example of a case in which garbage collection
389 results in a much faster implementation as a result of reduced
390 synchronization.</a>
391 </p><p>
392 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/nonmoving">Slide set discussing performance of nonmoving
393 garbage collectors.</a>
394 </p><p>
395 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/popl03/web">
396 Slide set discussing <i>Destructors, Finalizers, and Synchronization</i>
397 (POPL 2003).</a>
398 </p><p>
399 <a href="http://portal.acm.org/citation.cfm?doid=604131.604153">
400 Paper corresponding to above slide set.</a>
401 (<a href="http://www.hpl.hp.com/techreports/2002/HPL-2002-335.html">
402 Technical Report version</a>.)
403 </p><p>
404 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_bench.html">A Java/Scheme/C/C++ garbage collection benchmark.</a>
405 </p><p>
406 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/myths.ps">Slides for talk on memory allocation myths.</a>
407 </p><p>
408 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gctalk.ps">Slides for OOPSLA 98 garbage collection talk.</a>
409 </p><p>
410 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/papers">Related papers.</a>
411 </p><h1><a name="contacts">Contacts and Mailing List</a><a></a></h1>
412 <a>We have recently set up two mailing list for collector announcements
413 and discussions:
414 </a><ul>
415 <li><a href="mailto:gc-announce@linux.hpl.hp.com">gc-announce@linux.hpl.hp.com</a>
416 is used for announcements of new versions.  Postings are restricted.
417 We expect this to always remain a very low volume list.
418 </li><li><a href="mailto:gc@linux.hpl.hp.com">gc@linux.hpl.hp.com</a> is used for
419 discussions, bug reports, and the like.  Subscribers may post.
420 On-topic posts by nonsubscribers will usually also be accepted, but
421 it may take some time to review them.
422 </li></ul>
423 To subscribe to these lists, send a mail message containing the
424 word "subscribe" to
425 <a href="mailto:gc-announce-request@linux.hpl.hp.com?subject=subscribe">gc-announce-request@linux.hpl.hp.com</a>
426 or to
427 <a href="mailto:gc-request@linux.hpl.hp.com?subject=subscribe">gc-request@linux.hpl.hp.com</a>.
428 (Please ignore the instructions about web-based subscription.
429 The listed web site is behind the HP firewall.)
430 <p>
431 The archives for these lists appear
432 <a href="http://www.hpl.hp.com/hosted/linux/mail-archives">here</a>.
433 The gc list archive may also be read at
434 <a href="http://dir.gmane.org/gmane.comp.programming.garbage-collection.boehmgc">gmane.org</a>.
435 </p><p>
436 Some prior discussion of the collector has taken place on the gcc
437 java mailing list, whose archives appear
438 <a href="http://gcc.gnu.org/ml/java/">here</a>, and also on
439 <a href="http://lists.tunes.org/mailman/listinfo/gclist">gclist@iecc.com</a>.
440 </p><p>
441 Comments and bug reports may also be sent to
442 (<a href="mailto:Hans.Boehm@hp.com">Hans.Boehm@hp.com</a>) or
443 (<a href="mailto:boehm@acm.org">boehm@acm.org</a>), but the gc
444 mailing list is usually preferred.
445  
446 </p></body></html>