> I am also curious about the shared heap, the implication from your post is 
> that you are still sticking to the "one heap per thread" model and that we 
> will continue to restrict the sharing of memory between threads. Is that the 
> case?

No. The heap is now shared as it's done in C++, C#, Rust, etc etc. A shared 
heap allows us to _move_ subgraphs between threads without the deep copies but 
the subgraph must be "isolated" ensuring the freedom of data races and at the 
same time allowing us to use non-atomic reference counting operations. How to 
ensure this "isolation" at compile-time was pioneered by Pony and we can do it 
too via our `owned ref` syntax. However, we will likely do it at runtime 
because it's simpler and a variation of the "cycle collection" algorithm. The 
pieces fit together in a marvelous way. :-)

Reply via email to