We propose a new API and implementation for managing garbage collector (GC) roots for the OCaml foreign-function interface (FFI), which offers:
- better performance than existing APIs (local or global roots);
- efficient support for OCaml 5 with a more multicore-friendly design, with per-domain data structures
- a reasoning based on resource-management idioms, enabling an easier FFI for Rust
Our contributions include a C library called Boxroot which is already in use in several OCaml-Rust interfacing libraries.
We believe that this approach generalizes beyond OCaml, to other FFI situations where a language with GC interacts with a language without pervasive GC, especially those that emphasize move semantics for resource handling (typically C++ or Rust); or even to future language explorations in mixing memory management techniques.
Thu 15 SepDisplayed time zone: Belgrade, Bratislava, Budapest, Ljubljana, Prague change
11:00 - 12:30
|A New Match Compiler for Standard ML of New Jersey |
David MacQueen University of Chicago (Emeritus)File Attached
|Boxroot, fast movable GC roots for a better FFI|
|Unboxed types for OCaml|
|What About the Integer Numbers?|
Daan Leijen Microsoft ResearchLink to publication File Attached