Tarides Engineers to Present at ICFP 2021by Christine Rose on Aug 26th, 2021
This year marks the 25th anniversary of the OCaml Language! It's an exciting time for OCaml programmers and enthusiasts. A fun and informative way to celebrate OCaml's birthday is to attend the 26th Annual International Conference on Functional Programming (ICFP), held online this year due to ongoing Covid restrictions. While this is disappointing news for so many, it's beneficial to those of you outside France because now you can hear professionals talk about cutting edge technology from the comfort of your own home.
Tarides engineers, as well as our colleagues at OCaml Labs Consultancy and Segfault Systems, have some exciting presentations at this year's ICFP! Listen to talks on running OCaml on multiple cores, generating fuzzing suites, benchmarking, and the experimental OCaml effects.
You can search the complete ICFP Timetable for other topics of interest and read below about our engineers' projects and presentations. Times are listed both in London (GMT +1) and Paris (GMT +2) for ease of planning. The following talks are scheduled for Friday, 27 August 2021.
Grab a cup of coffee for our first morning talk at 9am London / 10am Paris and learn about Adapting the OCaml Ecosystem for Multicore OCaml. With the soon-to-be released OCaml 5.0, there will be support for Shared-Memory Parallelism. There’s increasing interest in the community to port existing libraries to Multicore, so this talk will cover the arrival of Multicore and what that means to the OCaml ecosystem. Our engineers will highlight existing tools and provide methods for a smooth transition, so viewers can benefit from Multicore parallelism. They'll also share some insights from their experience porting existing libraries to Multicore OCaml.
Read more about this topic on todays' post at Segfault Systems, written by one of tomorrow's presenters, Sudha Parimala of Segfault Systems. Joining Sudha for the presentation are Enguerrand Decorne (Tarides), Sadiq Jaffer (Opsian and OCaml Labs Consultancy), Tom Kelly (OCaml Labs Consultancy), and KC Sivaramakrishnan of IIT Madras.
Next up is Leveraging Formal Specifications to Generate Fuzzing Suites at 11:10 London / 12:10 Paris, presented by Tarides's own Nicolas Osborne and Clément Pascutto. They'll discuss how developers typically first have to capture the semantics they want when checking a library and then write the code implementing these tests and find relevant test cases that expose possible misbehaviours. Through their work, they'll present a tool that automatically takes care of those last two steps by automatically generating fuzz testing suites from OCaml interfaces annotated with formal behavioural specifications. They'll also show some ongoing experiments on fuzzing capabilities and limitations applied to real-world libraries.
Next up is our talk on Continuous Benchmarking for
OCaml Projects at 12:30 London / 13:30 Paris. Regular CI systems are
optimised for workloads that do not require stable performance over time, which
makes them unsuitable for running performance benchmarks. Tarides engineers
Gargi Sharma, Rizo
Isrof, and Magnus
Skjegstad will discuss how
current-bench provides a predictable environment for performance benchmarks
and a UI for analysing results over time. Similar to a CI system it runs on pull
requests and branches allowing performance to be analysed and compared, and it
can currently be enabled on as an app on GitHub repositories with zero
configuration. Several public repositories already run
including Irmin and
Dune, and they plan to enable it on more
projects in the future. Read Gargi's recent blog post for more information on
In this presentation, they will give a technical overview of
current-bench, showing how results are collected and analysed, requirements for using it, and how they built the infrastructure for stable benchmarks. They'll also cover some future work that will allow more OCaml projects to run
Immediately after the Benchmarking talk, catch A Multiverse of Glorious Documentation
scheduled at 12:50 London / 13:50 Paris. Lucas
Pluvinage of Tarides and
Jonathan Ludlam of OCaml
Labs Consultancy will discuss the process of generating documentation for every
version of every package that can be built from the Opam repository and present
it as a single coherent website that's continuously updated as new packages are
released and old packages are updated. They will address the challenges of
caching, handling different compiler versions, and incompatible libraries. The
process has been implemented as an OCurrent pipeline named
is already available on Github. It has been used to produce the documentation of
more than 10,000 package versions, generating 2.5M HTML pages. That's 38GB of
After a relaxing lunch, come back for Experiences with Effects at 15:30 London / 16:30 Paris. Join OCaml Labs and Tarides engineers Thomas Leonard, Craig Ferguson, Patrick Ferris, Sadiq Jaffer, Tom Kelly, KC Sivaramakrishnan, and Anil Madhavapeddy as they talk about an exciting, experimental branch of Multicore OCaml that adds support for effect handlers. In this presentation, they'll discuss their experiences with effects, both from converting existing code and from writing new code. They discovered that converting the Angstrom parser from a callback style to effects greatly simplified the code while also improving performance and reducing allocations. Their experimental Eio library uses effects that allows writing concurrent code in direct style, without the need for monads (as found in Lwt or Async).
Enjoy a full day of OCaml innovation and get to know some of our talented engineers better by joining Tarides, OCaml Labs, and Segfault Systems at ICFP on Friday, 27 August 2021. See you there!