
I have been studying the garbage collection algorithms used in GHC, and it appears to me that section two of [1] is misleading, since thunks permit controlled mutation of the heap, and so objects in older generations may point to younger objects. In fact, the RTS maintains "remembered sets" to keep track of these relations. A Haskell could in principle be implemented in the way described (and execute in surprising complexity classes), but this does not seem to match reality. [1] https://wiki.haskell.org/GHC/Memory_Management Should the wiki be modified? Regards, Kyle Miller

I would suggest posting this to ghc-devs.
7 лип. 2015 07:54 "Kyle Miller"
I have been studying the garbage collection algorithms used in GHC, and it appears to me that section two of [1] is misleading, since thunks permit controlled mutation of the heap, and so objects in older generations may point to younger objects. In fact, the RTS maintains "remembered sets" to keep track of these relations. A Haskell could in principle be implemented in the way described (and execute in surprising complexity classes), but this does not seem to match reality.
[1] https://wiki.haskell.org/GHC/Memory_Management
Should the wiki be modified?
Regards, Kyle Miller
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

Yep. The wiki should be modified — it is pretty clearly an old page in error. Good eye on spotting it. There is some extremely detailed material on the GHC developers wiki: https://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/GC I would hope that the material on the main Haskell Wiki could be at an “intermediate” level — a bit of high-level overview, with pointers to other good material. Cheers, Gershom On July 8, 2015 at 10:11:47 AM, Kostiantyn Rybnikov (k-bx@k-bx.com) wrote:
I would suggest posting this to ghc-devs. 7 лип. 2015 07:54 "Kyle Miller" пише:
I have been studying the garbage collection algorithms used in GHC, and it appears to me that section two of [1] is misleading, since thunks permit controlled mutation of the heap, and so objects in older generations may point to younger objects. In fact, the RTS maintains "remembered sets" to keep track of these relations. A Haskell could in principle be implemented in the way described (and execute in surprising complexity classes), but this does not seem to match reality.
[1] https://wiki.haskell.org/GHC/Memory_Management
Should the wiki be modified?
Regards, Kyle Miller
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

Hi Kyle,
In addition to the wiki information,
there are also the following documents.
GHC’s Garbage Collector
http://www.mm-net.org.uk/workshop190404/GHC's_Garbage_Collector.ppt
The GHC Runtime System
http://www.scs.stanford.edu/14sp-cs240h/slides/ghc-rts.pdf
Here is related image.
http://takenobu-hs.github.io/downloads/haskell_ghc_illustrated.pdf#page=63
Cheers,
Takenobu
2015-07-08 23:47 GMT+09:00 Gershom B
Yep. The wiki should be modified — it is pretty clearly an old page in error. Good eye on spotting it.
There is some extremely detailed material on the GHC developers wiki: https://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/GC
I would hope that the material on the main Haskell Wiki could be at an “intermediate” level — a bit of high-level overview, with pointers to other good material.
Cheers, Gershom
I would suggest posting this to ghc-devs. 7 лип. 2015 07:54 "Kyle Miller" пише:
I have been studying the garbage collection algorithms used in GHC, and it appears to me that section two of [1] is misleading, since thunks
On July 8, 2015 at 10:11:47 AM, Kostiantyn Rybnikov (k-bx@k-bx.com) wrote: permit
controlled mutation of the heap, and so objects in older generations may point to younger objects. In fact, the RTS maintains "remembered sets" to keep track of these relations. A Haskell could in principle be implemented in the way described (and execute in surprising complexity classes), but this does not seem to match reality.
[1] https://wiki.haskell.org/GHC/Memory_Management
Should the wiki be modified?
Regards, Kyle Miller
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
participants (4)
-
Gershom B
-
Kostiantyn Rybnikov
-
Kyle Miller
-
Takenobu Tani