The Biggest Functional Programming Conference of the Year: What are we Bringing to ICFP?

by Isabella Leandersson on Aug 30th, 2024

Feeling fashionable? Milan is calling! ICFP 2024 will be held in the Italian fashion capital from 2-7 September, and there is something there for everyone to enjoy. The ACM SIGPLAN International Conference on Functional Programming is a yearly highlight with various keynotes, tutorials, and tracks to discover.

Can't wait for September 2nd? Check out the talks we're bringing to the conference this year and get a taste of what's to come!

Tarides Talks

We are excited about all the talks at the OCaml Workshop this year, and it's great to see such a variety of topics being presented. You can browse all the accepted papers on the OCaml track of the ICFP website. This year, Tarides team members will give five talks at the OCaml workshop and one at the ML workshop, so let's dive into the topics!

Wasm_of_ocaml at the ML Workshop by Jérôme Vouillon

Jérôme Vouillon will be presenting on the fork of the well-loved Js_of_ocaml compiler, Wasm_of_ocaml, which translates OCaml bytecode to WebAssembly (Wasm) rather than to JavaScript. Wasm is a low-level virtual machine that is both platform- and language-independent and is attractive to developers as a portable compilation target deployable on a wide variety of platforms. Wasm_of_ocaml is already fairly mature, having been successfully used on large programs.

Curious about what this means for OCaml users? Jérôme's talk will give you an overview of the compiler's features, including that it's highly compatible with Js_of_ocaml (one can compile existing programs with minimal changes) and offers a performance boost over the same (2x or more!). In addition, the talk will give you some background to Wasm_of_ocaml's design, the implementation of its runtime environment, how it interacts with JavaScript APIs, how we can take advantage of JavaScript to implement functionalities that are currently unavailable in Wasm, and share some benchmarks to give you an idea of how the compiler performs. Check out Jérôme's talk in the ML track for all this and more!

First-Class Windows: Building a Roadmap for OCaml on Windows by Sudha Parimala, Benjamin Canou, Pierre Boutillier, and David Allsopp

The goal of the First-Class Windows team (which we discuss more in our blog post introducing the project is to bring support for the Windows platform up-to-par with Tier-1 platforms like Linux and macOS. Reaching this milestone will require planning, collaboration, and iterative change. Still, we expect the process will significantly enhance the OCaml experience for many users. Check out the talk at the OCaml Workshop track at ICFP to learn all about the project's background, the current state of OCaml on Windows, the launch of the Windows Working Group, what information they are gathering, and where the project is heading.

Most importantly, the talk will unveil the new roadmap, which outlines the plan for addressing the pain points and improving OCaml on Windows. The roadmap is intended as a living, collaborative document. Join the talk to be part of the discussion and improve OCaml on Windows!

Project-Wide Occurrences for OCaml: A Progress Report by Ulysse Gérard

Our next talk will be great news for anyone who writes programs for OCaml! Good editor tooling is indispensable when writing programs, and different language servers provide a variety of features.

Before the OCaml 5.2 update, the main language servers were limited to providing occurrences inside the active buffer. After the update with the latest Dune, Merlin, and ocaml-lsp servers, users can take advantage of a new feature enabling project-wide usages search. It allows users to list all the occurrences of a given value, type, or module, quickly navigating between each instance.

The team prioritised three key areas when developing the feature: correctness, exhaustivity, and performance. Correctness refers to the tool's ability to list the occurrences of a value without including false positives; exhaustivity refers to the fact that it needs to list all occurrences and perform the way it yields these results in a reasonable amount of time.

Come to the talk for a demonstration of the powerful new search features available in OCaml! Learn about the project's design and implementation, the challenges they encountered (including some noteworthy patches to the compiler, Dune, Merlin, and ocaml-lsp!), and improvements planned for the future.

Picos – Interoperable Effects-Based Concurrency by Vesa Karvonen

Picos is an ongoing project created to allow users to mix and match effects-based concurrent programming libraries and async I/Os. OCaml 5 introduced support for parallelism and effects, which enables the implementation of direct-style cooperative concurrency libraries like Eio. In fact, many such libraries have been created, including Moonpool, Domainslib, Miou, and more!

The current difficulty is that all of these libraries are incompatible, meaning that a program that uses one cannot directly use another. This also means that, theoretically, libraries would need to provide an ever-increasing number of backends to ensure their users could combine them with the effects-based scheduler of their choice. This constant game of catch-up isn't desirable for developers or users of these libraries, and Picos aims to solve this problem.

Picos is an interface that enables interoperability between different libraries, created to provide users with greater flexibility and choice. Vesa's talk will introduce the nature of the problem, technical details of how Picos is implemented, details about its performance, and a vision for the future of schedulers in OCaml with Picos.

Opam 2.2 and Beyond by Raja Boujbel, Kate Deplaix, and David Allsopp

The hardworking team behind opam 2.2 are excited to present the update and share the new features! The update's main feature is native Windows support, something many community members have been looking forward to. With the project commencing in 2014, it has taken a significant amount of work and a long time to reach this important milestone – a process you can learn all about in their upcoming talk!

The talk will give listeners an opportunity to understand all the different elements that came together to bring native Windows support to OCaml, along with some of the other new features added in opam 2.2. This includes often overlooked aspects of releases like bug fixes and functional testing for stability.

Additionally, the talk presents insights into the maintenance of opam and moving towards a new release cycle, hinting at what the future will bring. If you're at all curious about opam and how maintainers bring new features to users, this is the talk for you!

Saturn: A Library of Verified Concurrent Data Structures for OCaml 5 by Clément Allain, Vesa Karvonen, Carine Morel

This talk presents a useful new OCaml 5 library that offers a collection of ready-made efficient concurrent data structures that are well-tested, benchmarked, and, in part, formally verified.

Parallel programs are complex, and sharing data between multiple threads presents a well-known difficulty. Using locks is a known way of managing this complexity, but it is not always the best option, potentially introducing unsatisfactory performance and liveness issues. In such cases, lock-free implementations may be preferable, but their complexity can make them hard to design. Saturn saves the OCaml 5 developer the trouble of designing their own lock-based or lock-free data structures by providing them with a selection of standard ready-to-use structures.

Join the talk to hear all about the library's design and details about the benchmarks, tests, and formal verification the team has done. You can look forward to a technical deep dive full of details about what creating parallel programs in OCaml really involves!

Until Next Time!

If you're attending ICFP this year, come and find us! We would love to chat with you about everything OCaml and functional programming. To stay up-to-date, you should follow us on LinkedIn and X. We look forward to hearing from you!

Tarides champions open-source development. We create and maintain key features of the OCaml language in collaboration with the OCaml community. To learn more about how you can support our open-source work, discover our page on GitHub.

We are always happy to discuss commercial opportunities around OCaml. We provide core services, including training, tailor-made tools, and secure solutions. Contact us today to learn more about how Tarides can help your teams realise their vision.