www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - How to contribute to GC?

reply "Kira Backes" <kira.backes nrwsoft.de> writes:
Dear D users,


I think the GC is the one are that is holding D the most back, so 
I’d like to help it. But I have no idea how. No, I’m not talking 
about the technical stuff, rather about the organizational stuff 
and the contribution workflow.

It seems like sociomantics wanted to port CDGC to D2 but I did 
not see any work following that, they also wanted to refactor the 
existing GC but I also don’t think much has been done there. Then 
there is also a precise GC. It exists, but is anything planned 
for this to be included?

So, I’d really like to help with the GC but I have no idea how.
- There is no overview of what people are doing on the GC or 
their GC forks
- I have basically no idea what of the current work will be 
included into Phobos, so I don’t what to base my contribution on
- I don’t know which ideas I could work on so that they 
eventually will be included
- Finally, I don’t know what the core D team is already planning 
or what their vision is, what they’re planning themselves, what 
they want to see in D, what they will accept as contribution


Maybe we need a project page or a group or something for the GC? 
Where we can collect all ideas, see who’s working on what, see 
what’s wanted and so on.



rgds, Kira Backes
Jan 09 2014
next sibling parent Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 1/9/14 11:26 PM, Kira Backes wrote:
 Dear D users,


 I think the GC is the one are that is holding D the most back, so I’d
 like to help it. But I have no idea how. No, I’m not talking about the
 technical stuff, rather about the organizational stuff and the
 contribution workflow.

Well you've contributed the inspirational part, per my last post :o). In truth I'd be planning it for a while, but since you just wrote this was a good time. Andrei
Jan 10 2014
prev sibling next sibling parent "Kira Backes" <kira.backes nrwsoft.de> writes:
On Friday, 10 January 2014 at 08:04:49 UTC, Andrei Alexandrescu 
wrote:
 Well you've contributed the inspirational part, per my last 
 post :o). In truth I'd be planning it for a while, but since 
 you just wrote this was a good time.

 Andrei

Great news! Then please tell me as soon as I can help with *anything* (be it test-driving your implementation, documentation, writing unit tests, fixing bugs, writing articles and maybe even implementing a part of it, and so on) I’ve done some testing with the current GC and the current stop-the-world latency is acceptable until about 50,000 objects, but I’ll probably need a lot more than that for the MMORPG server. Right now I’m using the GC for everything, which is the right approach I think to not do premature optimizations ;-) When the project is about to go live (scheduled end of 2014) I hope the GC is improved enough so it can just stay like it is (and I’d gladly publish benchmark numbers and write articles about the improvements). Only as a last resort would I move resources to manual memory management. So I really hope we can improve this until the end of 2014 and as I said I’ll help with anything I can. rgds, Kira Backes
Jan 10 2014
prev sibling next sibling parent "Dicebot" <public dicebot.lv> writes:
On Friday, 10 January 2014 at 07:26:37 UTC, Kira Backes wrote:
 It seems like sociomantics wanted to port CDGC to D2 but I did 
 not see any work following that, they also wanted to refactor 
 the existing GC but I also don’t think much has been done there.

AFAIK it is on hold because porting demands more time Leandro can currently spend on it. Ask him for details.
Jan 10 2014
prev sibling next sibling parent Jacob Carlborg <doob me.com> writes:
On 2014-01-10 08:26, Kira Backes wrote:
 Dear D users,


 I think the GC is the one are that is holding D the most back, so I’d
 like to help it. But I have no idea how. No, I’m not talking about the
 technical stuff, rather about the organizational stuff and the
 contribution workflow.

 It seems like sociomantics wanted to port CDGC to D2 but I did not see
 any work following that, they also wanted to refactor the existing GC
 but I also don’t think much has been done there. Then there is also a
 precise GC. It exists, but is anything planned for this to be included?

 So, I’d really like to help with the GC but I have no idea how.
 - There is no overview of what people are doing on the GC or their GC forks

As far as I know there are two efforts on improving the GC: * Leandro Lucarella (sociomantics as you mentioned above) - Working on a concurrent GC. http://dconf.org/2013/talks/lucarella.html * Rainer Schütze - Working on a concurrent GC. http://dconf.org/2013/talks/schuetze.html
 - I have basically no idea what of the current work will be included
 into Phobos, so I don’t what to base my contribution on
 - I don’t know which ideas I could work on so that they eventually will
 be included
 - Finally, I don’t know what the core D team is already planning or what
 their vision is, what they’re planning themselves, what they want to see
 in D, what they will accept as contribution

As far as I know nothing is decided. We all just know we want a better GC. I have not heard anything from the core D team. What's missing is someone to finish the work and create a pull request.
 Maybe we need a project page or a group or something for the GC? Where
 we can collect all ideas, see who’s working on what, see what’s wanted
 and so on.

That would probably be a good idea. Perhaps on the wiki http://wiki.dlang.org/ -- /Jacob Carlborg
Jan 10 2014
prev sibling next sibling parent "Szymon Gatner" <noemail gmail.com> writes:
On Friday, 10 January 2014 at 08:15:47 UTC, Kira Backes wrote:

 I’ve done some testing with the current GC and the current 
 stop-the-world latency is acceptable until about 50,000 objects,

Could you post your benchmark code so I can see results on my systems (Win7 64 and OS X). What platform did you test?
Jan 10 2014
prev sibling next sibling parent "Sean Kelly" <sean invisibleduck.org> writes:
On Friday, 10 January 2014 at 10:57:06 UTC, Szymon Gatner wrote:
 On Friday, 10 January 2014 at 08:15:47 UTC, Kira Backes wrote:

 I’ve done some testing with the current GC and the current 
 stop-the-world latency is acceptable until about 50,000 
 objects,

