summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--changelog.md3
-rw-r--r--doc/advopt.txt3
-rw-r--r--doc/mm.md17
3 files changed, 12 insertions, 11 deletions
diff --git a/changelog.md b/changelog.md
index 8b9676a3a..5ae8660f3 100644
--- a/changelog.md
+++ b/changelog.md
@@ -50,6 +50,9 @@
 - Static linking against OpenSSL versions below 1.1, previously done by
   setting `-d:openssl10`, is no longer supported.
 
+- ORC is now the default memory management strategy. Use
+  `--mm:refc` for a transition period.
+
 ## Standard library additions and changes
 
 [//]: # "Changes:"
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.