Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/libgc/doc
diff options
context:
space:
mode:
authorPaolo Molaro <lupus@oddwiz.org>2006-01-24 14:37:10 +0300
committerPaolo Molaro <lupus@oddwiz.org>2006-01-24 14:37:10 +0300
commitd58dfa185af1d48fb93efdef1d046762f214f0a7 (patch)
treef851d10caf20d342811d58d624fcdcbd92fe4151 /libgc/doc
parent3be1eb27881d243559d4ab0baf7b538334c7e1b3 (diff)
Tue Jan 24 12:34:06 CET 2006 Paolo Molaro <lupus@ximian.com>
* *: update from upstream changes. svn path=/trunk/mono/; revision=55979
Diffstat (limited to 'libgc/doc')
-rw-r--r--libgc/doc/README2
-rw-r--r--libgc/doc/README.changes168
-rw-r--r--libgc/doc/README.darwin13
-rw-r--r--libgc/doc/README.environment1
-rw-r--r--libgc/doc/README.linux4
-rw-r--r--libgc/doc/README.solaris24
6 files changed, 186 insertions, 6 deletions
diff --git a/libgc/doc/README b/libgc/doc/README
index ae978c1136e..a19cb3021b0 100644
--- a/libgc/doc/README
+++ b/libgc/doc/README
@@ -28,7 +28,7 @@ are GPL'ed, but with an exception that should cover all uses in the
collector. (If you are concerned about such things, I recommend you look
at the notice in config.guess or ltmain.sh.)
-This is version 6.3alpha6 of a conservative garbage collector for C and C++.
+This is version 6.6 of a conservative garbage collector for C and C++.
You might find a more recent version of this at
diff --git a/libgc/doc/README.changes b/libgc/doc/README.changes
index 129738cf3d1..97b0b684dde 100644
--- a/libgc/doc/README.changes
+++ b/libgc/doc/README.changes
@@ -2076,7 +2076,175 @@ Since 6.3alpha5:
- Remove ltconfig, clean up configure messages for DGUX (thanks to
Adrian Bunk for the patches).
- Integrated NetBSD/OpenBSD patches from Marc Recht and Matthias Drochner.
+
+Since gc6.3alpha6:
+ - Compile test_cpp.cc with CXXCOMPILE instead of COMPILE.
+ - Very large allocations could cause a collector hang. Correct
+ calculation of GC_collect_at_heapsize.
+ - GC_print_hblkfreelist printed some bogus results if USE_MUNMAP
+ was defined.
+ - The generic GC_THREADS macro didn't work correctly on Solaris,
+ since the implementation failed to include gc_config_macros.h
+ before deciding whether or not to compile the rest of the file.
+ - Threadlibs.c failed to expand the generic GC_THREADS macro.
+ - Correct MacOSX thread stop code. (Thanks to Dick Porter.)
+ - SMALL_OBJ definition was off by one. This could cause crashes
+ at startup. (Thanks to Zoltan Varga for narrowing this down to
+ a trivial test case.)
+ - Integrate Paolo Molara's patch to deal with a race in the Darwin
+ thread stopping code.
+ - Changed X86_64 implementation to use SA_SIGINFO in the MPROTECT_VDB
+ implementation. The old approach appears to have been broken by
+ recent kernels.
+ - Add GC_ATTR_UNUSED to eliminate a warning in gc_allocator.h. (Thanks
+ to Andrew Begel.)
+ - Fix GC_task_self declaration in os_dep.c. (Thanks to Andrew Pinski.)
+ - Increase INITIAL_BUF_SZ in os_dep.c for Solaris /proc reads.
+
+Since 6.3:
+ - Merge gcconfig.h changes from gcc tree.
+ - Unconditionally include gc_priv.h in solaris_pthreads.c, win32_threads.h,
+ aix_irix_threads.c, and solaris_threads.c to get thread definitions.
+ - Start marker threads in GC_thr_init, so that they get started even
+ if no other threads are ever started. (Oddly enough, the parallel
+ collector worked correctly, though not well, with no helper threads.)
+ - Go ahead and split large blocks in GC_allochblk_nth if GC_dont_gc
+ is set. (Thanks to Alexander Petrossian.)
+ - GC_PRINT_BACK_HEIGHT would deadlock with thread support.
+ - Let in_progress_space in backgraph.s grow dynamically.
+ - Fix README.solaris2. The GC_thr_init() hack doesn't work anymore.
+ - Convert GC_finalizer_mem_freed to bytes in allchblk.c.
+ - Add missing declaration for GC_generic_malloc_words_small_inner.
+ Without it, s390x breaks. (Thanks to Ulrich Weigand.)
+ - Applied several MacOSX patches to support older tool chains.
+ (Thanks to Stefan Ring.)
+ - Bug fix for NetBSD/amd64. (Thanks to Marc Recht.) Add NetBSD/sh3
+ support. (Thanks to Uchiyama Yasushi.)
+ - Fixed an uninitialized variable in cordprnt.c. (Thanks to gcc for
+ providing the warning.)
+ - Eliminated some, but not all, gcc -Wall warnings.
+ - Changed some old style casts to reinterpret_cast in new_gc_alloc.h.
+ (Thanks to Dan Grayson.)
+ - GC_extend_size_map shouldn't adjust for GC_all_interior_pointers if
+ GC_DONT_ADD_BYTE_AT_END is set.
+ - Changed some (long) casts to (word) in preparation for win64.
+ (Thanks to Peter Colson.)
+ - Changed "int stack_size" declaration in pthread_support.c to use
+ size_t. (Only mattered with GC_ASSERTIONS enabled.)
+ - Added CRIS (etrax) support. (Thanks to Simon Posnjak and
+ Hans-Peter Nilsson.)
+ - Removed GC_IGNORE_FB frame buffer recognition, and replaced
+ it with a check that the mapping type is MEM_IMAGE.
+ In theory, this should work much better, but it is a high
+ risk change for win32. (Thanks to Ashley Bone for the crucial
+ experimental data behind this, and to Rutger Ovidus for
+ some further experiments.)
+ - Fixed print_block_list to print the correct kind number for
+ STUBBORN. (Thanks to Rutger Ovidus.)
+ - GC_allochblk_nth incremented GC_words_wasted by bytes rather than
+ words.
+ - Consider GC_words_wasted in GC_adj_words_allocd only if it is within
+ reason. (A hack to avoid some extremely unlikely scenarios in which
+ we manage to allocate only "wasted" space. 7.0 has a better fix.)
+ - Changed PowerPC GC_clear implementation to use lwsync instead of
+ eieio, since the documentation recommends against eieio, and
+ it seems to be incorrect if the preceding memory op is a load.
+ - Fixed print_block_list to print the correct kind number for
+ STUBBORN. (Thanks to Rutger Ovidus.)
+ - Have configure.in generate an error if it is asked to support
+ pthreads, but doesn't know how to.
+ - Added Kazuhiro Inaoka's patch for Renesas M32R support.
+ - Have the GNU build mechanism link with -ldl. Rename THREADLIBS
+ to THREADDLLIBS to reflect this. (Thanks to Sven Verdoolaege.)
+ - Added Hannes Mehnert's patch for FreeBSD/SPARC support.
+ - Merged some FreeBSD specific patches to threadlibs.c and dyn_load.c.
+ (Thanks tp John Merryweather Cooper.)
+ - Define MPROTECT_VDB on MACOSX only if threads are being used, since the
+ dirty page tracking mechanism uses threads. (This avoids an undefined
+ reference to _GC_darwin_register_mach_handler_thread.)
+ - By popular demand, use __libc symbols only if we are built with
+ USE_LIBC_PRIVATES, which is off by default, and not otherwise documented.
+ - Ignore GC_enable_incremental() requests when KEEP_BACK_PTRS is set.
+ The GC itself will dirty lots of pages in this cases, probably making
+ it counterproductive on all platforms. And the DARWIN port crashes.
+
+Since GC6.4:
+ - Integrated Paolo Molaro's patch to deal with EINTR in sem_wait.
+ - Make GC_approx_sp() write to dummy location to ensure that stack
+ is grown here, when sp looks reasonable, rather than later, when
+ it might look like a bad memory reference. (Problem was never
+ observed that I know of. But on rereading the code it seemed
+ dubious.)
+ - Separate out GC_with_callee_saves_pushed and sometimes call
+ it from GC_suspend_handler in pthread_stop_world.c. Callee-save
+ register values sometimes failed to get traced under HP/UX on
+ PA-RISC. Linux/IA64 had the same problem, though non-stacked
+ callee-save registers seem to be so rarely used there that nobody
+ ever noticed.
+ - Integrated an ancient Darwin powerpc_darwin_machine_dep.s patch
+ from Andreas Tobler, which I had lost.
+ - Fix compare_and_exchange implementation for gcc/IA64 to deal with
+ pickier compiler versions.
+ - Fixed Itanium 32-bit ABI support (HP/UX). In particular, the
+ compare_and_exchange implementation didn't consider that possibility.
+ - Undefine GC_pthread_detach in win32_threads.c. (Thanks to
+ Tagliapietra Tommaso.)
+ - Fixed inclusion of frame.h for NETBSD in os_dep.c.
+ - Applied Dan Bonachea's patch to use mmap on AIX.
+ - Several fixes to resurrect the Irix port on recent OS versions.
+ - Change ALPHA to use LINUX_STACKBOTTOM.
+ - Change SPARC64/LINUX to also use LINUX_STACKBOTTOM. Deal with potential
+ bad values of __libc_stack_end on that platform. (Thanks to David Miller.)
+ - Relax gctest to allow larger heap if ALIGN_DOUBLE isn't set.
+ (Unnecessary in 7.0)
+ - Force a define of __STDC__=0 for the IBM compiler on AIX, so that
+ we get prototypes. (Unnecessary in 7.0)
+ - GC_INIT definition for AIX and CYGWIN referred to DATASTART and DATAEND
+ which are only defined in private include files.
+ - Integrated some small gcconfig.h patches from Dan Bonachea. Also
+ relaxed assertion about FreeBSD stack size in pthread_support.c.
+ - Integrated Andrew Begel's darwin_stop_world.c patch for 64-bit
+ support. This may need additional work.
+ - Avoided potentially infinite recursion in GC_save_callers if
+ the system backtrace calls malloc. The workaround currently requires
+ __thread support if this code is used with threads.
+ - Avoided another similar infinite recursion by conditionally
+ invoking GC_save_callers in alloc.c. (Thanks to Matthias Andree
+ for helping to track down both of these.)
+ - Removed all traces of aix_irix_threads.c. AIX and Irix now use
+ pthread_support.c and pthread_stop_world.c. The old code appeared
+ to be unreliable for AIX, and was not regularly maintained.
+ - On Irix, ignore segments with MA_FETCHOP or MA_NOTCACHED attributed;
+ they're not always safe to read.
+ - Fixed a previously vacuous assertion (diagnosed by the SGI compiler)
+ in GC_remove_from_fl.
+ - Fix stack_size assertion in GC_pthread_create.
+ - Fix assertion in GC_steal_mark_stack.
+Since 6.5
+ - Fix CPU count detection for Irix and FreeBSD. (Thanks to Dan Bonachea.)
+ - Integrate Dan Bonachea's patch for the IBM XLC compiler on Darwin.
+ - Integrated Andreas Tobler's FreeBSD/PowerPC patch.
+ - Don't access the GC thread structure from the restart handler. It's
+ unsafe, since the handler may run too late. (Thanks to Ben Maurer for
+ tracking this down.)
+ - Applied Christian Thalinger's patch to change comment syntax in
+ alpha_mach_dep.S.
+ - Added test for GC_no_dls in GC_dyld_image_add for DARWIN. (Thanks to
+ Juan Jose Garcia Ripoli).
+ - Use LINUX_STACKBOTTOM for Linux/SH and LINUX/ARM. (Thanks to Sugioka
+ Toshinobu and Christian Thalinger.)
+ - Rewrote GC_parse_map_entry. This assumed a fixed column layout of
+ /proc/self/maps on Linux. This ceased to be true about 2 years ago.
+ The old code is probably quite problemetic with -DREDIRECT_MALLOC. It
+ is also used by default for IA64, though I haven't seen actual failures
+ there.
+ - More consistently define HBLKSIZE to 4096 on 64 bit architectures with
+ 4K pages. (Thanks to Andrew Haley.)
+ - With win32 threads, GC_stop_world needs to acquire GC_write_cs. (Thanks
+ to Ben Hutchings for the observation and patch.)
+ - Move up struct callinfo declaration to make gcc 4.0.2. happy.
+
To do:
- The USE_MUNMAP code should really use a separate data structure
indexed by physical page to keep track of time since last use of
diff --git a/libgc/doc/README.darwin b/libgc/doc/README.darwin
index 72d60406d5c..70954971fc0 100644
--- a/libgc/doc/README.darwin
+++ b/libgc/doc/README.darwin
@@ -1,3 +1,16 @@
+6.5 update:
+I disabled incremental GC on Darwin in this version, since I couldn't
+get gctest to pass when the GC was built as a dynamic library. Building
+with -DMPROTECT_VDB (and threads) on the command line should get you
+back to the old state. - HB
+
+./configure --enable-cplusplus results in a "make check" failure, probably
+because the ::delete override ends up in a separate dl, and Darwin dynamic
+loader semantics appear to be such that this is not really visible to the
+main program, unlike on ELF systems. Someone who understands dynamic
+loading needs to lookat this. For now, gc_cpp.o needs to be linked
+statically, if needed. - HB
+
Darwin/MacOSX Support - December 16, 2003
=========================================
diff --git a/libgc/doc/README.environment b/libgc/doc/README.environment
index 97a13dc3e45..686e948250b 100644
--- a/libgc/doc/README.environment
+++ b/libgc/doc/README.environment
@@ -115,6 +115,7 @@ GC_IGNORE_FB[=<n>] - (Win32 only.) Try to avoid treating a mapped
are never honored, eliminating this risk for most,
but not all, applications. This feature is likely to disappear
if/when we find a less disgusting "solution".
+ IN VERSION 6.4 AND LATER, THIS SHOULD BE UNNECESSARY.
The following turn on runtime flags that are also program settable. Checked
only during initialization. We expect that they will usually be set through
diff --git a/libgc/doc/README.linux b/libgc/doc/README.linux
index 1d0fd4c3fb6..ec4e7e641a0 100644
--- a/libgc/doc/README.linux
+++ b/libgc/doc/README.linux
@@ -19,10 +19,10 @@ Linux threads. These should not be touched by the client program.
To use threads, you need to abide by the following requirements:
-1) You need to use LinuxThreads (which are included in libc6).
+1) You need to use LinuxThreads or NPTL (which are included in libc6).
The collector relies on some implementation details of the LinuxThreads
- package. It is unlikely that this code will work on other
+ package. This code may not work on other
pthread implementations (in particular it will *not* work with
MIT pthreads).
diff --git a/libgc/doc/README.solaris2 b/libgc/doc/README.solaris2
index 6ed61dc83dc..31e7500382d 100644
--- a/libgc/doc/README.solaris2
+++ b/libgc/doc/README.solaris2
@@ -43,9 +43,7 @@ can result in unpleasant heap growth. But it seems better than the
race/deadlock issues we had before.
If solaris_threads are used on an X86 processor with malloc redirected to
-GC_malloc, it is necessary to call GC_thr_init explicitly before forking the
-first thread. (This avoids a deadlock arising from calling GC_thr_init
-with the allocation lock held.)
+GC_malloc a deadlock is likely to result.
It appears that there is a problem in using gc_cpp.h in conjunction with
Solaris threads and Sun's C++ runtime. Apparently the overloaded new operator