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.

          • Re: Go 1.... jmh530 via Digitalmars-d-announce
            • Re: ... Ola Fosheim Grøstad via Digitalmars-d-announce
              • ... jmh530 via Digitalmars-d-announce
              • ... Ola Fosheim Grostad via Digitalmars-d-announce
              • ... Chris via Digitalmars-d-announce
              • ... Ola Fosheim Grøstad via Digitalmars-d-announce
              • ... Johannes Pfau via Digitalmars-d-announce
  • Re: Go 1.5 Martin Nowak via Digitalmars-d-announce
    • Re: Go 1.5 Ola Fosheim Grøstad via Digitalmars-d-announce
      • Re: Go 1.5 Martin Nowak via Digitalmars-d-announce
        • Re: Go 1.5 Ola Fosheim Grøstad via Digitalmars-d-announce

Reply via email to