The saga of runtime 5

Speaker

Yaron Minsky
Jane Street Capital

Host

Adam Chlipala
CSAIL

In December 2022, after nearly a decade of development, OCaml 5.0.0 was released with OCaml’s first multi-core capable runtime. This was an exciting milestone, finally making it possible to write shared-memory parallel programs in OCaml. The new runtime was designed to be easy to adopt: it didn’t disturb OCaml’s FFI, and performance was meant to be only a couple of percentage points slower in single-core mode.

Despite those promising beginnings, switching to runtime-5 was harder than we expected. Indeed, we’ve only managed to switch to it this year, after months and months of research and engineering effort to make it work for our use-cases.

This talk will give an overview of the problems we ran into, and why switching to runtime-5 was so much harder than we expected. We’ll also discuss what we learned from the process, both about how to stage a complex change like this, as well as some new things we learned about how to design a GC, and the improvements we landed in OCaml as part of that work.

This talk intentionally includes no recording or virtual-participation option.