Looking for resources explaining Spur GC

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Looking for resources explaining Spur GC

Uko2
 
Hi everyone,

I am assisting in teaching a compiler construction course in the University of Bern. On the last lecture students learned about the basic ideas of garbage collection which was exemplified on Pharo/Squeak. However I found the slides a bit outdated as they explained mark and sweep as well as basic tenuring. To my knowledge Spur is more complicated as it has the scavenger garbage collector, has multiple generations of objects, etc. Is there any presentation of a paper describing how GC works in Spur? Because some students want to learn more (as well as myself).

Also excuse me please if I wrote something stupid :) I’m not an expert in VMs, but I want to learn.

Cheers.
Uko
Reply | Threaded
Open this post in threaded view
|

Re: Looking for resources explaining Spur GC

Clément Béra
 
Hi Yuriy,

There is one main paper about Spur, but it focuses on forwarding objects / become:
A Partial Read Barrier for Efficient Support of Live Object-Oriented Programming

Spur's scavenger is an implementation of this paper:
Generation Scavenging, A Non-disruptive, High-Performance Storage Reclamation Algorithm
David Ungar

The tenuring policy is an implementation of this paper:
An adaptive tenuring policy for generation scavengers
David Ungar & Frank Jackson
+ some new features not described in papers

In addition,
Eliot wrote some blog post about Spur, but it focuses on object representation and forwarding objects, not on the GC.

Else there is a very good book about GC by Richard Jones and Antony Hosking (best book about GC according to many VM implementors):

Lastly, don't hesitate to ask questions on the GC on this mailing list or to read the class comment in VMMaker (SpurMemoryManager class comment for instance) :-)

On Mon, May 8, 2017 at 11:16 AM, Yuriy Tymchuk <[hidden email]> wrote:

Hi everyone,

I am assisting in teaching a compiler construction course in the University of Bern. On the last lecture students learned about the basic ideas of garbage collection which was exemplified on Pharo/Squeak. However I found the slides a bit outdated as they explained mark and sweep as well as basic tenuring. To my knowledge Spur is more complicated as it has the scavenger garbage collector, has multiple generations of objects, etc. Is there any presentation of a paper describing how GC works in Spur? Because some students want to learn more (as well as myself).

Also excuse me please if I wrote something stupid :) I’m not an expert in VMs, but I want to learn.

Cheers.
Uko

Reply | Threaded
Open this post in threaded view
|

Re: Looking for resources explaining Spur GC

philippeback
 
Excellent book indeed.

Do you have those papers you mention in PDF form somewhere? (in case
they are behind a paywall)

Phil



On Mon, May 8, 2017 at 11:52 AM, Clément Bera <[hidden email]> wrote:

>
> Hi Yuriy,
>
> There is one main paper about Spur, but it focuses on forwarding objects / become:
> A Partial Read Barrier for Efficient Support of Live Object-Oriented Programming
> https://hal.inria.fr/hal-01152610/file/partialReadBarrier.pdf
>
> Spur's scavenger is an implementation of this paper:
> Generation Scavenging, A Non-disruptive, High-Performance Storage Reclamation Algorithm
> David Ungar
>
> The tenuring policy is an implementation of this paper:
> An adaptive tenuring policy for generation scavengers
> David Ungar & Frank Jackson
> + some new features not described in papers
>
> In addition,
> I wrote a "Spur GC overview" here: https://clementbera.wordpress.com/2017/03/12/tuning-the-pharo-garbage-collector/
> Eliot wrote some blog post about Spur, but it focuses on object representation and forwarding objects, not on the GC.
>
> Else there is a very good book about GC by Richard Jones and Antony Hosking (best book about GC according to many VM implementors):
> https://www.amazon.com/Garbage-Collection-Handbook-Management-Algorithms/dp/1420082795/ref=sr_1_1?s=books&ie=UTF8&qid=1494236960&sr=1-1&keywords=garbage+collection+handbook
>
> Lastly, don't hesitate to ask questions on the GC on this mailing list or to read the class comment in VMMaker (SpurMemoryManager class comment for instance) :-)
>
> On Mon, May 8, 2017 at 11:16 AM, Yuriy Tymchuk <[hidden email]> wrote:
>>
>>
>> Hi everyone,
>>
>> I am assisting in teaching a compiler construction course in the University of Bern. On the last lecture students learned about the basic ideas of garbage collection which was exemplified on Pharo/Squeak. However I found the slides a bit outdated as they explained mark and sweep as well as basic tenuring. To my knowledge Spur is more complicated as it has the scavenger garbage collector, has multiple generations of objects, etc. Is there any presentation of a paper describing how GC works in Spur? Because some students want to learn more (as well as myself).
>>
>> Also excuse me please if I wrote something stupid :) I’m not an expert in VMs, but I want to learn.
>>
>> Cheers.
>> Uko
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Looking for resources explaining Spur GC

