Thread overview | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
May 02, 2016 GSoC 2016 - Precise GC | ||||
---|---|---|---|---|
| ||||
Hi everyone! I'm a little late to the party as far as my announcement goes, but I have been busy reading code and doing research for my project. I was selected for this year's GSoC to implement a Precise GC, but I'm also planning to remove the lock on allocations as outlined in my proposal: https://drive.google.com/file/d/0B-UTFTbYro4vV0ljMUlSTEc2eEU/view?usp=sharing My repository for the code can be found here: https://github.com/Jebbs/druntime I will be posting of my progress in this thread throughout the course of the summer, but right now I am mainly focusing on familiarizing myself with all of the GC code since there is quite a lot of it. You will probably see me pushing some updates to documentation between now and when GSoC officially starts, but I hope to have already started making progress before then. I'll do my best to not let you all down! |
May 03, 2016 Re: GSoC 2016 - Precise GC | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jeremy DeHaan | On Monday, 2 May 2016 at 15:29:15 UTC, Jeremy DeHaan wrote:
> Hi everyone!
>
> I'm a little late to the party as far as my announcement goes, but I have been busy reading code and doing research for my project.
>
> [...]
Great! That is what should have been done long time ago.
I'm pretty sure, if you implement just precise heap scan (and lock removal), it will be already huge win.
|
May 03, 2016 Re: GSoC 2016 - Precise GC | ||||
---|---|---|---|---|
| ||||
Posted in reply to Yura Sokolov | On Tuesday, 3 May 2016 at 06:23:51 UTC, Yura Sokolov wrote:
> On Monday, 2 May 2016 at 15:29:15 UTC, Jeremy DeHaan wrote:
>> Hi everyone!
>>
>> I'm a little late to the party as far as my announcement goes, but I have been busy reading code and doing research for my project.
>>
>> [...]
>
> Great! That is what should have been done long time ago.
>
> I'm pretty sure, if you implement just precise heap scan (and lock removal), it will be already huge win.
I agree, but a precise heap scan should be the easiest part of this project. Rainer Schuetze has already implemented this and presented it at a dconf a few years ago(2013?). My plan is to use that since I know it works, and that frees up my time to focus on pretty much everything else.
|
May 03, 2016 Re: GSoC 2016 - Precise GC | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jeremy DeHaan | On Tuesday, 3 May 2016 at 16:15:27 UTC, Jeremy DeHaan wrote:
> I agree, but a precise heap scan should be the easiest part of this project. Rainer Schuetze has already implemented this and presented it at a dconf a few years ago(2013?). My plan is to use that since I know it works, and that frees up my time to focus on pretty much everything else.
I don't remember all the details, but I'm pretty sure that Rainer, or maybe someone else, was talking about how a precise GC is not completely possible in D because D has unions.
|
May 03, 2016 Re: GSoC 2016 - Precise GC | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jack Stouffer | On Tuesday, 3 May 2016 at 16:44:32 UTC, Jack Stouffer wrote: > > I don't remember all the details, but I'm pretty sure that Rainer, or maybe someone else, was talking about how a precise GC is not completely possible in D because D has unions. Discussed in this thread (among others) http://forum.dlang.org/thread/bzcatcalqsxqvptxlppx@forum.dlang.org |
May 03, 2016 Re: GSoC 2016 - Precise GC | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jack Stouffer | On Tuesday, 3 May 2016 at 16:44:32 UTC, Jack Stouffer wrote:
> On Tuesday, 3 May 2016 at 16:15:27 UTC, Jeremy DeHaan wrote:
>> I agree, but a precise heap scan should be the easiest part of this project. Rainer Schuetze has already implemented this and presented it at a dconf a few years ago(2013?). My plan is to use that since I know it works, and that frees up my time to focus on pretty much everything else.
>
> I don't remember all the details, but I'm pretty sure that Rainer, or maybe someone else, was talking about how a precise GC is not completely possible in D because D has unions.
I am reading a paper on how one could use extra information about what was last assigned to a union in order to scan them precisely. I haven't read the whole thing yet, but it looks like it could be done.
Not sure if it is something I can get to in the course of my project though. Scanning only unions conservatively is still pretty good.
|
May 03, 2016 Re: GSoC 2016 - Precise GC | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jeremy DeHaan | On Tuesday, 3 May 2016 at 18:15:20 UTC, Jeremy DeHaan wrote:
>
> I am reading a paper on how one could use extra information about what was last assigned to a union in order to scan them precisely. I haven't read the whole thing yet, but it looks like it could be done.
>
> Not sure if it is something I can get to in the course of my project though. Scanning only unions conservatively is still pretty good.
Does it matter that @safe code does not allow unions of pointers and non-pointers?
|
May 04, 2016 Re: GSoC 2016 - Precise GC | ||||
---|---|---|---|---|
| ||||
Posted in reply to jmh530 | On Tuesday, 3 May 2016 at 19:05:22 UTC, jmh530 wrote:
> On Tuesday, 3 May 2016 at 18:15:20 UTC, Jeremy DeHaan wrote:
>>
>> I am reading a paper on how one could use extra information about what was last assigned to a union in order to scan them precisely. I haven't read the whole thing yet, but it looks like it could be done.
>>
>> Not sure if it is something I can get to in the course of my project though. Scanning only unions conservatively is still pretty good.
>
> Does it matter that @safe code does not allow unions of pointers and non-pointers?
I'm not sure, but one would thing that @safe code wouldn't need any extra information about the union. I wouldn't know how to differentiate between them though during runtime. Probably someone with more experience with the compiler would know more about that kind of thing.
|
May 04, 2016 Re: GSoC 2016 - Precise GC | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jeremy DeHaan | On Monday, 2 May 2016 at 15:29:15 UTC, Jeremy DeHaan wrote:
> Hi everyone!
>
> I'm a little late to the party as far as my announcement goes, but I have been busy reading code and doing research for my project.
>
> [...]
Great!
|
May 04, 2016 Re: GSoC 2016 - Precise GC | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jeremy DeHaan | On Wednesday, 4 May 2016 at 02:50:08 UTC, Jeremy DeHaan wrote: > > I'm not sure, but one would thing that @safe code wouldn't need any extra information about the union. I wouldn't know how to differentiate between them though during runtime. Probably someone with more experience with the compiler would know more about that kind of thing. You can identify safe functions with https://dlang.org/phobos/std_traits.html#isSafe or https://dlang.org/phobos/std_traits.html#functionAttributes |
Copyright © 1999-2021 by the D Language Foundation