Ran into this old post visualizing garbage collector algorithms and thought to share here. It would be nice to see visualizations like these for Nim!
https://spin.atomicobject.com/2014/09/03/visualizing-garbage-collection-algorithms/
The visualizations for --gc:markAndSweep and --gc:arc wouldn't show any difference to the existing respective visualizations -- for ARC the massive refcounting elimination optimizations that we perform are invisible. For ORC it would be interesting to do but it would likely resemble ARC without noticable differences.
Btw for Rust/C/C++ -- it would look like refcounting too.
Nice to know, I think I can kind of wrap my head around what you are saying.
If I understand correctly what you are saying is that for those algorithms (and those of other languages), the moment stuff gets removed from memory does not change (with respect to when other stuff gets removed from memory). The advantage of, say arc wrt to mark and sweep, is the fact that the decision of when to remove stuff in the case of arc is a compile time decision while in the case of mark and sweep it is runtime. And I guess that instead in the case of (still) default refc gc (and also in the case of orc) there are some specific moments where the GC does its job and stuff gets removed.