/vendor/gc/doc/overview.html

http://github.com/feyeleanor/RubyGoLightly · HTML · 446 lines · 443 code · 3 blank · 0 comment · 0 complexity · 4b19920f41f573772580e46ca118040c MD5 · raw file

  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. (old style and pthreads),
  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. </p><h1><a name="collector">More collector information at this site</a></h1>
  349. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/simple_example.html">A simple illustration of how to build and
  350. use the collector.</a>.
  351. <p>
  352. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcinterface.html">Description of alternate interfaces to the
  353. garbage collector.</a>
  354. </p><p>
  355. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/04tutorial.pdf">Slides from an ISMM 2004 tutorial about the GC.</a>
  356. </p><p>
  357. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/faq.html">A FAQ (frequently asked questions) list.</a>
  358. </p><p>
  359. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/leak.html">How to use the garbage collector as a leak detector.</a>
  360. </p><p>
  361. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/debugging.html">Some hints on debugging garbage collected
  362. applications.</a>
  363. </p><p>
  364. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcdescr.html">An overview of the implementation of the
  365. garbage collector.</a>
  366. </p><p>
  367. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/tree.html">The data structure used for fast pointer lookups.</a>
  368. </p><p>
  369. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/scale.html">Scalability of the collector to multiprocessors.</a>
  370. </p><p>
  371. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source">Directory containing garbage collector source.</a>
  372. </p><h1><a name="background">More background information at this site</a></h1>
  373. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/bounds.html">An attempt to establish a bound on space usage of
  374. conservative garbage collectors.</a>
  375. <p>
  376. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/complexity.html">Mark-sweep versus copying garbage collectors
  377. and their complexity.</a>
  378. </p><p>
  379. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/conservative.html">Pros and cons of conservative garbage collectors,
  380. in comparison to other collectors.
  381. </a>
  382. </p><p>
  383. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/issues.html">Issues related to garbage collection vs.
  384. manual memory management in C/C++.</a>
  385. </p><p>
  386. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/example.html">An example of a case in which garbage collection
  387. results in a much faster implementation as a result of reduced
  388. synchronization.</a>
  389. </p><p>
  390. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/nonmoving">Slide set discussing performance of nonmoving
  391. garbage collectors.</a>
  392. </p><p>
  393. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/popl03/web">
  394. Slide set discussing <i>Destructors, Finalizers, and Synchronization</i>
  395. (POPL 2003).</a>
  396. </p><p>
  397. <a href="http://portal.acm.org/citation.cfm?doid=604131.604153">
  398. Paper corresponding to above slide set.</a>
  399. (<a href="http://www.hpl.hp.com/techreports/2002/HPL-2002-335.html">
  400. Technical Report version</a>.)
  401. </p><p>
  402. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_bench.html">A Java/Scheme/C/C++ garbage collection benchmark.</a>
  403. </p><p>
  404. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/myths.ps">Slides for talk on memory allocation myths.</a>
  405. </p><p>
  406. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gctalk.ps">Slides for OOPSLA 98 garbage collection talk.</a>
  407. </p><p>
  408. <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/papers">Related papers.</a>
  409. </p><h1><a name="contacts">Contacts and Mailing List</a><a></a></h1>
  410. <a>We have recently set up two mailing list for collector announcements
  411. and discussions:
  412. </a><ul>
  413. <li><a href="mailto:gc-announce@linux.hpl.hp.com">gc-announce@linux.hpl.hp.com</a>
  414. is used for announcements of new versions. Postings are restricted.
  415. We expect this to always remain a very low volume list.
  416. </li><li><a href="mailto:gc@linux.hpl.hp.com">gc@linux.hpl.hp.com</a> is used for
  417. discussions, bug reports, and the like. Subscribers may post.
  418. On-topic posts by nonsubscribers will usually also be accepted, but
  419. it may take some time to review them.
  420. </li></ul>
  421. To subscribe to these lists, send a mail message containing the
  422. word "subscribe" to
  423. <a href="mailto:gc-announce-request@linux.hpl.hp.com?subject=subscribe">gc-announce-request@linux.hpl.hp.com</a>
  424. or to
  425. <a href="mailto:gc-request@linux.hpl.hp.com?subject=subscribe">gc-request@linux.hpl.hp.com</a>.
  426. (Please ignore the instructions about web-based subscription.
  427. The listed web site is behind the HP firewall.)
  428. <p>
  429. The archives for these lists appear
  430. <a href="http://www.hpl.hp.com/hosted/linux/mail-archives">here</a>.
  431. The gc list archive may also be read at
  432. <a href="http://dir.gmane.org/gmane.comp.programming.garbage-collection.boehmgc">gmane.org</a>.
  433. </p><p>
  434. Some prior discussion of the collector has taken place on the gcc
  435. java mailing list, whose archives appear
  436. <a href="http://gcc.gnu.org/ml/java/">here</a>, and also on
  437. <a href="http://lists.tunes.org/mailman/listinfo/gclist">gclist@iecc.com</a>.
  438. </p><p>
  439. Comments and bug reports may also be sent to
  440. (<a href="mailto:Hans_Boehm@hp.com">Hans.Boehm@hp.com</a>) or
  441. (<a href="mailto:boehm@acm.org">boehm@acm.org</a>), but the gc
  442. mailing list is usually preferred.
  443. </p></body></html>