ICFP 2024
Mon 2 - Sat 7 September 2024 Milan, Italy
Fri 6 Sep 2024 09:30 - 10:00 at Orange 2 - Session 1 Chair(s): David Allsopp

This talk reports on ongoing work to propose a sound design for asynchronous exceptions (or interrupts, in ML parlance) in the OCaml language, inspired by fault-tolerance concepts and Rust’s design for exceptions.

We first describe the problems of recovering from interrupts in Standard ML and OCaml, and how these language deficiencies have been worked around, notably in the implementation of proof assistants and other interactive tools. We then aim to explain more conceptually how safe interrupt handling is possible by evolving ML exceptions. We emphasize key notions: exception-safety concepts originating from C++ and Rust’s extension of Erlang’s “let it fail” approach to shared mutable state. Lastly we will discuss considerations specific to the OCaml language.

This work suggests, in the spirit of structured programming, that not only the ML notion of exception lacks structure, but it refines into another well-structured abstractions for error handling (besides checked exceptions), in a way suggested by its relevant usage by programmers.

Fri 6 Sep

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

09:30 - 10:30
Session 1ML at Orange 2
Chair(s): David Allsopp Tarides
09:30
30m
Talk
Designing interrupts for ML and OCaml
ML
Guillaume Munch-Maccagnoni INRIA, Leo White Jane Street, Stephen Dolan Jane Street
10:00
30m
Talk
Fram: Named Parameters Pushed to the Limit
ML
Patrycja Balik University of Wrocław, Piotr Polesiuk University of Wrocław
Media Attached