summary refs log tree commit diff stats
path: root/doc
diff options
context:
space:
mode:
authorringabout <43030857+ringabout@users.noreply.github.com>2022-09-27 01:32:08 +0800
committerGitHub <noreply@github.com>2022-09-26 19:32:08 +0200
commitb213913dcb767a86a5669c1c24ad5c7b1d5a8de8 (patch)
tree6072693f32c258903d83c97c8776b0e149d1d8bb /doc
parent40dae8c73196fb4e8e151e65f678f38882605d48 (diff)
downloadNim-b213913dcb767a86a5669c1c24ad5c7b1d5a8de8.tar.gz
add a changelog and update the document for ORC (#20415)
* add a changelog and update the document for ORC

* hone

* back

* Apply suggestions from code review

Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>

* Update doc/mm.md

Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>

* Update doc/mm.md

Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
Diffstat (limited to 'doc')
-rw-r--r--doc/advopt.txt3
-rw-r--r--doc/mm.md17
2 files changed, 9 insertions, 11 deletions
diff --git a/doc/advopt.txt b/doc/advopt.txt
index 244fe035b..3f439fdab 100644
--- a/doc/advopt.txt
+++ b/doc/advopt.txt
@@ -127,8 +127,7 @@ Advanced options:
   --skipParentCfg:on|off    do not read the parent dirs' configuration files
   --skipProjCfg:on|off      do not read the project's configuration file
   --mm:orc|arc|refc|markAndSweep|boehm|go|none|regions
-                            select which memory management to use; default is 'refc'
-                            recommended is 'orc'
+                            select which memory management to use; default is 'orc'
   --exceptions:setjmp|cpp|goto|quirky
                             select the exception handling implementation
   --index:on|off            turn index file generation on|off
diff --git a/doc/mm.md b/doc/mm.md
index 2ba854add..9d1fc1955 100644
--- a/doc/mm.md
+++ b/doc/mm.md
@@ -28,10 +28,10 @@ To choose the memory management strategy use the `--mm:` switch.
 ARC/ORC
 -------
 
-`--mm:orc` is a memory management mode primarily based on reference counting. Cycles
-in the object graph are handled by a "cycle collector" which is based on "trial deletion".
-Since algorithms based on "tracing" are not used, the runtime behavior is oblivious to
-the involved heap sizes.
+ORC is the default memory management strategy. It is a memory
+management mode primarily based on reference counting. Reference cycles are
+handled by a cycle collection mechanism based on "trial deletion".
+Since algorithms based on "tracing" are not used, the runtime behavior is oblivious to the involved heap and stack sizes.
 
 The reference counting operations (= "RC ops") do not use atomic instructions and do not have to --
 instead entire subgraphs are *moved* between threads. The Nim compiler also aggressively
@@ -57,12 +57,11 @@ and leaks memory with `--mm:arc`, in other words, for `async` you need to use `-
 Other MM modes
 --------------
 
-.. note:: The default `refc` GC is incremental, thread-local and not "stop-the-world".
+.. note:: The `refc` GC is incremental, thread-local and not "stop-the-world".
 
---mm:refc    This is the default memory management strategy. It's a
-  deferred reference counting based garbage collector
-  with a simple Mark&Sweep backup GC in order to collect cycles. Heaps are thread-local.
-  [This document](refc.html) contains further information.
+--mm:refc    It's a deferred reference counting based garbage collector
+  with a simple Mark&Sweep backup GC in order to collect cycles.
+  Heaps are thread-local. [This document](refc.html) contains further information.
 --mm:markAndSweep  Simple Mark-And-Sweep based garbage collector.
   Heaps are thread-local.
 --mm:boehm    Boehm based garbage collector, it offers a shared heap.