ICFP 2024
Mon 2 - Sat 7 September 2024 Milan, Italy

This program is tentative and subject to change.

Sat 7 Sep 2024 09:45 - 10:07 at Green 3 - OCaml compiler features and optimizations

We strongly typed functional programmers pride ourselves on writing robust code, making error conditions explicit through expressive types such as option and result. Yet, of course, we also want our code to run fast. These desires – explicit, statically checked error conditions – and performance are sometimes in contention: every function that wants to return a result of type answer option must use the Some constructor to build successful results. This causes runtime allocation, which eventually triggers latency-causing garbage collection.

This talk describes the design and implementation challenges of taking advantage of an all-0, or null, value to denote error conditions, all without losing the strongly typed nature of option. Our new optional type is named or_null, with constructors This and Null. The key step is to distinguish with-null types from no-null types, as explained in this extended abstract. We have a prototype implementation in a branch of the OCaml compiler.

Paper (ocaml2024-paper16.pdf)402KiB

Software Engineer at Jane Street. I believe that clever application of theory can eliminate a great deal of programmer errors – specifically, I think fancy types and functional programming are the future. I completed my PhD in 2016 at University of Pennsylvania working under Stephanie Weirich; my dissertation topic was the integration of dependent types into the Haskell programming language. I am a core contributor to the Glasgow Haskell Compiler (GHC) and Chair of the Board of Directors at the Haskell Foundation. My current work at Jane Street centers around further development of the OCaml language and compiler.

This program is tentative and subject to change.

Sat 7 Sep

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

09:00 - 10:30
OCaml compiler features and optimizationsOCaml at Green 3

The session will be live-streamed, and a Discord server will be available for remote attendees. Neither requires registration.

09:00
22m
Talk
On the design and implementation of Modular Explicits
OCaml
Samuel Vivien INRIA & École Normale Supérieure | Université PSL, Didier Rémy Inria
Pre-print File Attached
09:22
22m
Talk
Flambda2 Validator
OCaml
Irene Yoon INRIA Paris, Chris Casinghino Jane Street
Pre-print File Attached
09:45
22m
Talk
A Non-allocating Optionin-person
OCaml
Pre-print File Attached
10:07
22m
Talk
Mixed Blocks: Storing More Fields Flatin-person
OCaml
Nicholas Roberts Jane Street
Pre-print File Attached