In a first, OCaml 5.0 shipped with native support for parallelism and concurrency. This was a multi-year effort by the Multicore team and the OCaml development team that culminated in OCaml 5.0. There are two key components to this: parallelism via Domains and concurrency via fibers.
Let's focus on the first part for now. The most challenging aspect was designing a multicore-capable garbage collector that remains backwards compatible in terms of features, performance, and latency. This is described in the paper 'Retrofitting Parallelism onto OCaml,' which appeared in ICFP 2020. In this talk, we will explore the ideas presented in the paper through doodle illustrations and zines.