Could you post your benchmark code so I can see results on my systems (Win7 64 and OS X). What platform did you test?

Yep. Depending on where the delays are, it might be possible to tune things a bit until whatever new design is finished.
Jan 10 2014
prev sibling next sibling parent reply Rainer Schuetze <r.sagitario gmx.de> writes:
On 10.01.2014 08:26, Kira Backes wrote:
 Dear D users,


 I think the GC is the one are that is holding D the most back, so I’d
 like to help it. But I have no idea how. No, I’m not talking about the
 technical stuff, rather about the organizational stuff and the
 contribution workflow.

 It seems like sociomantics wanted to port CDGC to D2 but I did not see
 any work following that, they also wanted to refactor the existing GC
 but I also don’t think much has been done there. Then there is also a
 precise GC. It exists, but is anything planned for this to be included?

I have just rebased and recreated the precise GC fork of druntime the other day: https://github.com/rainers/druntime/commits/gcx_precise2 I hope this has commits that are better reviewable than the last version. I was planning to create a pull request just to make it more public and get the ball rolling. What's blocking the inclusion is that the compiler does not generate proper type information. This pull request is trying to fix it: https://github.com/D-Programming-Language/dmd/pull/2480 but it often breaks with other commits. Unfortunately it never received any feedback apart from some code-styling notes.
Jan 10 2014
parent Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 1/10/14 12:06 PM, Rainer Schuetze wrote:
 I have just rebased and recreated the precise GC fork of druntime the
 other day: https://github.com/rainers/druntime/commits/gcx_precise2
 I hope this has commits that are better reviewable than the last
 version. I was planning to create a pull request just to make it more
 public and get the ball rolling.

 What's blocking the inclusion is that the compiler does not generate
 proper type information. This pull request is trying to fix it:
 https://github.com/D-Programming-Language/dmd/pull/2480
 but it often breaks with other commits.

 Unfortunately it never received any feedback apart from some
 code-styling notes.

Thanks! If there's anything major the community could help with right now, it would be reviewing https://github.com/D-Programming-Language/dmd/pull/2480 and then https://github.com/rainers/druntime/commits/gcx_precise2. Andrei
Jan 10 2014
prev sibling next sibling parent "John Colvin" <john.loughran.colvin gmail.com> writes:
On Friday, 10 January 2014 at 20:22:45 UTC, Andrei Alexandrescu 
wrote:
 On 1/10/14 12:06 PM, Rainer Schuetze wrote:
 I have just rebased and recreated the precise GC fork of 
 druntime the
 other day: 
 https://github.com/rainers/druntime/commits/gcx_precise2
 I hope this has commits that are better reviewable than the 
 last
 version. I was planning to create a pull request just to make 
 it more
 public and get the ball rolling.

 What's blocking the inclusion is that the compiler does not 
 generate
 proper type information. This pull request is trying to fix it:
 https://github.com/D-Programming-Language/dmd/pull/2480
 but it often breaks with other commits.

 Unfortunately it never received any feedback apart from some
 code-styling notes.

Thanks! If there's anything major the community could help with right now, it would be reviewing https://github.com/D-Programming-Language/dmd/pull/2480 and then https://github.com/rainers/druntime/commits/gcx_precise2. Andrei

Is there perhaps the need for a curated* list of top priority pulls that need reviewing? *by yourself and walter, with perhaps a few other contributors who pull some weight.
Jan 10 2014
prev sibling next sibling parent "Zoadian" <github zoadian.de> writes:
for game development you might want to read about 'entity
component systems' and 'data oriented design'.

some links:

http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/

http://blog.lmorchard.com/2013/11/27/entity-component-system

http://www.randygaul.net/2013/05/20/component-based-engine-design/



On Friday, 10 January 2014 at 08:15:47 UTC, Kira Backes wrote:
 On Friday, 10 January 2014 at 08:04:49 UTC, Andrei Alexandrescu 
 wrote:
 Well you've contributed the inspirational part, per my last 
 post :o). In truth I'd be planning it for a while, but since 
 you just wrote this was a good time.

 Andrei

Great news! Then please tell me as soon as I can help with *anything* (be it test-driving your implementation, documentation, writing unit tests, fixing bugs, writing articles and maybe even implementing a part of it, and so on) I’ve done some testing with the current GC and the current stop-the-world latency is acceptable until about 50,000 objects, but I’ll probably need a lot more than that for the MMORPG server. Right now I’m using the GC for everything, which is the right approach I think to not do premature optimizations ;-) When the project is about to go live (scheduled end of 2014) I hope the GC is improved enough so it can just stay like it is (and I’d gladly publish benchmark numbers and write articles about the improvements). Only as a last resort would I move resources to manual memory management. So I really hope we can improve this until the end of 2014 and as I said I’ll help with anything I can. rgds, Kira Backes

Jan 10 2014
prev sibling parent "Szymon Gatner" <noemail gmail.com> writes:
On Friday, 10 January 2014 at 23:13:05 UTC, Zoadian wrote:
 for game development you might want to read about 'entity
 component systems' and 'data oriented design'.

 some links:

 http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/

 http://blog.lmorchard.com/2013/11/27/entity-component-system

 http://www.randygaul.net/2013/05/20/component-based-engine-design/

I think it is safe to assume that she is aware of this rather known approach given that she is doing mmorpg and performance testing gc already.
Jan 10 2014