[GSoC] Precise GC

Jeremy DeHaan via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Fri Sep 2 00:46:00 PDT 2016


On Friday, 2 September 2016 at 05:19:57 UTC, thedeemon wrote:
> On Friday, 2 September 2016 at 03:25:33 UTC, Jeremy DeHaan 
> wrote:
>> Hi everyone,
>>
>> I know I'm super late to the party for this, and sorry for 
>> that. While my work on the precise GC didn't go as planned, it 
>> is closer than it was to be getting merged.
>>
>> My open PR for the actual inclusion of the precise GC is here:
>> https://github.com/dlang/druntime/pull/1603
>
> So what's its current state, how is it different from the 
> version Rainer had years ago? Is stack scan precise? Are 
> closures scanned precisely? What about unions?

The version in the pull request is not different from the one 
Rainer presented at all. It's actually the same one, just updated 
with what has been changed in druntime recently and my attempts 
at making the marking phase faster. It isn't any faster, but I 
didn't realize this due to benchmarking differences on AMD and 
Intel platforms. I should correct this in the next couple of days 
and performance can be assessed again.

Scanning the stack would require some support from the compiler. 
Precisely scanning unions is tricky since they could mix pointer 
and non pointer types. I'm not sure about closures. If I've done 
anything with closures I'm not aware of it. I have yet to 
actually work with the compiler, but in the future I will have to 
I suppose.

> We'd be happy to see some overview of this version, what it 
> does and how it succeeds (or fails).

It is essentially in a similar state that it was when Rainer 
presented it at DConf2013. I spent a lot of time doing research 
on techniques to improve its performance and I did start working 
on a sort of proof of concept for some of these ideas, but 
implementing it in a cohesive way would have required a lot more 
than was possible in the GSoC timeframe and it just didn't 
happen. It's pretty late for me here, but I will definitely 
explain more about some of these things later. It's essentially 
stuff that I do on my own time.


More information about the Digitalmars-d-announce mailing list