Execution domains in GHC/Haskell (Lightning Talk)
summary
Proposes adding domains to GHC: per-domain local heaps with independent GC and schedulers plus explicit shared global heap regions to avoid duplicating hundreds of gigabytes across processes. Shows a concrete API sketch—fork-like spawn using static pointers, message passing over channels with messages as compact normal forms—and a simple implementation path borrowing OCaml/Erlang ideas. Calls out tricky cases: CAF handling and the immutability requirement on global-shared data and how occasional updates might be represented.
AI-written summary · about
chapters (6)
- 0:00Execution domains in GHC
- 1:46Scaling GHC runtime challenges
- 4:55Shared runtime bottleneck
- 7:26Proposal for execution domains
- 9:55Benefits and implementation path
- 10:39Q&A
related talks
38mLightning talks
01h 04mHaskell - A Peek Inside the Ivory Tower
01h 30mGHC's Runtime System
26mAn Exceptional Actor System (Functional Pearl)
34mFrom OCaml 4 to 5 and from Parmap to Effects: A legacy code transition story
36mLightning Talks
56mDeterministic Parallel Programming with Haskell
46mPainless software development with Haskell
