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 |
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, 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): 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:
|
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 > > > |
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 > > > |
In reply to this post by Uko2
Hi Yuriy,
On Mon, May 8, 2017 at 2:16 AM, Yuriy Tymchuk <[hidden email]> wrote:
Clément's pointers are (of course) good. In addition, Spur supports ephemerons, see https://en.wikipedia.org/wiki/Ephemeron & http://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.
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. _,,,^..^,,,_ best, Eliot |
Free forum by Nabble | Edit this page |