diff options
Diffstat (limited to 'boehm-gc/README')
-rw-r--r-- | boehm-gc/README | 61 |
1 files changed, 59 insertions, 2 deletions
diff --git a/boehm-gc/README b/boehm-gc/README index 4461e303102..f800ee46322 100644 --- a/boehm-gc/README +++ b/boehm-gc/README @@ -15,7 +15,7 @@ Permission to modify the code and to distribute modified code is granted, 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.0alpha4 of a conservative garbage collector for C and C++. +This is version 5.0alpha6 of a conservative garbage collector for C and C++. You might find a more recent version of this at @@ -1506,10 +1506,11 @@ Since 5.0 alpha3 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 + - Changed the Linux stack finding code to use /proc, after changing 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. + Thread support is currently still flakey. - Added basic Linux/IA64 support. - Integrated Anthony Green's PicoJava support. - Integrated Scott Ananian's StrongARM/NetBSD support. @@ -1527,6 +1528,58 @@ Since 5.0 alpha3 - GC_debug_free(0, ...) failed. Thanks to Fergus Henderson for the bug report and fix. +Since 5.0 alpha4 + - GC_malloc_explicitly_typed and friends sometimes failed to + initialize first word. + - Added allocation routines and support in the marker for mark descriptors + in a type structure referenced by the first word of an object. This was + introduced to support gcj, but hopefully in a way that makes it + generically useful. + - Added GC_requested_heapsize, and inhibited collections in nonincremental + mode if the actual used heap size is less than what was explicitly + requested. + - The Solaris pthreads version of GC_pthread_create didn't handle a NULL + attribute pointer. Solaris thread support used the wrong default thread + stack size. (Thanks to Melissa O'Neill for the patch.) + - Changed PUSH_CONTENTS macro to no longer modify first parameter. + This usually doesn't matter, but it was certainly an accident waiting + to happen ... + - Added GC_register_finalizer_no_order and friends to gc.h. They're + needed by Java implementations. + - Integrated a fix for a win32 deadlock resulting from clock() calling + malloc. (Thanks to Chris Dodd.) + - Integrated Hiroshi Kawashima's port to Linux/MIPS. This was designed + for a handheld platform, and may or may not be sufficient for other + machines. + - Fixed a va_arg problem with the %c specifier in cordprnt.c. It appears + that this was always broken, but recent versions of gcc are the first to + report the (statically detectable) bug. + - Added an attempt at a more general solution to dlopen races/deadlocks. + GC_dlopen now temporarily disables collection. Still not ideal, but ... + - Added -DUSE_I686_PREFETCH, -DUSE_3DNOW_PREFETCH, and support for IA64 + prefetch instructions. May improve performance measurably, but I'm not + sure the code will run correctly on processors that don't support the + instruction. Won't build except with very recent gcc. + - Added caching for header lookups in the marker. This seems to result + in a barely measurable performance gain. Added support for interleaved + lookups of two pointers, but unconfigured that since the performance + gain is currently near zero, and it adds to code size. + - Changed Linux DATA_START definition to check both data_start and + __data_start, since nothing else seems to be portable. + - Added -DUSE_LD_WRAP to optionally take advantage of the GNU ld function + wrapping mechanism. Probably currently useful only on Linux. + - Moved some variables for the scratch allocator into GC_arrays, on + Martin Hirzel's suggestion. + - Fixed a win32 threads bug that caused the collector to not look for + interior pointers from one of the thread stacks without + ALL_INTERIOR_POINTERS. (Thanks to Jeff Sturm.) + - Added Mingw32 support. (Thanks again to Jeff Sturm for the patch.) + - Changed the alpha port to use the generic register scanning code instead + of alpha_mach_dep.s. Alpha_mach_dep.s doesn't look for pointers in fp + registers, but gcc sometimes spills pointers there. (Thanks to Manuel Serrano + for helping me debug this by email.) Changed the IA64 code to do something + similar for similar reasons. + 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 @@ -1543,3 +1596,7 @@ To do: - Incremental collector should handle large objects better. Currently, it looks like the whole object is treated as dirty if any part of it is. + - Cord/cordprnt.c doesn't build on a few platforms (notably PowerPC), since + we make some unwarranted assumptions about how varargs are handled. This + currently makes the cord-aware versions of printf unusable on some platforms. + Fixing this is unfortunately not trivial. |