On 09/24/2015 03:49 AM, Ola Fosheim Grøstad wrote: > On Thursday, 24 September 2015 at 00:08:18 UTC, Martin Nowak wrote: >> The key to a low latency/high throughput GC is being able to >> incrementally collect the heap. There is a very interesting paper that >> uses the type system to perform incremental collections. >> >> http://forum.dlang.org/post/mcqr3s$cmf$1...@digitalmars.com > > 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. > 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).