ORC – Nim's new memory managment
Couple questions about how this works.<p>1. Is &quot;acyclic&quot; checked by the compiler in any way? or is the programmer basically saying &quot;I&#x27;m responsible for making sure this there are no cycles, and I accept that memory will leak if I&#x27;m wrong&quot;? I imagine the latter because the compiler check sounds infeasible. (Similarly Rust&#x27;s memory safety doesn&#x27;t guarantee there are no leaks.)<p>2. How does it work with multiple threads? I see a Q&#x2F;A here [1] which says<p>&gt; C: We do not do atomic reference counting, we have a shared heap where you move subgraphs completely to a different thread. A graph is always owned by a single thread, there is no need to make the reference counting atomic. We have mechanisms in development to ensure this at runtime or at compile-time, inspired by the Pony programming language.<p>and would be curious to read the one-page rather than one-paragraph version of this...<p>[1] <a href="https:&#x2F;&#x2F;forum.nim-lang.org&#x2F;t&#x2F;5734" rel="nofollow">https:&#x2F;&#x2F;forum.nim-lang.org&#x2F;t&#x2F;5734</a>