Jump to page: 1 2
Thread overview
[GSoC] Precise GC
Sep 02, 2016
Jeremy DeHaan
Sep 02, 2016
Dsby
Sep 02, 2016
rikki cattermole
Sep 02, 2016
thedeemon
Sep 02, 2016
Jeremy DeHaan
Sep 02, 2016
Rory McGuire
Sep 02, 2016
jmh530
Sep 03, 2016
thedeemon
Sep 06, 2016
jmh530
Sep 08, 2016
thedeemon
Sep 08, 2016
David Nadlinger
Sep 02, 2016
Ali Çehreli
Sep 02, 2016
Jeremy DeHaan
Sep 02, 2016
Guillaume Piolat
Sep 07, 2016
Dsby
Sep 08, 2016
Jeremy DeHaan
Oct 14, 2016
FrankLike
Oct 17, 2016
Dsby
Oct 23, 2016
Jeremy DeHaan
Dec 20, 2016
qznc
September 02, 2016
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

Even though GSoC is over and it isn't quite ready to be merged, I will still continue working on it in the hopes it'll get in. I have about a month until school starts up again, and I'm going to try to get it merged before that point.

Through the work I did and the research of a couple of GC topics, I discovered that I really enjoyed working on the garbage collector and I plan on continuing that. I was recently accepted to the University of Washington's computer science program and I am currently working on getting some independent study classes set up for future GC work. Once I have some better programming chops I'm hoping to help take D's GC to new heights.

Thanks to Martin Nowak and Adam Wilson for being my mentors and for keeping me going, to Rainer Schuetze for doing a significant portion of code review, and to the D community for giving me the opportunity to do this work.

    Jeremy
September 02, 2016
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.
>
> [...]

wait for merge
September 02, 2016
On 02/09/2016 3:25 PM, 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
>
> Even though GSoC is over and it isn't quite ready to be merged, I will
> still continue working on it in the hopes it'll get in. I have about a
> month until school starts up again, and I'm going to try to get it
> merged before that point.
>
> Through the work I did and the research of a couple of GC topics, I
> discovered that I really enjoyed working on the garbage collector and I
> plan on continuing that. I was recently accepted to the University of
> Washington's computer science program and I am currently working on
> getting some independent study classes set up for future GC work. Once I
> have some better programming chops I'm hoping to help take D's GC to new
> heights.
>
> Thanks to Martin Nowak and Adam Wilson for being my mentors and for
> keeping me going, to Rainer Schuetze for doing a significant portion of
> code review, and to the D community for giving me the opportunity to do
> this work.
>
>     Jeremy

Awesome, please do keep going with it! It would be great over the next few years to get some research papers out of this.
September 02, 2016
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? We'd be happy to see some overview of this version, what it does and how it succeeds (or fails).
September 01, 2016
On 09/01/2016 08:25 PM, Jeremy DeHaan wrote:

> I will still continue working on it in the hopes it'll get in.

Great news! :)

> I
> discovered that I really enjoyed working on the garbage collector

If that's not motivation enough...

> I was recently accepted to the University of Washington's
> computer science program

... now we have your address. We will hunt you if you don't complete the GC work. :p

Ali

September 02, 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.
September 02, 2016
On Friday, 2 September 2016 at 06:54:57 UTC, Ali Çehreli wrote:
> On 09/01/2016 08:25 PM, Jeremy DeHaan wrote:
>
> > I will still continue working on it in the hopes it'll get in.
>
> Great news! :)
>
> > I
> > discovered that I really enjoyed working on the garbage
> collector
>
> If that's not motivation enough...
>
> > I was recently accepted to the University of Washington's
> > computer science program
>
> ... now we have your address. We will hunt you if you don't complete the GC work. :p
>
> Ali

There's more than one UW campus! Take that!
September 02, 2016
On Fri, Sep 2, 2016 at 9:46 AM, Jeremy DeHaan via Digitalmars-d-announce < digitalmars-d-announce@puremagic.com> wrote:

> [snip]. Precisely scanning unions is tricky since they could mix pointer and non pointer types. [snip]
>

Can we rather just make a special tagged union that is scanned... rather avoid trying to make something that should be minimal more and more complex? The compiler already treats some parts of phobos as "special" as far as I know.


September 02, 2016
On Friday, 2 September 2016 at 03:25:33 UTC, Jeremy DeHaan wrote:
> Through the work I did and the research of a couple of GC topics, I discovered that I really enjoyed working on the garbage collector and I plan on continuing that. I was recently accepted to the University of Washington's computer science program and I am currently working on getting some independent study classes set up for future GC work. Once I have some better programming chops I'm hoping to help take D's GC to new heights.
>

Hey thanks a lot for working on this!
September 02, 2016
On Friday, 2 September 2016 at 08:14:33 UTC, Rory McGuire wrote:
>
> Can we rather just make a special tagged union that is scanned... rather avoid trying to make something that should be minimal more and more complex? The compiler already treats some parts of phobos as "special" as far as I know.

I had asked about unions in @safe code in other threads, but I don't recall anyone responding.

@safe functions cannot access unions with pointers or references overlapping with other types. In effect, there is already a special tagged union that can be scanned. I would think that the garbage collector already identifies these types of unions and doesn't just treat every union with the same conservative approach, but I have really no idea how it works and don't recall hearing back about my questions.

Anyway, with @safe unions, my thinking is that it would mean that the garbage collector can be made precise in @safe code in a way that it can't in @system code (assuming unions with pointers aren't snuck in through @trusted).
« First   ‹ Prev
1 2