On Sunday, 27 September 2015 at 16:54:52 UTC, Martin Nowak wrote:
On 09/24/2015 03:49 AM, Ola Fosheim Grøstad wrote:
I haven't read the paper, but how does this solve collecting
things like strings, or other "leaf types" when you use
separate compilation units?
We'd use runtime typeinfo.
But doesn't that imply a full scan when you are scanning for
common types that live on leaf nodes in the graph?
The easy thing to do is to use GC locally (like for a fiber)
move semantics for moving objects from one locality to the
Though it's challenging to efficiently manage all the GC
structures for a small scope. Doing this per thread is a proven
That's a good start, but hardware threads range from 1-32 threads
on current CPUs, so it is likely to affect modelling more than
doing it on an actor/fiber level. If you could group N actors on
a single GC heap you could run a simulation across many threads
and then collect inbetween.
Btw, C++ appears to get the semi-stackless co-routines (no state
on stack when yielding), which also appears to be the model used
in Pony-lang. D really should consider a move in that direction
combined with it's GC strategy.