Go 1.5
Ola Fosheim Grøstad via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Tue Sep 29 01:09:37 PDT 2015
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)
>> and use
>> move semantics for moving objects from one locality to the
>> other
>> (between fibers).
>
> Though it's challenging to efficiently manage all the GC
> structures for a small scope. Doing this per thread is a proven
> technology (see
> https://trello.com/c/K7HrSnwo/28-thread-cache-for-gc).
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.
More information about the Digitalmars-d-announce
mailing list