=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/gc/Attic/README,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- OpenXM_contrib2/asir2000/gc/Attic/README 1999/12/03 07:39:09 1.1 +++ OpenXM_contrib2/asir2000/gc/Attic/README 2000/04/10 08:31:30 1.2 @@ -1,6 +1,7 @@ Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers Copyright (c) 1991-1996 by Xerox Corporation. All rights reserved. -Copyright (c) 1996-1998 by Silicon Graphics. All rights reserved. +Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved. +Copyright (c) 1999 by Hewlett-Packard Company. All rights reserved. THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK. @@ -11,19 +12,19 @@ Permission to modify the code and to distribute modifi provided the above notices are retained, and a notice that the code was modified is included with the above copyright notice. -This is version 5.0alpha2 of a conservative garbage collector for C and C++. +This is version 5.0alpha4 of a conservative garbage collector for C and C++. You might find a more recent version of this at -http://reality.sgi.com/boehm/gc.html +http://www.hpl.hp.com/personal/Hans_Boehm/gc HISTORY - Early versions of this collector were developed as a part of research projects supported in part by the National Science Foundation and the Defense Advance Research Projects Agency. -Much of the code was rewritten by Hans-J. Boehm at Xerox PARC -and is now maintained by him at SGI (boehm@sgi.com or boehm@acm.org). +Much of the code was rewritten by Hans-J. Boehm (boehm@acm.org) at Xerox PARC +and at SGI. Some other contributors: @@ -1485,10 +1486,44 @@ Since 4.14 Since 5.0alpha1 - Fixed bugs introduced in alpha1 (OpenBSD & large block initialization). - - Added -DKEEP_BACK_PTRS and backptr.h interface. (The implementation idea came from Al Demers.) +Since 5.0alpha2 + - Added some highly incomplete code to support a copied young generation. + Comments on nursery.h are appreciated. + - Changed -DFIND_LEAK, -DJAVA_FINALIZATION, and -DFINALIZE_ON_DEMAND, + so the same effect could be obtained with a runtime switch. This is + a step towards standardizing on a single dynamic GC library. + - Significantly changed the way leak detection is handled, as a consequence + of the above. + +Since 5.0 alpha3 + - Added protection fault handling patch for Linux/M68K from Fergus + Henderson and Roman Hodek. + - Removed the tests for SGI_SOURCE in new_gc_alloc.h. This was causing that + interface to fail on nonSGI platforms. + - Changed the Linux stack finding code to use /proc, after chnging it + to use HEURISTIC1. (Thanks to David Mossberger for pointing out the + /proc hook.) + - Added HP/UX incremental GC support and HP/UX 11 thread support. + - Added basic Linux/IA64 support. + - Integrated Anthony Green's PicoJava support. + - Integrated Scott Ananian's StrongARM/NetBSD support. + - Fixed some fairly serious performance bugs in the incremental + collector. These have probably been there essentially forever. + (Mark bits were sometimes set before scanning dirty pages. + The reclaim phase unnecessarily dirtied full small object pages.) + - Changed the reclaim phase to ignore nearly full pages to avoid + touching them. + - Limited GC_black_list_spacing to roughly the heap growth increment. + - Changed full collection triggering heuristic to decrease full GC + frequency by default, but to explicitly trigger full GCs during + heap growth. This doesn't always improve things, but on average it's + probably a win. + - GC_debug_free(0, ...) failed. Thanks to Fergus Henderson for the + bug report and fix. + To do: - Very large root set sizes (> 16 MB or so) could cause the collector to abort with an unexpected mark stack overflow. (Thanks again to @@ -1502,8 +1537,6 @@ To do: be possible to conditionally intercept mmap and use GC_exclude_static_roots. The real fix is to walk rld data structures, which looks possible. - Integrate MIT and DEC pthreads ports. - - Deal with very uneven black-listing distributions. If all the black listed - blocks reside in the newly allocated heap section, the heuristic for - temporarily ignoring black-listing fails, and the heap grows too much. - (This was observed in only one case, and could be worked around, but ...) - - Some platform specific updates are waiting for 4.15alpha1. + - Incremental collector should handle large objects better. Currently, + it looks like the whole object is treated as dirty if any part of it + is.