Ben Coman
In reply to this post by Clément Béra
 
On Mon, May 8, 2017 at 5:52 PM, Clément Bera <[hidden email]> wrote:

>
> Hi Yuriy,
>
> There is one main paper about Spur, but it focuses on forwarding objects / become:
> A Partial Read Barrier for Efficient Support of Live Object-Oriented Programming
> https://hal.inria.fr/hal-01152610/file/partialReadBarrier.pdf
>
> Spur's scavenger is an implementation of this paper:
> Generation Scavenging, A Non-disruptive, High-Performance Storage Reclamation Algorithm
> David Ungar
>
> The tenuring policy is an implementation of this paper:
> An adaptive tenuring policy for generation scavengers
> David Ungar & Frank Jackson
> + some new features not described in papers
>
> In addition,
> I wrote a "Spur GC overview" here: https://clementbera.wordpress.com/2017/03/12/tuning-the-pharo-garbage-collector/
> Eliot wrote some blog post about Spur, but it focuses on object representation and forwarding objects, not on the GC.
>
> Else there is a very good book about GC by Richard Jones and Antony Hosking (best book about GC according to many VM implementors):
> https://www.amazon.com/Garbage-Collection-Handbook-Management-Algorithms/dp/1420082795/ref=sr_1_1?s=books&ie=UTF8&qid=1494236960&sr=1-1&keywords=garbage+collection+handbook
>
> Lastly, don't hesitate to ask questions on the GC on this mailing list or to read the class comment in VMMaker

+100.
(note, thats purely selfish. The more questions others ask the
experts, the more I learn.  ;)

cheers -ben


>
> On Mon, May 8, 2017 at 11:16 AM, Yuriy Tymchuk <[hidden email]> wrote:
>>
>>
>> Hi everyone,
>>
>> I am assisting in teaching a compiler construction course in the University of Bern. On the last lecture students learned about the basic ideas of garbage collection which was exemplified on Pharo/Squeak. However I found the slides a bit outdated as they explained mark and sweep as well as basic tenuring. To my knowledge Spur is more complicated as it has the scavenger garbage collector, has multiple generations of objects, etc. Is there any presentation of a paper describing how GC works in Spur? Because some students want to learn more (as well as myself).
>>
>> Also excuse me please if I wrote something stupid :) I’m not an expert in VMs, but I want to learn.
>>
>> Cheers.
>> Uko
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Looking for resources explaining Spur GC

Eliot Miranda-2
In reply to this post by Uko2
 
Hi Yuriy,

On Mon, May 8, 2017 at 2:16 AM, Yuriy Tymchuk <[hidden email]> wrote:

Hi everyone,

I am assisting in teaching a compiler construction course in the University of Bern. On the last lecture students learned about the basic ideas of garbage collection which was exemplified on Pharo/Squeak. However I found the slides a bit outdated as they explained mark and sweep as well as basic tenuring. To my knowledge Spur is more complicated as it has the scavenger garbage collector, has multiple generations of objects, etc. Is there any presentation of a paper describing how GC works in Spur? Because some students want to learn more (as well as myself).

Clément's pointers are (of course) good.  In addition, Spur supports ephemerons, see https://en.wikipedia.org/wiki/Ephemeronhttp://dl.acm.org/citation.cfm?id=263733.


I gave a presentation on Spur that covers the architecture at ESUG 2014:

The only thing that's badly out of date in this presentation is the compactor which was recently completely rewritten.


Also excuse me please if I wrote something stupid :) I’m not an expert in VMs, but I want to learn.

Please don't be afraid to ask any questions, no matter whether you think it is stupid or not.  How else can we learn, and often a simple question is the most penetrating.


I'm very happy to review course materials, etc, to help assure correctness.

Cheers.
Uko

_,,,^..^,,,_
best, Eliot