GSoC 2011

Fawzi Mohamed fawzi at gmx.ch
Thu Apr 7 08:49:57 PDT 2011


On 7-apr-11, at 09:05, Mihir Patil wrote:

> Hi,
> Thanks Andrei for the heads up. I read the discussion in the  
> archives as you said.
> I still did not find anyone talking about the garbage collection  
> part. I have a decent enough knowledge about the theoretical aspects  
> of it. And I am confident that I can implement it.
> I have read the garbage collection page of D on the website.
> If you can tell me if there is anything in particular required to be  
> done in the current code, I can start with that. I'll also work on  
> the proposal today.

Garbage collector is a challenging project (bugs are extremly ugly).
There are several things that can be improved, and also several ideas  
floating around in particular wrt. to separate garbage collectors.
I have a good knowledge of that part of the ode, and I would be  
willing to mentor such a project, I think also dsimcha had expressed  
interest, but I don't know what he had in mind/what he wanted to do.

I see the following tasks as very useful improvements that will  
improve the current GC much, and still be feasible (and kind of  
progressive)

1) remove the global lock from malloc
This entails having "local" (either to cpu/numa node or thread) pools,  
for at least some of the memory allocation

2) improve collection sequence, and guarantees for destructors (2  
phases collection)

3) improve the parallelization of the gc collection (this has some  
limits, but one can for sure use more than one thread)

3b) hierarchical (generational) collector, this is quite challenging,  
as we cannot have a moving collector, probably too much for such a  
project, unless you have already written GCs

3c) implement a concurrent GC always working in its own thread, one  
has to define partial "safe" points, and possibly waiting points, like  
3b I fear it might be too challenging for a GSoC.

4) use luca's trick of forking to reduce pauses on linux, this gives  
an almost concurrent GC taking advantage of the properties of fork, it  
also needs safe points and waiting points, but its realization is  
simpler.

5) separate GC for thread local (non shared) memory, this was  
discussed much, but one has to be careful to guarantee that no memory  
of that can be transferred by anything between threads,also when  
allocating one has to know which kind of memory should be allocated.  
Step number 1, will help building something like this, but it needs  
more compiler support, and it usefulness is more limited, so I would  
leave this as last.

you can contact me by email or on IRC to discuss the details

bye

Fawzi
> Thanks,
>
> On Thu, Apr 7, 2011 at 3:49 AM, Andrei Alexandrescu <SeeWebsiteForEmail at erdani.org 
> > wrote:
> On 4/6/11 3:21 PM, Mihir Patil wrote:
> Hi,
> I am Mihir. I am a Bachelors student of Computer Science. I am
> interested in applying for the lexing and parsing project in D. I am
> also interested in the garbage collection project. I am doing these
> tasks as my term project this semester and would love if I get this
> opportunity.
> There are no mentors listed on the ideas page. So whom should I
> contact or can anyone in the mailing list tell me some details about
> the task?
> Thank you.
>
> This list is a good point of contact because most mentors and  
> potential mentors are frequenting it.
>
> We already have a strong candidature for a lexing and parsing  
> project. Please look at discussions initiated by Luca Boasso in this  
> forum.
>
> That doesn't mean you can't define a complementary project.  
> Alternatively, feel free to select another potential project or come  
> up with your own.
>
>
> Best regards,
>
> Andrei
>
>
>
> -- 
> Mihir Patil
> 3rd year, BE (Computer Science),
> Joint Co-ordinator, Computer Science Association
> Birla Institute of Technology and Science,Pilani
> +91-9772974127
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20110407/45d74e6a/attachment-0001.html>


More information about the Digitalmars-d mailing list