Garbage collectors are an important component in today's language runtimes which liberate developers from the need to track allocations of small objects.
Engineering an efficient garbage collector is hard, especially for a feature-rich language like Haskell, and there are plenty of tradeoffs involved along the way. Today's GHC runtime contains an advanced garbage collector implementation which has different collection strategies and supports shared-memory parallelism.
In this talk, Cheng explores the GHC garbage collector, introduce some basic ideas behind garbage collection, and also cover some interesting implementation details. The talk is presented with these questions in mind: how is memory allocated and reclaimed in compiled Haskell programs? How do the language features influence the garbage collector's design? And how can Haskell developers write more efficient programs which play well with the garbage collector? If these questions once showed up in your mind when working with Haskell, then this talk is for you!
YOU MAY ALSO LIKE:
The Secrets of the GHC Garbage Collector
Cheng is a Software Engineer who specializes in the implementation of functional programming languages, and he is also the project lead on Tweag’s Haskell-to-WebAssembly compiler project named Asterius. Before joining Tweag, Shao got his Bachelor's in Computer Science from Tsinghua University, and in his spare time can be found exploring Paris, listening to classical music, and watching anime