pkgsrc/devel/boehm-gc/PLIST

60 lines
1.5 KiB
Text
Raw Normal View History

2009-06-14 19:38:38 +02:00
@comment $NetBSD: PLIST,v 1.12 2009/06/14 17:48:35 joerg Exp $
Update to 7.1. Extract from ChangeLog: * doc/gcinterface.html: Improve C++ interface documentation. * allchblk.c (GC_allochblk): Check for overflow during size rounding. * malloc.c: (free replacement) Fix caller address space check. * finalize.c (GC_grow_table): Dereference table in null-check. * allchblk.c (add_to_fl): disable assertions with USE_MUNMAP, and refine assertions to handle huge unmergable blocks. * allchblk.c (GC_enough_large_bytes_left): No longer take parameters; return free list index bound. (GC_merge_unmapped): Don't access nexthdr until after null test. (Fixes bug in 1/29/08 check-in.) (GC_allochblk): Calculate when splitting is allowable only once here, not when considering each block. (GC_allchblk_nth): Accept new may_split parameter. Avoid some redundant tests for exact size matches. * alloc.c (GC_should_collect): Cache min_bytes_allocd. (GC_maybe_gc): Make locking assertion testable. * mark_rts.c: Fix indentation. * pthread_stop_world.c: Replace old GC_err_printf1 reference. * misc.c (GC_init_inner): Assert !GC_need_to_lock only when defined. (GC_call_with_stack_base): Add GC_API. * os_dep.c (GC_get_stack_base): Add GC_API. * win32_threads.c: (GC_register_my_thread, GC_unregister_my_thread): Add GC_API. * include/gc.h: Add GC_API annotations. * include/private/gc_locks.h: Define UNCOND_LOCK etc. also for PCR. * include/private/gc_priv.h, mark_rts.c, typd_mlc.c: Add GC_push_typed_structures() to push GC_ext_descriptors. * allchblk.c (GC_merge_unmapped, GC_freehblk): Refuse to create blocks large enough that their size, when interpreted as a signed value, would be negative. * include/private/gc_priv.h: Update MAX_ROOT_SETS and LOG_PHT_ENTRIES to handle larger heaps. * allchblk.c, alloc.c, include/private/gc_priv.h: Track GC_bytes_dropped and use in GC triggering decisions. * alloc.c (min_bytes_allocd): Weight atomic blocks less. * alloc.c (GC_add_to_heap): Call GC_install_header(p) AFTER adjusting p. * alloc.c: Define GC_version instead of in version.h. * version.h: Remove. * include/gc_version.h: Move most of version.h here. * include/gc.h, doc/README.macros: Add GC_NO_THREAD_REDIRECTS, GC_NO_THREAD_DECLS, don't test explicitly for GC_SOLARIS_THREADS. * alloc.c: Deal correctly with address wrapping for GC_greatest_plausible_heap_addr and GC_least_plausible_heap_addr. * finalize.c, include/gc.h (GC_register_disappearing_link, GC_register_finalizer_inner): Improve out-of-memory handling. * dyn_load.c (GC_dyld_image_add): Remove ifdef clause and use the macro GC_GETSECTBYNAME instead. * include/private/gc_priv.h: Define GC_GETSECTBYNAME according to the architecture (Darwin). * thread_local_alloc.c (GC_malloc_atomic, GC_gcj_malloc): Pass granules, not bytes, to GC_FAST_MALLOC_GRANS. * include/gc.h: Never include gc_local_alloc.h. * malloc.c: Update GC_large_allocd_bytes on explicit deallocation. * allchblk.c: Sanity check GC_max_large_allocd_bytes. * include/extra/gc.h, include/extra/gc_cpp.h: New. * include/include.am: Install gc.h and gc_cpp.h in $(prefix)/include again. * dbg_mlc.c: Use random() on all glibc systems. * mach_dep.c (GC_with_callee_saves_pushed): Don't use getcontext() on HURD. Add comment. * pthread_stop_world.c (GC_suspend_handler, GC_stop_init): Accomodate systems without SA_SIGINFO. * alloc.c, backgraph.c, headers.c, include/private/gc_priv.h: Maintain GC_our_memory and GC_n_memory. * dbg_mlc.c (GC_print_smashed_obj): Improve message. (GC_print_all_smashed_proc): Pass client object address instead of base. * dyn_load.c (sort_heap_sects): New. (GC_register_map_entries): Register sections that are contiguous and merged with our heap. * malloc.c, os_dep.c (GC_text_mapping): Check for just base name of libraries. * malloc.c (calloc): Check for special callers even with USE_PROC_FOR_LIBRARIES. Move assertion. Add rudimentary malloc/free tracing. * misc.c: No longer call GC_init_lib_bounds explicitly. * thread_local_alloc.c (GC_malloc, GC_malloc_atomic): Always initialize on demand. * alloc.c (GC_stopped_mark): Call GC_add_current_malloc_heap() while world is still running. * os_dep.c (GC_is_heap_base): Don't call GC_add_current_malloc_heap() with world stopped. * include/gc.h (GC_INIT for cygwin): Always call GC_add_roots. * misc.c (GC_init/GC_init_inner): Perform all work in GC_init_inner.
2008-05-21 15:47:25 +02:00
include/gc.h
Update to 6.2alpha4. The package version is set to 6.1.994 so that future version checking will be correct when 6.2 final is out. Changes since 6.1: - Guard the test for GC_DUMP_REGULARLY in misc.c with "#ifndef NO_DEBUGGING". Otherwise it fails to build with NO_DEBUGGING defined. (Thanks to Manuel Serrano.) - Message about retrying suspend signals was incorrectly generated even when flag was not set. - Cleaned up MACOSX/NEXT root registration code. There was apparently a separate ifdef case in GC_register_data_segments() for no reason. - Removed MPROTECT_VDB for MACOSX port, based on one negative report. - Arrange for gc.h and friends to be correctly installed with GNU-style "make install". - Enable the GNU-style build facility include C++ support in the library with --enable-cplusplus. (Thanks to Thomas Maier for some of the patch.) - Mark from GC_thread_key in linux_threads.c, in case that's allocated from the garbage collected heap, as it is with our own thread-specific storage implementation. (Thanks to Jeff Sturm.) - Mark all free list header blocks if they are heap allocated. This avoids some unnecessary tracing. And it remains correct if we clear the root set. (Thanks to Jeff Sturm for identifying the bug.) - Improved S390/Linux support. Add S390/Linux 64-bit support. (Thanks to Ulrich Weigand.) - Corrected the spelling of GC_{M,C}ALLOC_EXPLICTLY_TYPED to GC_{M,C}ALLOC_EXPLICITLY_TYPED in gc_typed.h. This is technically an interface change. Based on the fact that nobody reported this, I suspect/hope there were no clients. - Cleaned up gc_typed.h so that (1) it adds an extern "C" declaration when appropriate, (2) doesn't generate references to undefined internal macros, and (3) allows easier manual construction of descriptors. - Close the file descriptor used by GC_print_address_map(). - Set the "close-on-exec" bit for various file descriptors maintained for the collector's internal use. - Added a hack to find memory segments owned by the system allocator under win32. Based on my tests, this tends to eventually find all segments, though it may take a while. There appear to be cleaner, but slower solutions under NT/XP. But they rely on an API that's unsupported under 9X. - Changed Linux PowerPC stack finding to LINUX_STACKBOTTOM. (Thanks to Akira Tagoh for pointing out that HEURISTIC1 doesn't work on 64-bit kernels.) - Added GC_set_free_space_divisor to avoid some Windows dll issues. - Added FIXUP_POINTER, POINTER_SHIFT, POINTER_MASK to allow preprocessing of candidate pointers for tagging, etc. - Always lock around GC_notify_full_gc(). Simplified code for invoking GC_notify_full_gc(). - Changed the way DATASTART is defined on FreeBSD to be robust against an unmapped page after etext. (Thanks to Hironori Sakamoto for tracking down the intermittent failure.) - Made GC_enable() and GC_disable() official. Deprecated direct update of GC_dont_gc. Changed GC_gcollect to be a noop when garbage collection is disabled. - Call GC_register_dynamic_libraries before stopping the world on Linux, in order to avoid a potential deadlock due to the dl_iterate_phdr lock. - Introduced a more general mechanism for platform-dependent code to decide whether the main data segment should be handled separately from dynamic libraries, or registered by GC_register_dynamic_libraries. The latter is more reliable and easier on Linux with dl_iterate_phdr. Changes since 6.2alpha1: - Fixed the completely broken FreeBSD code in 6.2alpha1. (Thanks to Hironori Sakamoto for the patch.) - Changed IRIX reference in dbg_mlc.c to IRIX5. (Thanks to Marcus Herbert.) - Attempted to work around the problems with .S filenames and the SGI compiler. (Reported by several people. Untested.) - Worked around an HP/UX make issue with the GNU-style build process. - Fixed the --enable-cplusplus build machinery to allow builds without a C++ compiler. (That was always the intent ...) - Changed the debugging allocation macros to explicitly pass the return address for Linux and XXXBSD on hardware for which we can't get stack traces. Use __builtin_return_address(0) to generate it when possible. Some of the configuration work was cleaned up (good) and moved to gc.h (bad, but necessary). This should make leak detection more useful on a number of platforms. (Thanks to Fabian Thylman for the suggestion.) - Fixed compilation problems in dbg_mlc.c with GC_ADD_CALLER. - Bumped revision number for dynamic library. Changes since 6.2alpha2: - Don't include execinfo.h in os_dep.c when it's not needed, and may not exist. Changes since 6.2alpha3: - Use LINUX_STACKBOTTOM for >= glibc2.2 on Linux/MIPS. (See Debian bug # 177204) - Integrated Jeff Sturm and Jesse Rosenstock's MACOSX threads patches. - Integrated Grzegorz Jakacki's substantial GNU build patch. "Make dist" should now work for the GNU build process. Documentation files are installed under share/gc. - Tweaked gc_cpp.h to again support the Borland compiler. (Thanks to Rene Girard for pointing out the problems.) - Updated BCC_MAKEFILE (thanks to Rene Girard). - Added GC_ASSERT check for minimum thread stack size. - Added --enable-gc-assertions. - Added some web documentation to the distribution. Updated it in the process. - Separate gc_conf_macros.h from gc.h. - Added generic GC_THREADS client-defined macro to set the appropriate GC_XXX_THREADS internal macro. (gc_config_macros.h.) - Add debugging versions of _ignore_off_page allocation primitves. - Moved declarations of GC_make_closure and GC_debug_invoke_finalizer from gc.h to gc_priv.h. - Reset GC_fail_count even if only a small allocation succeeds. - Integrated Brian Alliet's patch for dynamic library support on Darwin. - gc_cpp.h's gc_cleanup destructor called GC_REGISTER_FINALIZER_IGNORE_SELF when it should have called the lower case version, since it was explicitly computing a base pointer.
2003-05-09 14:53:26 +02:00
include/gc/gc.h
include/gc/gc_allocator.h
include/gc/gc_amiga_redirects.h
include/gc/gc_backptr.h
include/gc/gc_config_macros.h
include/gc/gc_cpp.h
include/gc/gc_gcj.h
include/gc/gc_inline.h
include/gc/gc_mark.h
include/gc/gc_pthread_redirects.h
include/gc/gc_tiny_fl.h
Update to 6.2alpha4. The package version is set to 6.1.994 so that future version checking will be correct when 6.2 final is out. Changes since 6.1: - Guard the test for GC_DUMP_REGULARLY in misc.c with "#ifndef NO_DEBUGGING". Otherwise it fails to build with NO_DEBUGGING defined. (Thanks to Manuel Serrano.) - Message about retrying suspend signals was incorrectly generated even when flag was not set. - Cleaned up MACOSX/NEXT root registration code. There was apparently a separate ifdef case in GC_register_data_segments() for no reason. - Removed MPROTECT_VDB for MACOSX port, based on one negative report. - Arrange for gc.h and friends to be correctly installed with GNU-style "make install". - Enable the GNU-style build facility include C++ support in the library with --enable-cplusplus. (Thanks to Thomas Maier for some of the patch.) - Mark from GC_thread_key in linux_threads.c, in case that's allocated from the garbage collected heap, as it is with our own thread-specific storage implementation. (Thanks to Jeff Sturm.) - Mark all free list header blocks if they are heap allocated. This avoids some unnecessary tracing. And it remains correct if we clear the root set. (Thanks to Jeff Sturm for identifying the bug.) - Improved S390/Linux support. Add S390/Linux 64-bit support. (Thanks to Ulrich Weigand.) - Corrected the spelling of GC_{M,C}ALLOC_EXPLICTLY_TYPED to GC_{M,C}ALLOC_EXPLICITLY_TYPED in gc_typed.h. This is technically an interface change. Based on the fact that nobody reported this, I suspect/hope there were no clients. - Cleaned up gc_typed.h so that (1) it adds an extern "C" declaration when appropriate, (2) doesn't generate references to undefined internal macros, and (3) allows easier manual construction of descriptors. - Close the file descriptor used by GC_print_address_map(). - Set the "close-on-exec" bit for various file descriptors maintained for the collector's internal use. - Added a hack to find memory segments owned by the system allocator under win32. Based on my tests, this tends to eventually find all segments, though it may take a while. There appear to be cleaner, but slower solutions under NT/XP. But they rely on an API that's unsupported under 9X. - Changed Linux PowerPC stack finding to LINUX_STACKBOTTOM. (Thanks to Akira Tagoh for pointing out that HEURISTIC1 doesn't work on 64-bit kernels.) - Added GC_set_free_space_divisor to avoid some Windows dll issues. - Added FIXUP_POINTER, POINTER_SHIFT, POINTER_MASK to allow preprocessing of candidate pointers for tagging, etc. - Always lock around GC_notify_full_gc(). Simplified code for invoking GC_notify_full_gc(). - Changed the way DATASTART is defined on FreeBSD to be robust against an unmapped page after etext. (Thanks to Hironori Sakamoto for tracking down the intermittent failure.) - Made GC_enable() and GC_disable() official. Deprecated direct update of GC_dont_gc. Changed GC_gcollect to be a noop when garbage collection is disabled. - Call GC_register_dynamic_libraries before stopping the world on Linux, in order to avoid a potential deadlock due to the dl_iterate_phdr lock. - Introduced a more general mechanism for platform-dependent code to decide whether the main data segment should be handled separately from dynamic libraries, or registered by GC_register_dynamic_libraries. The latter is more reliable and easier on Linux with dl_iterate_phdr. Changes since 6.2alpha1: - Fixed the completely broken FreeBSD code in 6.2alpha1. (Thanks to Hironori Sakamoto for the patch.) - Changed IRIX reference in dbg_mlc.c to IRIX5. (Thanks to Marcus Herbert.) - Attempted to work around the problems with .S filenames and the SGI compiler. (Reported by several people. Untested.) - Worked around an HP/UX make issue with the GNU-style build process. - Fixed the --enable-cplusplus build machinery to allow builds without a C++ compiler. (That was always the intent ...) - Changed the debugging allocation macros to explicitly pass the return address for Linux and XXXBSD on hardware for which we can't get stack traces. Use __builtin_return_address(0) to generate it when possible. Some of the configuration work was cleaned up (good) and moved to gc.h (bad, but necessary). This should make leak detection more useful on a number of platforms. (Thanks to Fabian Thylman for the suggestion.) - Fixed compilation problems in dbg_mlc.c with GC_ADD_CALLER. - Bumped revision number for dynamic library. Changes since 6.2alpha2: - Don't include execinfo.h in os_dep.c when it's not needed, and may not exist. Changes since 6.2alpha3: - Use LINUX_STACKBOTTOM for >= glibc2.2 on Linux/MIPS. (See Debian bug # 177204) - Integrated Jeff Sturm and Jesse Rosenstock's MACOSX threads patches. - Integrated Grzegorz Jakacki's substantial GNU build patch. "Make dist" should now work for the GNU build process. Documentation files are installed under share/gc. - Tweaked gc_cpp.h to again support the Borland compiler. (Thanks to Rene Girard for pointing out the problems.) - Updated BCC_MAKEFILE (thanks to Rene Girard). - Added GC_ASSERT check for minimum thread stack size. - Added --enable-gc-assertions. - Added some web documentation to the distribution. Updated it in the process. - Separate gc_conf_macros.h from gc.h. - Added generic GC_THREADS client-defined macro to set the appropriate GC_XXX_THREADS internal macro. (gc_config_macros.h.) - Add debugging versions of _ignore_off_page allocation primitves. - Moved declarations of GC_make_closure and GC_debug_invoke_finalizer from gc.h to gc_priv.h. - Reset GC_fail_count even if only a small allocation succeeds. - Integrated Brian Alliet's patch for dynamic library support on Darwin. - gc_cpp.h's gc_cleanup destructor called GC_REGISTER_FINALIZER_IGNORE_SELF when it should have called the lower case version, since it was explicitly computing a base pointer.
2003-05-09 14:53:26 +02:00
include/gc/gc_typed.h
Update to 7.1. Extract from ChangeLog: * doc/gcinterface.html: Improve C++ interface documentation. * allchblk.c (GC_allochblk): Check for overflow during size rounding. * malloc.c: (free replacement) Fix caller address space check. * finalize.c (GC_grow_table): Dereference table in null-check. * allchblk.c (add_to_fl): disable assertions with USE_MUNMAP, and refine assertions to handle huge unmergable blocks. * allchblk.c (GC_enough_large_bytes_left): No longer take parameters; return free list index bound. (GC_merge_unmapped): Don't access nexthdr until after null test. (Fixes bug in 1/29/08 check-in.) (GC_allochblk): Calculate when splitting is allowable only once here, not when considering each block. (GC_allchblk_nth): Accept new may_split parameter. Avoid some redundant tests for exact size matches. * alloc.c (GC_should_collect): Cache min_bytes_allocd. (GC_maybe_gc): Make locking assertion testable. * mark_rts.c: Fix indentation. * pthread_stop_world.c: Replace old GC_err_printf1 reference. * misc.c (GC_init_inner): Assert !GC_need_to_lock only when defined. (GC_call_with_stack_base): Add GC_API. * os_dep.c (GC_get_stack_base): Add GC_API. * win32_threads.c: (GC_register_my_thread, GC_unregister_my_thread): Add GC_API. * include/gc.h: Add GC_API annotations. * include/private/gc_locks.h: Define UNCOND_LOCK etc. also for PCR. * include/private/gc_priv.h, mark_rts.c, typd_mlc.c: Add GC_push_typed_structures() to push GC_ext_descriptors. * allchblk.c (GC_merge_unmapped, GC_freehblk): Refuse to create blocks large enough that their size, when interpreted as a signed value, would be negative. * include/private/gc_priv.h: Update MAX_ROOT_SETS and LOG_PHT_ENTRIES to handle larger heaps. * allchblk.c, alloc.c, include/private/gc_priv.h: Track GC_bytes_dropped and use in GC triggering decisions. * alloc.c (min_bytes_allocd): Weight atomic blocks less. * alloc.c (GC_add_to_heap): Call GC_install_header(p) AFTER adjusting p. * alloc.c: Define GC_version instead of in version.h. * version.h: Remove. * include/gc_version.h: Move most of version.h here. * include/gc.h, doc/README.macros: Add GC_NO_THREAD_REDIRECTS, GC_NO_THREAD_DECLS, don't test explicitly for GC_SOLARIS_THREADS. * alloc.c: Deal correctly with address wrapping for GC_greatest_plausible_heap_addr and GC_least_plausible_heap_addr. * finalize.c, include/gc.h (GC_register_disappearing_link, GC_register_finalizer_inner): Improve out-of-memory handling. * dyn_load.c (GC_dyld_image_add): Remove ifdef clause and use the macro GC_GETSECTBYNAME instead. * include/private/gc_priv.h: Define GC_GETSECTBYNAME according to the architecture (Darwin). * thread_local_alloc.c (GC_malloc_atomic, GC_gcj_malloc): Pass granules, not bytes, to GC_FAST_MALLOC_GRANS. * include/gc.h: Never include gc_local_alloc.h. * malloc.c: Update GC_large_allocd_bytes on explicit deallocation. * allchblk.c: Sanity check GC_max_large_allocd_bytes. * include/extra/gc.h, include/extra/gc_cpp.h: New. * include/include.am: Install gc.h and gc_cpp.h in $(prefix)/include again. * dbg_mlc.c: Use random() on all glibc systems. * mach_dep.c (GC_with_callee_saves_pushed): Don't use getcontext() on HURD. Add comment. * pthread_stop_world.c (GC_suspend_handler, GC_stop_init): Accomodate systems without SA_SIGINFO. * alloc.c, backgraph.c, headers.c, include/private/gc_priv.h: Maintain GC_our_memory and GC_n_memory. * dbg_mlc.c (GC_print_smashed_obj): Improve message. (GC_print_all_smashed_proc): Pass client object address instead of base. * dyn_load.c (sort_heap_sects): New. (GC_register_map_entries): Register sections that are contiguous and merged with our heap. * malloc.c, os_dep.c (GC_text_mapping): Check for just base name of libraries. * malloc.c (calloc): Check for special callers even with USE_PROC_FOR_LIBRARIES. Move assertion. Add rudimentary malloc/free tracing. * misc.c: No longer call GC_init_lib_bounds explicitly. * thread_local_alloc.c (GC_malloc, GC_malloc_atomic): Always initialize on demand. * alloc.c (GC_stopped_mark): Call GC_add_current_malloc_heap() while world is still running. * os_dep.c (GC_is_heap_base): Don't call GC_add_current_malloc_heap() with world stopped. * include/gc.h (GC_INIT for cygwin): Always call GC_add_roots. * misc.c (GC_init/GC_init_inner): Perform all work in GC_init_inner.
2008-05-21 15:47:25 +02:00
include/gc/gc_version.h
Update to 6.2alpha4. The package version is set to 6.1.994 so that future version checking will be correct when 6.2 final is out. Changes since 6.1: - Guard the test for GC_DUMP_REGULARLY in misc.c with "#ifndef NO_DEBUGGING". Otherwise it fails to build with NO_DEBUGGING defined. (Thanks to Manuel Serrano.) - Message about retrying suspend signals was incorrectly generated even when flag was not set. - Cleaned up MACOSX/NEXT root registration code. There was apparently a separate ifdef case in GC_register_data_segments() for no reason. - Removed MPROTECT_VDB for MACOSX port, based on one negative report. - Arrange for gc.h and friends to be correctly installed with GNU-style "make install". - Enable the GNU-style build facility include C++ support in the library with --enable-cplusplus. (Thanks to Thomas Maier for some of the patch.) - Mark from GC_thread_key in linux_threads.c, in case that's allocated from the garbage collected heap, as it is with our own thread-specific storage implementation. (Thanks to Jeff Sturm.) - Mark all free list header blocks if they are heap allocated. This avoids some unnecessary tracing. And it remains correct if we clear the root set. (Thanks to Jeff Sturm for identifying the bug.) - Improved S390/Linux support. Add S390/Linux 64-bit support. (Thanks to Ulrich Weigand.) - Corrected the spelling of GC_{M,C}ALLOC_EXPLICTLY_TYPED to GC_{M,C}ALLOC_EXPLICITLY_TYPED in gc_typed.h. This is technically an interface change. Based on the fact that nobody reported this, I suspect/hope there were no clients. - Cleaned up gc_typed.h so that (1) it adds an extern "C" declaration when appropriate, (2) doesn't generate references to undefined internal macros, and (3) allows easier manual construction of descriptors. - Close the file descriptor used by GC_print_address_map(). - Set the "close-on-exec" bit for various file descriptors maintained for the collector's internal use. - Added a hack to find memory segments owned by the system allocator under win32. Based on my tests, this tends to eventually find all segments, though it may take a while. There appear to be cleaner, but slower solutions under NT/XP. But they rely on an API that's unsupported under 9X. - Changed Linux PowerPC stack finding to LINUX_STACKBOTTOM. (Thanks to Akira Tagoh for pointing out that HEURISTIC1 doesn't work on 64-bit kernels.) - Added GC_set_free_space_divisor to avoid some Windows dll issues. - Added FIXUP_POINTER, POINTER_SHIFT, POINTER_MASK to allow preprocessing of candidate pointers for tagging, etc. - Always lock around GC_notify_full_gc(). Simplified code for invoking GC_notify_full_gc(). - Changed the way DATASTART is defined on FreeBSD to be robust against an unmapped page after etext. (Thanks to Hironori Sakamoto for tracking down the intermittent failure.) - Made GC_enable() and GC_disable() official. Deprecated direct update of GC_dont_gc. Changed GC_gcollect to be a noop when garbage collection is disabled. - Call GC_register_dynamic_libraries before stopping the world on Linux, in order to avoid a potential deadlock due to the dl_iterate_phdr lock. - Introduced a more general mechanism for platform-dependent code to decide whether the main data segment should be handled separately from dynamic libraries, or registered by GC_register_dynamic_libraries. The latter is more reliable and easier on Linux with dl_iterate_phdr. Changes since 6.2alpha1: - Fixed the completely broken FreeBSD code in 6.2alpha1. (Thanks to Hironori Sakamoto for the patch.) - Changed IRIX reference in dbg_mlc.c to IRIX5. (Thanks to Marcus Herbert.) - Attempted to work around the problems with .S filenames and the SGI compiler. (Reported by several people. Untested.) - Worked around an HP/UX make issue with the GNU-style build process. - Fixed the --enable-cplusplus build machinery to allow builds without a C++ compiler. (That was always the intent ...) - Changed the debugging allocation macros to explicitly pass the return address for Linux and XXXBSD on hardware for which we can't get stack traces. Use __builtin_return_address(0) to generate it when possible. Some of the configuration work was cleaned up (good) and moved to gc.h (bad, but necessary). This should make leak detection more useful on a number of platforms. (Thanks to Fabian Thylman for the suggestion.) - Fixed compilation problems in dbg_mlc.c with GC_ADD_CALLER. - Bumped revision number for dynamic library. Changes since 6.2alpha2: - Don't include execinfo.h in os_dep.c when it's not needed, and may not exist. Changes since 6.2alpha3: - Use LINUX_STACKBOTTOM for >= glibc2.2 on Linux/MIPS. (See Debian bug # 177204) - Integrated Jeff Sturm and Jesse Rosenstock's MACOSX threads patches. - Integrated Grzegorz Jakacki's substantial GNU build patch. "Make dist" should now work for the GNU build process. Documentation files are installed under share/gc. - Tweaked gc_cpp.h to again support the Borland compiler. (Thanks to Rene Girard for pointing out the problems.) - Updated BCC_MAKEFILE (thanks to Rene Girard). - Added GC_ASSERT check for minimum thread stack size. - Added --enable-gc-assertions. - Added some web documentation to the distribution. Updated it in the process. - Separate gc_conf_macros.h from gc.h. - Added generic GC_THREADS client-defined macro to set the appropriate GC_XXX_THREADS internal macro. (gc_config_macros.h.) - Add debugging versions of _ignore_off_page allocation primitves. - Moved declarations of GC_make_closure and GC_debug_invoke_finalizer from gc.h to gc_priv.h. - Reset GC_fail_count even if only a small allocation succeeds. - Integrated Brian Alliet's patch for dynamic library support on Darwin. - gc_cpp.h's gc_cleanup destructor called GC_REGISTER_FINALIZER_IGNORE_SELF when it should have called the lower case version, since it was explicitly computing a base pointer.
2003-05-09 14:53:26 +02:00
include/gc/leak_detector.h
include/gc/new_gc_alloc.h
include/gc/weakpointer.h
Update to 7.1. Extract from ChangeLog: * doc/gcinterface.html: Improve C++ interface documentation. * allchblk.c (GC_allochblk): Check for overflow during size rounding. * malloc.c: (free replacement) Fix caller address space check. * finalize.c (GC_grow_table): Dereference table in null-check. * allchblk.c (add_to_fl): disable assertions with USE_MUNMAP, and refine assertions to handle huge unmergable blocks. * allchblk.c (GC_enough_large_bytes_left): No longer take parameters; return free list index bound. (GC_merge_unmapped): Don't access nexthdr until after null test. (Fixes bug in 1/29/08 check-in.) (GC_allochblk): Calculate when splitting is allowable only once here, not when considering each block. (GC_allchblk_nth): Accept new may_split parameter. Avoid some redundant tests for exact size matches. * alloc.c (GC_should_collect): Cache min_bytes_allocd. (GC_maybe_gc): Make locking assertion testable. * mark_rts.c: Fix indentation. * pthread_stop_world.c: Replace old GC_err_printf1 reference. * misc.c (GC_init_inner): Assert !GC_need_to_lock only when defined. (GC_call_with_stack_base): Add GC_API. * os_dep.c (GC_get_stack_base): Add GC_API. * win32_threads.c: (GC_register_my_thread, GC_unregister_my_thread): Add GC_API. * include/gc.h: Add GC_API annotations. * include/private/gc_locks.h: Define UNCOND_LOCK etc. also for PCR. * include/private/gc_priv.h, mark_rts.c, typd_mlc.c: Add GC_push_typed_structures() to push GC_ext_descriptors. * allchblk.c (GC_merge_unmapped, GC_freehblk): Refuse to create blocks large enough that their size, when interpreted as a signed value, would be negative. * include/private/gc_priv.h: Update MAX_ROOT_SETS and LOG_PHT_ENTRIES to handle larger heaps. * allchblk.c, alloc.c, include/private/gc_priv.h: Track GC_bytes_dropped and use in GC triggering decisions. * alloc.c (min_bytes_allocd): Weight atomic blocks less. * alloc.c (GC_add_to_heap): Call GC_install_header(p) AFTER adjusting p. * alloc.c: Define GC_version instead of in version.h. * version.h: Remove. * include/gc_version.h: Move most of version.h here. * include/gc.h, doc/README.macros: Add GC_NO_THREAD_REDIRECTS, GC_NO_THREAD_DECLS, don't test explicitly for GC_SOLARIS_THREADS. * alloc.c: Deal correctly with address wrapping for GC_greatest_plausible_heap_addr and GC_least_plausible_heap_addr. * finalize.c, include/gc.h (GC_register_disappearing_link, GC_register_finalizer_inner): Improve out-of-memory handling. * dyn_load.c (GC_dyld_image_add): Remove ifdef clause and use the macro GC_GETSECTBYNAME instead. * include/private/gc_priv.h: Define GC_GETSECTBYNAME according to the architecture (Darwin). * thread_local_alloc.c (GC_malloc_atomic, GC_gcj_malloc): Pass granules, not bytes, to GC_FAST_MALLOC_GRANS. * include/gc.h: Never include gc_local_alloc.h. * malloc.c: Update GC_large_allocd_bytes on explicit deallocation. * allchblk.c: Sanity check GC_max_large_allocd_bytes. * include/extra/gc.h, include/extra/gc_cpp.h: New. * include/include.am: Install gc.h and gc_cpp.h in $(prefix)/include again. * dbg_mlc.c: Use random() on all glibc systems. * mach_dep.c (GC_with_callee_saves_pushed): Don't use getcontext() on HURD. Add comment. * pthread_stop_world.c (GC_suspend_handler, GC_stop_init): Accomodate systems without SA_SIGINFO. * alloc.c, backgraph.c, headers.c, include/private/gc_priv.h: Maintain GC_our_memory and GC_n_memory. * dbg_mlc.c (GC_print_smashed_obj): Improve message. (GC_print_all_smashed_proc): Pass client object address instead of base. * dyn_load.c (sort_heap_sects): New. (GC_register_map_entries): Register sections that are contiguous and merged with our heap. * malloc.c, os_dep.c (GC_text_mapping): Check for just base name of libraries. * malloc.c (calloc): Check for special callers even with USE_PROC_FOR_LIBRARIES. Move assertion. Add rudimentary malloc/free tracing. * misc.c: No longer call GC_init_lib_bounds explicitly. * thread_local_alloc.c (GC_malloc, GC_malloc_atomic): Always initialize on demand. * alloc.c (GC_stopped_mark): Call GC_add_current_malloc_heap() while world is still running. * os_dep.c (GC_is_heap_base): Don't call GC_add_current_malloc_heap() with world stopped. * include/gc.h (GC_INIT for cygwin): Always call GC_add_roots. * misc.c (GC_init/GC_init_inner): Perform all work in GC_init_inner.
2008-05-21 15:47:25 +02:00
include/gc_cpp.h
lib/libcord.la
lib/libgc.la
lib/libgccpp.la
lib/pkgconfig/bdw-gc.pc
man/man3/gc.3
Update to 6.2alpha4. The package version is set to 6.1.994 so that future version checking will be correct when 6.2 final is out. Changes since 6.1: - Guard the test for GC_DUMP_REGULARLY in misc.c with "#ifndef NO_DEBUGGING". Otherwise it fails to build with NO_DEBUGGING defined. (Thanks to Manuel Serrano.) - Message about retrying suspend signals was incorrectly generated even when flag was not set. - Cleaned up MACOSX/NEXT root registration code. There was apparently a separate ifdef case in GC_register_data_segments() for no reason. - Removed MPROTECT_VDB for MACOSX port, based on one negative report. - Arrange for gc.h and friends to be correctly installed with GNU-style "make install". - Enable the GNU-style build facility include C++ support in the library with --enable-cplusplus. (Thanks to Thomas Maier for some of the patch.) - Mark from GC_thread_key in linux_threads.c, in case that's allocated from the garbage collected heap, as it is with our own thread-specific storage implementation. (Thanks to Jeff Sturm.) - Mark all free list header blocks if they are heap allocated. This avoids some unnecessary tracing. And it remains correct if we clear the root set. (Thanks to Jeff Sturm for identifying the bug.) - Improved S390/Linux support. Add S390/Linux 64-bit support. (Thanks to Ulrich Weigand.) - Corrected the spelling of GC_{M,C}ALLOC_EXPLICTLY_TYPED to GC_{M,C}ALLOC_EXPLICITLY_TYPED in gc_typed.h. This is technically an interface change. Based on the fact that nobody reported this, I suspect/hope there were no clients. - Cleaned up gc_typed.h so that (1) it adds an extern "C" declaration when appropriate, (2) doesn't generate references to undefined internal macros, and (3) allows easier manual construction of descriptors. - Close the file descriptor used by GC_print_address_map(). - Set the "close-on-exec" bit for various file descriptors maintained for the collector's internal use. - Added a hack to find memory segments owned by the system allocator under win32. Based on my tests, this tends to eventually find all segments, though it may take a while. There appear to be cleaner, but slower solutions under NT/XP. But they rely on an API that's unsupported under 9X. - Changed Linux PowerPC stack finding to LINUX_STACKBOTTOM. (Thanks to Akira Tagoh for pointing out that HEURISTIC1 doesn't work on 64-bit kernels.) - Added GC_set_free_space_divisor to avoid some Windows dll issues. - Added FIXUP_POINTER, POINTER_SHIFT, POINTER_MASK to allow preprocessing of candidate pointers for tagging, etc. - Always lock around GC_notify_full_gc(). Simplified code for invoking GC_notify_full_gc(). - Changed the way DATASTART is defined on FreeBSD to be robust against an unmapped page after etext. (Thanks to Hironori Sakamoto for tracking down the intermittent failure.) - Made GC_enable() and GC_disable() official. Deprecated direct update of GC_dont_gc. Changed GC_gcollect to be a noop when garbage collection is disabled. - Call GC_register_dynamic_libraries before stopping the world on Linux, in order to avoid a potential deadlock due to the dl_iterate_phdr lock. - Introduced a more general mechanism for platform-dependent code to decide whether the main data segment should be handled separately from dynamic libraries, or registered by GC_register_dynamic_libraries. The latter is more reliable and easier on Linux with dl_iterate_phdr. Changes since 6.2alpha1: - Fixed the completely broken FreeBSD code in 6.2alpha1. (Thanks to Hironori Sakamoto for the patch.) - Changed IRIX reference in dbg_mlc.c to IRIX5. (Thanks to Marcus Herbert.) - Attempted to work around the problems with .S filenames and the SGI compiler. (Reported by several people. Untested.) - Worked around an HP/UX make issue with the GNU-style build process. - Fixed the --enable-cplusplus build machinery to allow builds without a C++ compiler. (That was always the intent ...) - Changed the debugging allocation macros to explicitly pass the return address for Linux and XXXBSD on hardware for which we can't get stack traces. Use __builtin_return_address(0) to generate it when possible. Some of the configuration work was cleaned up (good) and moved to gc.h (bad, but necessary). This should make leak detection more useful on a number of platforms. (Thanks to Fabian Thylman for the suggestion.) - Fixed compilation problems in dbg_mlc.c with GC_ADD_CALLER. - Bumped revision number for dynamic library. Changes since 6.2alpha2: - Don't include execinfo.h in os_dep.c when it's not needed, and may not exist. Changes since 6.2alpha3: - Use LINUX_STACKBOTTOM for >= glibc2.2 on Linux/MIPS. (See Debian bug # 177204) - Integrated Jeff Sturm and Jesse Rosenstock's MACOSX threads patches. - Integrated Grzegorz Jakacki's substantial GNU build patch. "Make dist" should now work for the GNU build process. Documentation files are installed under share/gc. - Tweaked gc_cpp.h to again support the Borland compiler. (Thanks to Rene Girard for pointing out the problems.) - Updated BCC_MAKEFILE (thanks to Rene Girard). - Added GC_ASSERT check for minimum thread stack size. - Added --enable-gc-assertions. - Added some web documentation to the distribution. Updated it in the process. - Separate gc_conf_macros.h from gc.h. - Added generic GC_THREADS client-defined macro to set the appropriate GC_XXX_THREADS internal macro. (gc_config_macros.h.) - Add debugging versions of _ignore_off_page allocation primitves. - Moved declarations of GC_make_closure and GC_debug_invoke_finalizer from gc.h to gc_priv.h. - Reset GC_fail_count even if only a small allocation succeeds. - Integrated Brian Alliet's patch for dynamic library support on Darwin. - gc_cpp.h's gc_cleanup destructor called GC_REGISTER_FINALIZER_IGNORE_SELF when it should have called the lower case version, since it was explicitly computing a base pointer.
2003-05-09 14:53:26 +02:00
share/doc/gc/README
share/doc/gc/README.DGUX386
share/doc/gc/README.Mac
share/doc/gc/README.MacOSX
share/doc/gc/README.OS2
share/doc/gc/README.amiga
share/doc/gc/README.arm.cross
share/doc/gc/README.autoconf
share/doc/gc/README.changes
share/doc/gc/README.contributors
share/doc/gc/README.cords
Update to 6.2: Since 6.2alpha5: - There was extra underscore in the name of GC_save_registers_in_stack for NetBSD/SPARC. (Thanks to Jaap Boender for the patch.) - Integrated Brian Alliet's patch for Darwin. This restructured the linuxthreads/pthreads support to separate generic pthreads support from more the system-dependent thread-stopping code. I believe this should make it easier to eliminate the code duplication between pthreads platforms in the future. The patch included some other code cleanups. - Integrated Dan Bonachea's patch to support AIX threads. This required substantial manual integration, mostly due to conflicts with other recent threads changes. It may take another iteration to get it to work. - Removed HPUX/PA-RISC support from aix_irix_threads.c. It wasn't used anyway and it cluttered up the code. And anything we can do to migrate towards generic pthreads support is a good thing. - Added a more explicit test for tracing of function arguments to test.c. (Thanks to Dan Grayson.) - Added Akira Tagoh's PowerPC64 patch. - Fixed some bit rot in the Cygwin port. (Thanks to Dan Bonachea for pointing it out.) Gc.h now includes just windows.h, not winbase.h. - Declared GC_save_regs_in_stack() in gc_priv.h. Remove other declarations. - Changed --enable-cplusplus to use automake consitionals. The old way confused libtool. "Make install" didn't work correctly for the old version. Previously --enable-cplusplus was broken on cygwin. - Changed the C version of GC_push_regs to fail at compile time if it is generated with an empty body. This seems to have been the cause of one or two subtle failures on unusual platforms. Those failures should now occur at build time and be easily fixable. Since 6.2alpha6: - Integrated a second round of Irix/AIX patches from Dan Bonachea. Renamed mips_sgi_mach_dep.S back to mips_sgi_mach_dep.s, since it requires the Irix assembler to do the C preprocessing; gcc -E doesn't work. - Fixed Makefile.direct for DARWIN. (Thanks to Manuel Serrano.) - There was a race between GC_pthread_detach and thread exit that could result in a thread structure being deallocated by GC_pthread_detach eventhough it was still needed by the thread exit code. (Thanks to Dick Porter for the small test case that allowed this to be debugged.) - Fixed version parsing for non-alpha versions in acinclude.m4 and version checking in version.h.
2003-06-27 12:49:42 +02:00
share/doc/gc/README.darwin
Update to 6.2alpha4. The package version is set to 6.1.994 so that future version checking will be correct when 6.2 final is out. Changes since 6.1: - Guard the test for GC_DUMP_REGULARLY in misc.c with "#ifndef NO_DEBUGGING". Otherwise it fails to build with NO_DEBUGGING defined. (Thanks to Manuel Serrano.) - Message about retrying suspend signals was incorrectly generated even when flag was not set. - Cleaned up MACOSX/NEXT root registration code. There was apparently a separate ifdef case in GC_register_data_segments() for no reason. - Removed MPROTECT_VDB for MACOSX port, based on one negative report. - Arrange for gc.h and friends to be correctly installed with GNU-style "make install". - Enable the GNU-style build facility include C++ support in the library with --enable-cplusplus. (Thanks to Thomas Maier for some of the patch.) - Mark from GC_thread_key in linux_threads.c, in case that's allocated from the garbage collected heap, as it is with our own thread-specific storage implementation. (Thanks to Jeff Sturm.) - Mark all free list header blocks if they are heap allocated. This avoids some unnecessary tracing. And it remains correct if we clear the root set. (Thanks to Jeff Sturm for identifying the bug.) - Improved S390/Linux support. Add S390/Linux 64-bit support. (Thanks to Ulrich Weigand.) - Corrected the spelling of GC_{M,C}ALLOC_EXPLICTLY_TYPED to GC_{M,C}ALLOC_EXPLICITLY_TYPED in gc_typed.h. This is technically an interface change. Based on the fact that nobody reported this, I suspect/hope there were no clients. - Cleaned up gc_typed.h so that (1) it adds an extern "C" declaration when appropriate, (2) doesn't generate references to undefined internal macros, and (3) allows easier manual construction of descriptors. - Close the file descriptor used by GC_print_address_map(). - Set the "close-on-exec" bit for various file descriptors maintained for the collector's internal use. - Added a hack to find memory segments owned by the system allocator under win32. Based on my tests, this tends to eventually find all segments, though it may take a while. There appear to be cleaner, but slower solutions under NT/XP. But they rely on an API that's unsupported under 9X. - Changed Linux PowerPC stack finding to LINUX_STACKBOTTOM. (Thanks to Akira Tagoh for pointing out that HEURISTIC1 doesn't work on 64-bit kernels.) - Added GC_set_free_space_divisor to avoid some Windows dll issues. - Added FIXUP_POINTER, POINTER_SHIFT, POINTER_MASK to allow preprocessing of candidate pointers for tagging, etc. - Always lock around GC_notify_full_gc(). Simplified code for invoking GC_notify_full_gc(). - Changed the way DATASTART is defined on FreeBSD to be robust against an unmapped page after etext. (Thanks to Hironori Sakamoto for tracking down the intermittent failure.) - Made GC_enable() and GC_disable() official. Deprecated direct update of GC_dont_gc. Changed GC_gcollect to be a noop when garbage collection is disabled. - Call GC_register_dynamic_libraries before stopping the world on Linux, in order to avoid a potential deadlock due to the dl_iterate_phdr lock. - Introduced a more general mechanism for platform-dependent code to decide whether the main data segment should be handled separately from dynamic libraries, or registered by GC_register_dynamic_libraries. The latter is more reliable and easier on Linux with dl_iterate_phdr. Changes since 6.2alpha1: - Fixed the completely broken FreeBSD code in 6.2alpha1. (Thanks to Hironori Sakamoto for the patch.) - Changed IRIX reference in dbg_mlc.c to IRIX5. (Thanks to Marcus Herbert.) - Attempted to work around the problems with .S filenames and the SGI compiler. (Reported by several people. Untested.) - Worked around an HP/UX make issue with the GNU-style build process. - Fixed the --enable-cplusplus build machinery to allow builds without a C++ compiler. (That was always the intent ...) - Changed the debugging allocation macros to explicitly pass the return address for Linux and XXXBSD on hardware for which we can't get stack traces. Use __builtin_return_address(0) to generate it when possible. Some of the configuration work was cleaned up (good) and moved to gc.h (bad, but necessary). This should make leak detection more useful on a number of platforms. (Thanks to Fabian Thylman for the suggestion.) - Fixed compilation problems in dbg_mlc.c with GC_ADD_CALLER. - Bumped revision number for dynamic library. Changes since 6.2alpha2: - Don't include execinfo.h in os_dep.c when it's not needed, and may not exist. Changes since 6.2alpha3: - Use LINUX_STACKBOTTOM for >= glibc2.2 on Linux/MIPS. (See Debian bug # 177204) - Integrated Jeff Sturm and Jesse Rosenstock's MACOSX threads patches. - Integrated Grzegorz Jakacki's substantial GNU build patch. "Make dist" should now work for the GNU build process. Documentation files are installed under share/gc. - Tweaked gc_cpp.h to again support the Borland compiler. (Thanks to Rene Girard for pointing out the problems.) - Updated BCC_MAKEFILE (thanks to Rene Girard). - Added GC_ASSERT check for minimum thread stack size. - Added --enable-gc-assertions. - Added some web documentation to the distribution. Updated it in the process. - Separate gc_conf_macros.h from gc.h. - Added generic GC_THREADS client-defined macro to set the appropriate GC_XXX_THREADS internal macro. (gc_config_macros.h.) - Add debugging versions of _ignore_off_page allocation primitves. - Moved declarations of GC_make_closure and GC_debug_invoke_finalizer from gc.h to gc_priv.h. - Reset GC_fail_count even if only a small allocation succeeds. - Integrated Brian Alliet's patch for dynamic library support on Darwin. - gc_cpp.h's gc_cleanup destructor called GC_REGISTER_FINALIZER_IGNORE_SELF when it should have called the lower case version, since it was explicitly computing a base pointer.
2003-05-09 14:53:26 +02:00
share/doc/gc/README.dj
share/doc/gc/README.environment
share/doc/gc/README.ews4800
share/doc/gc/README.hp
share/doc/gc/README.linux
share/doc/gc/README.macros
share/doc/gc/README.rs6000
share/doc/gc/README.sgi
share/doc/gc/README.solaris2
share/doc/gc/README.uts
share/doc/gc/README.win32
share/doc/gc/README.win64
Update to 6.2alpha4. The package version is set to 6.1.994 so that future version checking will be correct when 6.2 final is out. Changes since 6.1: - Guard the test for GC_DUMP_REGULARLY in misc.c with "#ifndef NO_DEBUGGING". Otherwise it fails to build with NO_DEBUGGING defined. (Thanks to Manuel Serrano.) - Message about retrying suspend signals was incorrectly generated even when flag was not set. - Cleaned up MACOSX/NEXT root registration code. There was apparently a separate ifdef case in GC_register_data_segments() for no reason. - Removed MPROTECT_VDB for MACOSX port, based on one negative report. - Arrange for gc.h and friends to be correctly installed with GNU-style "make install". - Enable the GNU-style build facility include C++ support in the library with --enable-cplusplus. (Thanks to Thomas Maier for some of the patch.) - Mark from GC_thread_key in linux_threads.c, in case that's allocated from the garbage collected heap, as it is with our own thread-specific storage implementation. (Thanks to Jeff Sturm.) - Mark all free list header blocks if they are heap allocated. This avoids some unnecessary tracing. And it remains correct if we clear the root set. (Thanks to Jeff Sturm for identifying the bug.) - Improved S390/Linux support. Add S390/Linux 64-bit support. (Thanks to Ulrich Weigand.) - Corrected the spelling of GC_{M,C}ALLOC_EXPLICTLY_TYPED to GC_{M,C}ALLOC_EXPLICITLY_TYPED in gc_typed.h. This is technically an interface change. Based on the fact that nobody reported this, I suspect/hope there were no clients. - Cleaned up gc_typed.h so that (1) it adds an extern "C" declaration when appropriate, (2) doesn't generate references to undefined internal macros, and (3) allows easier manual construction of descriptors. - Close the file descriptor used by GC_print_address_map(). - Set the "close-on-exec" bit for various file descriptors maintained for the collector's internal use. - Added a hack to find memory segments owned by the system allocator under win32. Based on my tests, this tends to eventually find all segments, though it may take a while. There appear to be cleaner, but slower solutions under NT/XP. But they rely on an API that's unsupported under 9X. - Changed Linux PowerPC stack finding to LINUX_STACKBOTTOM. (Thanks to Akira Tagoh for pointing out that HEURISTIC1 doesn't work on 64-bit kernels.) - Added GC_set_free_space_divisor to avoid some Windows dll issues. - Added FIXUP_POINTER, POINTER_SHIFT, POINTER_MASK to allow preprocessing of candidate pointers for tagging, etc. - Always lock around GC_notify_full_gc(). Simplified code for invoking GC_notify_full_gc(). - Changed the way DATASTART is defined on FreeBSD to be robust against an unmapped page after etext. (Thanks to Hironori Sakamoto for tracking down the intermittent failure.) - Made GC_enable() and GC_disable() official. Deprecated direct update of GC_dont_gc. Changed GC_gcollect to be a noop when garbage collection is disabled. - Call GC_register_dynamic_libraries before stopping the world on Linux, in order to avoid a potential deadlock due to the dl_iterate_phdr lock. - Introduced a more general mechanism for platform-dependent code to decide whether the main data segment should be handled separately from dynamic libraries, or registered by GC_register_dynamic_libraries. The latter is more reliable and easier on Linux with dl_iterate_phdr. Changes since 6.2alpha1: - Fixed the completely broken FreeBSD code in 6.2alpha1. (Thanks to Hironori Sakamoto for the patch.) - Changed IRIX reference in dbg_mlc.c to IRIX5. (Thanks to Marcus Herbert.) - Attempted to work around the problems with .S filenames and the SGI compiler. (Reported by several people. Untested.) - Worked around an HP/UX make issue with the GNU-style build process. - Fixed the --enable-cplusplus build machinery to allow builds without a C++ compiler. (That was always the intent ...) - Changed the debugging allocation macros to explicitly pass the return address for Linux and XXXBSD on hardware for which we can't get stack traces. Use __builtin_return_address(0) to generate it when possible. Some of the configuration work was cleaned up (good) and moved to gc.h (bad, but necessary). This should make leak detection more useful on a number of platforms. (Thanks to Fabian Thylman for the suggestion.) - Fixed compilation problems in dbg_mlc.c with GC_ADD_CALLER. - Bumped revision number for dynamic library. Changes since 6.2alpha2: - Don't include execinfo.h in os_dep.c when it's not needed, and may not exist. Changes since 6.2alpha3: - Use LINUX_STACKBOTTOM for >= glibc2.2 on Linux/MIPS. (See Debian bug # 177204) - Integrated Jeff Sturm and Jesse Rosenstock's MACOSX threads patches. - Integrated Grzegorz Jakacki's substantial GNU build patch. "Make dist" should now work for the GNU build process. Documentation files are installed under share/gc. - Tweaked gc_cpp.h to again support the Borland compiler. (Thanks to Rene Girard for pointing out the problems.) - Updated BCC_MAKEFILE (thanks to Rene Girard). - Added GC_ASSERT check for minimum thread stack size. - Added --enable-gc-assertions. - Added some web documentation to the distribution. Updated it in the process. - Separate gc_conf_macros.h from gc.h. - Added generic GC_THREADS client-defined macro to set the appropriate GC_XXX_THREADS internal macro. (gc_config_macros.h.) - Add debugging versions of _ignore_off_page allocation primitves. - Moved declarations of GC_make_closure and GC_debug_invoke_finalizer from gc.h to gc_priv.h. - Reset GC_fail_count even if only a small allocation succeeds. - Integrated Brian Alliet's patch for dynamic library support on Darwin. - gc_cpp.h's gc_cleanup destructor called GC_REGISTER_FINALIZER_IGNORE_SELF when it should have called the lower case version, since it was explicitly computing a base pointer.
2003-05-09 14:53:26 +02:00
share/doc/gc/barrett_diagram
share/doc/gc/debugging.html
share/doc/gc/gc.man
share/doc/gc/gcdescr.html
share/doc/gc/gcinterface.html
share/doc/gc/leak.html
share/doc/gc/overview.html
share/doc/gc/porting.html
Update to 6.2alpha4. The package version is set to 6.1.994 so that future version checking will be correct when 6.2 final is out. Changes since 6.1: - Guard the test for GC_DUMP_REGULARLY in misc.c with "#ifndef NO_DEBUGGING". Otherwise it fails to build with NO_DEBUGGING defined. (Thanks to Manuel Serrano.) - Message about retrying suspend signals was incorrectly generated even when flag was not set. - Cleaned up MACOSX/NEXT root registration code. There was apparently a separate ifdef case in GC_register_data_segments() for no reason. - Removed MPROTECT_VDB for MACOSX port, based on one negative report. - Arrange for gc.h and friends to be correctly installed with GNU-style "make install". - Enable the GNU-style build facility include C++ support in the library with --enable-cplusplus. (Thanks to Thomas Maier for some of the patch.) - Mark from GC_thread_key in linux_threads.c, in case that's allocated from the garbage collected heap, as it is with our own thread-specific storage implementation. (Thanks to Jeff Sturm.) - Mark all free list header blocks if they are heap allocated. This avoids some unnecessary tracing. And it remains correct if we clear the root set. (Thanks to Jeff Sturm for identifying the bug.) - Improved S390/Linux support. Add S390/Linux 64-bit support. (Thanks to Ulrich Weigand.) - Corrected the spelling of GC_{M,C}ALLOC_EXPLICTLY_TYPED to GC_{M,C}ALLOC_EXPLICITLY_TYPED in gc_typed.h. This is technically an interface change. Based on the fact that nobody reported this, I suspect/hope there were no clients. - Cleaned up gc_typed.h so that (1) it adds an extern "C" declaration when appropriate, (2) doesn't generate references to undefined internal macros, and (3) allows easier manual construction of descriptors. - Close the file descriptor used by GC_print_address_map(). - Set the "close-on-exec" bit for various file descriptors maintained for the collector's internal use. - Added a hack to find memory segments owned by the system allocator under win32. Based on my tests, this tends to eventually find all segments, though it may take a while. There appear to be cleaner, but slower solutions under NT/XP. But they rely on an API that's unsupported under 9X. - Changed Linux PowerPC stack finding to LINUX_STACKBOTTOM. (Thanks to Akira Tagoh for pointing out that HEURISTIC1 doesn't work on 64-bit kernels.) - Added GC_set_free_space_divisor to avoid some Windows dll issues. - Added FIXUP_POINTER, POINTER_SHIFT, POINTER_MASK to allow preprocessing of candidate pointers for tagging, etc. - Always lock around GC_notify_full_gc(). Simplified code for invoking GC_notify_full_gc(). - Changed the way DATASTART is defined on FreeBSD to be robust against an unmapped page after etext. (Thanks to Hironori Sakamoto for tracking down the intermittent failure.) - Made GC_enable() and GC_disable() official. Deprecated direct update of GC_dont_gc. Changed GC_gcollect to be a noop when garbage collection is disabled. - Call GC_register_dynamic_libraries before stopping the world on Linux, in order to avoid a potential deadlock due to the dl_iterate_phdr lock. - Introduced a more general mechanism for platform-dependent code to decide whether the main data segment should be handled separately from dynamic libraries, or registered by GC_register_dynamic_libraries. The latter is more reliable and easier on Linux with dl_iterate_phdr. Changes since 6.2alpha1: - Fixed the completely broken FreeBSD code in 6.2alpha1. (Thanks to Hironori Sakamoto for the patch.) - Changed IRIX reference in dbg_mlc.c to IRIX5. (Thanks to Marcus Herbert.) - Attempted to work around the problems with .S filenames and the SGI compiler. (Reported by several people. Untested.) - Worked around an HP/UX make issue with the GNU-style build process. - Fixed the --enable-cplusplus build machinery to allow builds without a C++ compiler. (That was always the intent ...) - Changed the debugging allocation macros to explicitly pass the return address for Linux and XXXBSD on hardware for which we can't get stack traces. Use __builtin_return_address(0) to generate it when possible. Some of the configuration work was cleaned up (good) and moved to gc.h (bad, but necessary). This should make leak detection more useful on a number of platforms. (Thanks to Fabian Thylman for the suggestion.) - Fixed compilation problems in dbg_mlc.c with GC_ADD_CALLER. - Bumped revision number for dynamic library. Changes since 6.2alpha2: - Don't include execinfo.h in os_dep.c when it's not needed, and may not exist. Changes since 6.2alpha3: - Use LINUX_STACKBOTTOM for >= glibc2.2 on Linux/MIPS. (See Debian bug # 177204) - Integrated Jeff Sturm and Jesse Rosenstock's MACOSX threads patches. - Integrated Grzegorz Jakacki's substantial GNU build patch. "Make dist" should now work for the GNU build process. Documentation files are installed under share/gc. - Tweaked gc_cpp.h to again support the Borland compiler. (Thanks to Rene Girard for pointing out the problems.) - Updated BCC_MAKEFILE (thanks to Rene Girard). - Added GC_ASSERT check for minimum thread stack size. - Added --enable-gc-assertions. - Added some web documentation to the distribution. Updated it in the process. - Separate gc_conf_macros.h from gc.h. - Added generic GC_THREADS client-defined macro to set the appropriate GC_XXX_THREADS internal macro. (gc_config_macros.h.) - Add debugging versions of _ignore_off_page allocation primitves. - Moved declarations of GC_make_closure and GC_debug_invoke_finalizer from gc.h to gc_priv.h. - Reset GC_fail_count even if only a small allocation succeeds. - Integrated Brian Alliet's patch for dynamic library support on Darwin. - gc_cpp.h's gc_cleanup destructor called GC_REGISTER_FINALIZER_IGNORE_SELF when it should have called the lower case version, since it was explicitly computing a base pointer.
2003-05-09 14:53:26 +02:00
share/doc/gc/scale.html
share/doc/gc/simple_example.html
Update to 6.2alpha4. The package version is set to 6.1.994 so that future version checking will be correct when 6.2 final is out. Changes since 6.1: - Guard the test for GC_DUMP_REGULARLY in misc.c with "#ifndef NO_DEBUGGING". Otherwise it fails to build with NO_DEBUGGING defined. (Thanks to Manuel Serrano.) - Message about retrying suspend signals was incorrectly generated even when flag was not set. - Cleaned up MACOSX/NEXT root registration code. There was apparently a separate ifdef case in GC_register_data_segments() for no reason. - Removed MPROTECT_VDB for MACOSX port, based on one negative report. - Arrange for gc.h and friends to be correctly installed with GNU-style "make install". - Enable the GNU-style build facility include C++ support in the library with --enable-cplusplus. (Thanks to Thomas Maier for some of the patch.) - Mark from GC_thread_key in linux_threads.c, in case that's allocated from the garbage collected heap, as it is with our own thread-specific storage implementation. (Thanks to Jeff Sturm.) - Mark all free list header blocks if they are heap allocated. This avoids some unnecessary tracing. And it remains correct if we clear the root set. (Thanks to Jeff Sturm for identifying the bug.) - Improved S390/Linux support. Add S390/Linux 64-bit support. (Thanks to Ulrich Weigand.) - Corrected the spelling of GC_{M,C}ALLOC_EXPLICTLY_TYPED to GC_{M,C}ALLOC_EXPLICITLY_TYPED in gc_typed.h. This is technically an interface change. Based on the fact that nobody reported this, I suspect/hope there were no clients. - Cleaned up gc_typed.h so that (1) it adds an extern "C" declaration when appropriate, (2) doesn't generate references to undefined internal macros, and (3) allows easier manual construction of descriptors. - Close the file descriptor used by GC_print_address_map(). - Set the "close-on-exec" bit for various file descriptors maintained for the collector's internal use. - Added a hack to find memory segments owned by the system allocator under win32. Based on my tests, this tends to eventually find all segments, though it may take a while. There appear to be cleaner, but slower solutions under NT/XP. But they rely on an API that's unsupported under 9X. - Changed Linux PowerPC stack finding to LINUX_STACKBOTTOM. (Thanks to Akira Tagoh for pointing out that HEURISTIC1 doesn't work on 64-bit kernels.) - Added GC_set_free_space_divisor to avoid some Windows dll issues. - Added FIXUP_POINTER, POINTER_SHIFT, POINTER_MASK to allow preprocessing of candidate pointers for tagging, etc. - Always lock around GC_notify_full_gc(). Simplified code for invoking GC_notify_full_gc(). - Changed the way DATASTART is defined on FreeBSD to be robust against an unmapped page after etext. (Thanks to Hironori Sakamoto for tracking down the intermittent failure.) - Made GC_enable() and GC_disable() official. Deprecated direct update of GC_dont_gc. Changed GC_gcollect to be a noop when garbage collection is disabled. - Call GC_register_dynamic_libraries before stopping the world on Linux, in order to avoid a potential deadlock due to the dl_iterate_phdr lock. - Introduced a more general mechanism for platform-dependent code to decide whether the main data segment should be handled separately from dynamic libraries, or registered by GC_register_dynamic_libraries. The latter is more reliable and easier on Linux with dl_iterate_phdr. Changes since 6.2alpha1: - Fixed the completely broken FreeBSD code in 6.2alpha1. (Thanks to Hironori Sakamoto for the patch.) - Changed IRIX reference in dbg_mlc.c to IRIX5. (Thanks to Marcus Herbert.) - Attempted to work around the problems with .S filenames and the SGI compiler. (Reported by several people. Untested.) - Worked around an HP/UX make issue with the GNU-style build process. - Fixed the --enable-cplusplus build machinery to allow builds without a C++ compiler. (That was always the intent ...) - Changed the debugging allocation macros to explicitly pass the return address for Linux and XXXBSD on hardware for which we can't get stack traces. Use __builtin_return_address(0) to generate it when possible. Some of the configuration work was cleaned up (good) and moved to gc.h (bad, but necessary). This should make leak detection more useful on a number of platforms. (Thanks to Fabian Thylman for the suggestion.) - Fixed compilation problems in dbg_mlc.c with GC_ADD_CALLER. - Bumped revision number for dynamic library. Changes since 6.2alpha2: - Don't include execinfo.h in os_dep.c when it's not needed, and may not exist. Changes since 6.2alpha3: - Use LINUX_STACKBOTTOM for >= glibc2.2 on Linux/MIPS. (See Debian bug # 177204) - Integrated Jeff Sturm and Jesse Rosenstock's MACOSX threads patches. - Integrated Grzegorz Jakacki's substantial GNU build patch. "Make dist" should now work for the GNU build process. Documentation files are installed under share/gc. - Tweaked gc_cpp.h to again support the Borland compiler. (Thanks to Rene Girard for pointing out the problems.) - Updated BCC_MAKEFILE (thanks to Rene Girard). - Added GC_ASSERT check for minimum thread stack size. - Added --enable-gc-assertions. - Added some web documentation to the distribution. Updated it in the process. - Separate gc_conf_macros.h from gc.h. - Added generic GC_THREADS client-defined macro to set the appropriate GC_XXX_THREADS internal macro. (gc_config_macros.h.) - Add debugging versions of _ignore_off_page allocation primitves. - Moved declarations of GC_make_closure and GC_debug_invoke_finalizer from gc.h to gc_priv.h. - Reset GC_fail_count even if only a small allocation succeeds. - Integrated Brian Alliet's patch for dynamic library support on Darwin. - gc_cpp.h's gc_cleanup destructor called GC_REGISTER_FINALIZER_IGNORE_SELF when it should have called the lower case version, since it was explicitly computing a base pointer.
2003-05-09 14:53:26 +02:00
share/doc/gc/tree.html