Re:Provably space-efficient parallel functional programming
by brabel on Friday January 14, 2022 @07:16AM
(#29933553)
I don't know enough about how Pony was implemented, but I know that each `Actor` has its own GC going on independently of any other actors, which sounds very similar to the idea being proposed in this research?
Memory sharing in Pony uses a more advanced form of borrow checker which allows not just two "kinds" of shared memory (as with Rust's `mut` and not `mut`), but several: `val`, `ref`, `iso`, `trn`, `box`, `tag`[1]. I think that for any solution to this problem that actually allows any shared memory to exist between threads, something in those lines must be required.
Memory sharing in Pony uses a more advanced form of borrow checker which allows not just two "kinds" of shared memory (as with Rust's `mut` and not `mut`), but several: `val`, `ref`, `iso`, `trn`, `box`, `tag`[1]. I think that for any solution to this problem that actually allows any shared memory to exist between threads, something in those lines must be required.
[1] http://jtfmumm.com/blog/2016/03/06/safely-sharing-data-pony-...