]> granicus.if.org Git - gc/commitdiff
Update documentation about the incremental collector support
authorIvan Maidanski <ivmai@mail.ru>
Thu, 4 Apr 2019 21:34:04 +0000 (00:34 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Fri, 5 Apr 2019 19:00:06 +0000 (22:00 +0300)
(a cherry-pick of commit 5d4fd4de from 'master')

* doc/README.darwin (Important Usage Notes): Remove outdated note about
flaky incremental mode.
* doc/README.darwin (Implementation Information): Remove information
about old incremental collector implementation.
* doc/README.win32 (Watcom compiler): Refine information about the
incremental mode support.
* doc/scale.md (Options for enhanced scalability): Refine when the
dedicated marker threads are created.

doc/README.darwin
doc/README.win32
doc/scale.md

index 2727d0b155fe5994327ee9f7b6875383b76cbc70..5c6935bcc0509acaf2252493b24d63dd0e74fc26 100644 (file)
@@ -36,11 +36,6 @@ if you have an application or set of libraries that all use the
 garbage collector, to create an initialization routine for each of
 them that calls GC_init(). Better safe than sorry.
 
-The incremental collector is still a bit flaky on darwin. It seems to
-work reliably with workarounds for a few possible bugs in place however
-these workaround may not work correctly in all cases. There may also
-be additional problems that I have not found.
-
 Thread-local GC allocation will not work with threads that are not
 created using the GC-provided override of pthread_create(). Threads
 created without the GC-provided pthread_create() do not have the
@@ -76,10 +71,8 @@ programs that use JNI. If you run code that does not follow the stack
 layout or stack pointer conventions laid out in the PPC Mach-O ABI,
 then this will likely crash the garbage collector.
 
-The original incremental collector support unfortunately no longer works
-on recent Darwin versions. It also relied on some undocumented kernel
-structures. Mach, however, does have a very clean interface to exception
-handing. The current implementation uses Mach's exception handling.
+Mach has a very clean interface to exception handing. So, the current
+implementation of the incremental collection uses Mach's exception handling.
 
 Much thanks goes to Andrew Stone, Dietmar Planitzer, Andrew Begel,
 Jeff Sturm, and Jesse Rosenstock for all their work on the
index aa81e66eca07a4146cddebbbbf9cd540cbb6d6cc..de4ef76280983547062524f6f4330ba2f34ee3d4 100644 (file)
@@ -114,7 +114,7 @@ Note that all compilations were done under Windows 95 or NT.
 For unknown reason compiling under Windows 3.11 for NT (one
 attempt has been made) leads to broken executables.
 
-Incremental collection is not supported.
+Incremental collection is supported (except for MSDOS and OS/2).
 
 cord is not ported.
 
index b32c1ab4267006cb45018aaf6cddb2266b8ea6f1..2a3c69480573c6dd01ce1bd590e3cdd0e42495a9 100644 (file)
@@ -39,7 +39,8 @@ to be used together.
   is performed by the thread that triggered the collection, together with
   _N_ - 1 dedicated threads, where _N_ is the number of processors detected
   by the collector. The dedicated threads are created once at initialization
-  time. A second effect of this flag is to switch to a more concurrent
+  time (and optionally recreated in child processes after forking).
+  A second effect of this flag is to switch to a more concurrent
   implementation of `GC_malloc_many`, so that free lists can be built, and
   memory can be cleared, by more than one thread concurrently.
   * Building the collector with `-DTHREAD_LOCAL_ALLOC` adds support for