Tarides Engineers to Present at ICFP 2021

by 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](https://icfp21.sigplan.org/program/program-icfp-2021/?past=Show upcoming events only&date=Fri 27 Aug 2021) 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' 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 current-bench, 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 benchmarking.

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 current-bench.

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 ocaml-docs-ci and 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 artifacts!

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!