From 9bafc5a014fb9f8042c16af23ca807a277b7c87d Mon Sep 17 00:00:00 2001 From: hboehm Date: Fri, 11 May 2007 00:30:36 +0000 Subject: [PATCH] 2007-05-10 Hans Boehm * include/gc_cpp.h: Documentation updates. * include/gc_config_macros.h: Don't check for __ppc__ to set DARWIN_THREADS. * Makefile.am: Include configure_atomic_ops.sh in dist. * Makefile.in: Regenerate. --- ChangeLog | 8 ++++++++ Makefile.am | 2 +- Makefile.in | 8 ++++---- include/gc_config_macros.h | 3 +-- include/gc_cpp.h | 11 +++++++++-- 5 files changed, 23 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6f4dac3..e7685c7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-05-10 Hans Boehm + + * include/gc_cpp.h: Documentation updates. + * include/gc_config_macros.h: Don't check for __ppc__ to set + DARWIN_THREADS. + * Makefile.am: Include configure_atomic_ops.sh in dist. + * Makefile.in: Regenerate. + 2007-05-08 Hans Boehm * Makefile.am: Dont distribute copied atomic_ops files. Include diff --git a/Makefile.am b/Makefile.am index 16dc814..e143e43 100644 --- a/Makefile.am +++ b/Makefile.am @@ -175,7 +175,7 @@ EXTRA_DIST += README.QUICK EXTRA_DIST += BCC_MAKEFILE NT_MAKEFILE NT_THREADS_MAKEFILE \ OS2_MAKEFILE PCR-Makefile digimars.mak EMX_MAKEFILE \ Makefile.direct Makefile.dj Makefile.DLLs SMakefile.amiga \ - WCC_MAKEFILE + WCC_MAKEFILE configure_atomic_ops.sh # files used by makefiles other than Makefile.am # diff --git a/Makefile.in b/Makefile.in index 877026f..f56a45b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -453,10 +453,10 @@ EXTRA_DIST = cord/cordbscs.c cord/cordtest.c cord/de.c cord/cordprnt.c \ BCC_MAKEFILE NT_MAKEFILE NT_THREADS_MAKEFILE OS2_MAKEFILE \ PCR-Makefile digimars.mak EMX_MAKEFILE Makefile.direct \ Makefile.dj Makefile.DLLs SMakefile.amiga WCC_MAKEFILE \ - add_gc_prefix.c gcname.c if_mach.c if_not_there.c \ - hpux_test_and_clear.s gc.mak MacOS.c MacProjects.sit.hqx \ - mach_dep.c setjmp_t.c threadlibs.c AmigaOS.c \ - Mac_files/datastart.c Mac_files/dataend.c \ + configure_atomic_ops.sh add_gc_prefix.c gcname.c if_mach.c \ + if_not_there.c hpux_test_and_clear.s gc.mak MacOS.c \ + MacProjects.sit.hqx mach_dep.c setjmp_t.c threadlibs.c \ + AmigaOS.c Mac_files/datastart.c Mac_files/dataend.c \ Mac_files/MacOS_config.h Mac_files/MacOS_Test_config.h \ include/private/msvc_dbg.h msvc_dbg.c libatomic_ops-1.2 \ libtool.m4 diff --git a/include/gc_config_macros.h b/include/gc_config_macros.h index a46deb0..d73893f 100644 --- a/include/gc_config_macros.h +++ b/include/gc_config_macros.h @@ -92,8 +92,7 @@ # define GC_SOLARIS_THREADS # define GC_PTHREADS # endif - -# if defined(__APPLE__) && defined(__MACH__) && defined(__ppc__) +# if defined(__APPLE__) && defined(__MACH__) # define GC_DARWIN_THREADS # define GC_PTHREADS # endif diff --git a/include/gc_cpp.h b/include/gc_cpp.h index da2fac0..d3df211 100644 --- a/include/gc_cpp.h +++ b/include/gc_cpp.h @@ -48,6 +48,12 @@ using the NoGC placement: class A: public gc {...}; A* a = new (NoGC) A; // a is uncollectable. +The new(PointerFreeGC) syntax allows the allocation of collectable +objects that are not scanned by the collector. This useful if you +are allocating compressed data, bitmaps, or network packets. (In +the latter case, it may remove danger of unfriendly network packets +intentionally containing values that cause spurious memory retention.) + Both uncollectable and collectable objects can be explicitly deleted with "delete", which invokes an object's destructors and frees its storage immediately. @@ -80,7 +86,8 @@ objects. In practice, it finds almost all of them. Cautions: -1. Be sure the collector has been augmented with "make c++". +1. Be sure the collector has been augmented with "make c++" or +"--enable-cplusplus". 2. If your compiler supports the new "operator new[]" syntax, then add -DGC_OPERATOR_NEW_ARRAY to the Makefile. @@ -111,7 +118,7 @@ clean-up function: that preserves the correct exception semantics requires a language extension, e.g. the "gc" keyword.) -4. Compiler bugs: +4. Compiler bugs (now hopefully history): * Solaris 2's CC (SC3.0) doesn't implement t->~T() correctly, so the destructors of classes derived from gc_cleanup won't be invoked. -- 2.7.4