Potential GSoC project - GC improvements

Adam Wilson via Digitalmars-d digitalmars-d at puremagic.com
Sat Mar 12 00:50:06 PST 2016


Jeremy DeHaan wrote:
> Thank you all for the feedback.
>
> I think I might still need a little more feedback as to what the project
> should actually entail, but here's what it's looking like so far:
>
> Implement lock free allocation using std.experimental.allocator's
> freelists (SharedFreeList? It was the only thing in the documentation
> that specifically mentions lock free allocation)
>
> Implement a generational garbage collector
>
> Implement precise garbage collection (possibly piggybacking off of
> Rainer's work)
>
>
> Does anyone think that might be too much to take on or does it sound
> pretty good? I have other garbage collector things I'd like to explore,
> but I they should probably go in the "if time allows" category at this
> point.
>
>     Jeremy

If I may make a suggestion. The lock free work is unlikely to require 
the entirety of GSoC. And the precise GC is the next most important 
thing on your list and will have the biggest impact on GC performance.

Once the GC is fully precise we can implement a fully compacting GC, 
which improves the usefulness of generational collection. Additionally, 
precision allows a significant amount of work to be done in improving 
the performance of the GC in multi-threaded scenarios. It should be 
quite possible to avoid needing fork() or anything like it altogether. I 
know that the .NET GC doesn't need to use anything like it.

Also, I would strongly recommend getting this book and reading it cover 
to cover before starting:
http://www.amazon.com/gp/product/1420082795/ref=pd_lpo_sbs_dp_ss_1?pf_rd_p=1944687562&pf_rd_s=lpo-top-stripe-1&pf_rd_t=201&pf_rd_i=0471941484&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=0QD9X3E5QATSBCBT6BMM

I think Rainer's Precise GC only dealt with Heap objects. What needs 
work is Register and Stack scanning. Expanding on Rainer's existing 
Precise GC work is the right idea, but Register and Stack scanning is a 
very big project in it's own right.I suspect it will take up the 
remainder of your GSoC time. :)

-- 
// Adam Wilson
// quiet.dlang.dev


More information about the Digitalmars-d mailing list