4 ms·
Thanks for the recommendation, with some brief poking around it does seem promising! It looks like the algorithm is this? https://github.com/fitzgen/bacon-rajan
by mattparas 3y ago
Thanks for the recommendation, with some brief poking around it does seem promising! It looks like the algorithm is this? https://github.com/fitzgen/bacon-rajan-cc https://github.com/fitzgen/bacon-rajan-cc
The link to the paper seems dead unfortunately from this blog post https://nim-lang.org/blog/2020/12/08/introducing-orc.html https://nim-lang.org/blog/2020/12/08/introducing-orc.html
I could see how it works as a drop in replacement for Rc
- zozbot234 3y agoThe bacon-rajan-cc link says it's stop-the-world. Samsara seems to be fully concurrent.
- mst 3y agoThe bacon-rajan-cc link has only -implemented- a stop-the-world version, but notes right at the top of the README that it -can- be concurrent, and the stop-the-world-only-ness is only 'Currently.' https://trout.me.uk/gc/ https://trout.me.uk/gc/ has two Recycler papers if you want more details.
- zozbot234 3y agoSamsara is implementing the same algorithm and seems to be further along. Though there's also 'shredder' https://github.com/Others/shredder https://github.com/Others/shredder with a different overall approach.
- mst 3y agoAh, I see what you meant now. Thanks for mentioning Samsara, I shall try and remember it exists later today when I'm more caffeinated.
- mst 3y agohttps://trout.me.uk/gc/ https://trout.me.uk/gc/ - see recycler-overview.pdf and recycler-algorithm.pdf As with /lisp/ I tend to grab my own copies of papers I think I'll want to refer to later in case the original URL vanishes in a puff of bitrot :)
- j-james 3y agoHeh, neat to see you've got the Perceus paper there too. That is in fact the other part (the "ARC") of Nim's memory management for those unaware - with the only differences being Nim frees memory at the end of scope, rather than last use, and and Perceus maybe might be atomic (do not fully remember. ARC isn't atomic.)