This program is tentative and subject to change.
Programmers can often improve the performance of their programs by reducing heap allocations: either by allocating on the stack or reusing existing memory in-place. However, without safety guarantees, these optimizations can easily lead to use-after-free errors and even type unsoundness. In this paper, we present a design based on modes which allows programmers to safely reduce allocations by using stack allocation and in-place updates of immutable structures. We focus on three mode axes: affinity, uniqueness and locality. Modes are fully backwards compatible with existing OCaml code and can be completely inferred. Our work makes manual memory management in OCaml safe and convenient and charts a path towards bringing the benefits of Rust to OCaml.
This program is tentative and subject to change.
Thu 5 SepDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
13:30 - 15:00 | Memory Models / Memory Management / Low-Level LanguagesICFP Papers and Events | ||
13:30 18mTalk | Oxidizing OCaml with Modal Memory Management ICFP Papers and Events Anton Lorenzen University of Edinburgh, Leo White Jane Street, Stephen Dolan Jane Street, Richard A. Eisenberg Jane Street, Sam Lindley University of Edinburgh DOI Pre-print | ||
13:48 18mTalk | A Two-Phase Infinite/Finite Low-Level Memory Model ICFP Papers and Events Calvin Beck University of Pennsylvania, Steve Zdancewic University of Pennsylvania, Irene Yoon INRIA Paris, Hanxi Chen University of Pennsylvania, Yannick Zakowski Inria | ||
14:06 18mTalk | Double-Ended Bit-Stealing for Algebraic Data Types ICFP Papers and Events Martin Elsman University of Copenhagen, Denmark Link to publication DOI | ||
14:24 18mTalk | Beyond Trees: Calculating Graph-Based Compilers ICFP Papers and Events Pre-print | ||
14:42 18mTalk | Sound Borrow-Checking for Rust via Symbolic Semantics ICFP Papers and Events |