Tarides Logo

Articles on ocaml

Discover our latest posts on #ocaml and explore related insights and stories.

Horses racing with jockeys in colorful attire.

Off to the Races: Using ThreadSanitizer in OCaml

OCaml Multicore opened up a new world of performance for developers, something that Nomadic Labs has tested with great results. Rather than relying on one core to do everything, the program can take advantage of multiple cores simultaneously for a significant performance boost. With new programming …

FB

Fabrice Buoro

Senior Software Engineer

Olivier Nicole

Olivier Nicole

Senior Software Engineer

Isabella Leandersson

Isabella Leandersson

Communications Officer

Toy green tractor on sand.

Porting OBuilder to FreeBSD

OBuilder is a tool for performing arbitrary, reproduceable builds of OCaml-related software within a sandboxed environment. It is used by the CI team at Tarides to provide OCaml-based Continuous Integration (CI) for projects like opam-repo-ci, ocaml-ci, and multicoretest-ci. Originally written for L…

Miod Vallat

Miod Vallat

Principal Software Engineer

Tim McGilchrist

Tim McGilchrist

Principal Software Engineer

Boat with eight rowers on a wavy sea.

Our Experience at Tarides: Projects From Our Internships in 2023

Internships at Tarides We regularly have the pleasure of hosting internships where we work with engineers from all over the world on a diverse range of projects. By collaborating with people who are relatively new to the OCaml ecosystem, we get to benefit from their perspective. Seeing things with f…

DK

Dipesh Kafle

Intern Software Engineer

SK

Shreyas Krishnakumar

Intern Software Engineer

Geometric brain with small metallic spheres.

Kcas: Building a Lock-Free STM for OCaml (2/2)

This is the follow-up post continuing the discussion of the development of Kcas. Part 1 discussed the development done on the library to improve performance and add a transaction mechanism that makes it easy to compose atomic operations without really adding more expressive power. In this part we'll…

Vesa Karvonen

Vesa Karvonen

Principal Software Engineer

Dark room, hanging lights, silhouetted people.

Kcas: Building a Lock-Free STM for OCaml (1/2)

In the past few months I've had the pleasure of working on the Kcas library. In this and a follow-up post, I will discuss the history and more recent development process of optimising Kcas and turning it into a proper Software Transactional Memory (STM) implementation for OCaml. While this is not me…

Vesa Karvonen

Vesa Karvonen

Principal Software Engineer

LEGO figure in blue outfit, red helmet, gray background.

OBuilder on macOS

The CI team at Tarides provides critical infrastucture to support the OCaml community. At the heart of that infrastructure is providing a cluster of machines for running jobs. This blog post details how we improved our support for macOS and moved closer to our goal of supporting all Tier1 OCaml plat…

ME

Mark Elvers

System Administrator

Satellite over ocean and desert landscape.

OCaml in Space - Welcome SpaceOS!

Our mission is to build sustainable and secure software infrastructure that will not only work for decades but also positively impact the world. This includes our work on essential open-source libraries and tooling in the OCaml space, but also extends to include cutting-edge innovation through Mirag…

Miklos Tomka

Miklos Tomka

Head Consulting Services

Blurred pink and blue light streaks on black background.

OCaml-CI Renovated

OCaml-CI started with the goal of making a better continuous build system for OCaml projects. When we began in 2019, the goals were clear: it should provide a zero-configuration experience for OCaml projects using opam and Dune, and it should use an incremental architecture to avoid expensive recomp…

NK

Navin Keswani

Principal Software Engineer

Tim McGilchrist

Tim McGilchrist

Principal Software Engineer

Man in red jacket near presentation slide.

Compiler Hacking in Cambridge is Back!

What’s the best way to spend a Friday evening? We think most people would agree that hacking on OCaml is pretty much at the top of that list (although full disclosure, our sample size for this data could be larger). On Friday the 24th of February, Tarides’s UK office hosted an evening of compile…

Isabella Leandersson

Isabella Leandersson

Communications Officer

Hands typing on a laptop keyboard, blurred cup.

Engineer Spotlight: Sudha Parimala

For our third and final Engineer Spotlight, we interviewed Sudha Parimala, a Tarides engineer who works primarily on the Multicore Applications team. She talks about what lead her to become an OCaml programmer and why she's excited about OCaml 5, as our blog series on Multicore OCaml continues. Chr…

Christine Rose

Christine Rose

Technical Writer

Sudha Parimala

Sudha Parimala

Senior Software Engineer

Plants with small pink and white flowers in a field.

Engineer Spotlight: Zach Shipko

Tarides engineer Zach Shipko answers a few questions about why he decided to learn OCaml and why he's particularly excited about the OCaml 5 release. In celebration of OCaml 5, we've interviewed several engineers about their personal experience with the language and what features they enjoy. It's a …

Christine Rose

Christine Rose

Technical Writer

Zach Shipko

Zach Shipko

Senior Software Engineer

Two camels walking in a sandy desert landscape.

OCaml 5 Multicore Testing Tools

The new version of OCaml 5 is here! It brings the ability to program multicore applications and to maximise our usage of all the CPU cores without a global lock getting in the way of performance. What's most exciting to me though is that we have a whole new way of writing... bugs! And with so much p…

AW

Arthur Wendling

Principal Software Engineer

Square metal framework with blue sky background.

Advanced Merlin Features: Destruct and Construct

Merlin is one of the most important tools for OCaml users, but a lot of its advanced feature often remain unknown. For OCaml newcomers who might not know, Merlin is the server software that provides intelligence to code editors when working on OCaml documents. It allows one to easily navigate the co…

Ulysse Gérard

Ulysse Gérard

Principal Software Engineer

Camel adorned with colorful decorations. Desert backdrop.

OCaml 5 With Multicore Support Is Here!

It's here! It's finally here! On Friday, 16 December 2022, the OCaml community announced the official release of Multicore OCaml! From the beginning, Tarides has been deeply involved in OCaml's evolution, so we're very proud to present OCaml 5! Our work with the myriad of academics, industrial devel…

Christine Rose

Christine Rose

Technical Writer

Camel close-up with desert background.

OCaml 5 Release Candidate Now Available!

We're in the home stretch for the full OCaml 5 release. Multicore is almost here! Yesterday its Release Candidate (RC) was announced on the OCaml Discuss, which is the final step before the major release, expected before Christmas. To learn more about the exciting features coming with OCaml 5, you c…

Christine Rose

Christine Rose

Technical Writer

Silhouettes of camels and riders on a blue background.

OCaml 5 Beta2 Release

Just about a month after the OCaml 5 Beta release, the OCaml 5 Beta2 version has been released, taking us one step closer to the full OCaml 5 with Multicore release later this year. The OCaml community's collaboration is coming to fruition! Although we're not quite ready for the RC1 (Release Candida…

Christine Rose

Christine Rose

Technical Writer

Advent calendar squares with numbers and decor.

Solve the 2022 Advent of Code Puzzles with OCaml

Too many programmers only know OCaml through a functional programming language overview course at university. They erroneously believe OCaml is used primarily in academia rather than in the real world. Not only is OCaml already used in several prominent businesses, it can also be used for fun projec…

Christine Rose

Christine Rose

Technical Writer

Auditorium with text about Open Source India.

OCaml 5 at Open Source India 2022

With OCaml 5 just around the corner, it's been a really exciting year to attend conferences all over the world. Just recently, I presented some highlights of the OCaml 5 update, building on KC Sivaramakrishnan's great keynote address at the 19th annual Open Source India 2022 conference. Since Taride…

Shakthi Kannan

Shakthi Kannan

Senior Software Engineer

Yellow pipes on modern building against blue sky.

Up-to-Date Online Documentation

Into the Fire The OCaml ecosystem relies on various resources and infrastructure such as ocaml.org, OCaml Docker images, opam-repo-ci, that are built and deployed using OCurrent. OCurrent is a library to express workflows and keep things up to date. As many of these projects are created using the sa…

Étienne Marais

Étienne Marais

Senior Software Engineer

Circular view, road with cars, surrounded by trees.

Porting Charrua-Unix and Rawlink to Eio

This article describes the porting of the DHCP daemon charrua-unix and its companion library rawlink to Eio for the upcoming OCaml 5 release. Before we get started, it makes sense to briefly describe what DHCP is and how we use it in production. What is DHCP? DHCP stands for Dynamic Host Configurati…

Christiano Haesbaert

Christiano Haesbaert

Principal Software Engineer

Blue arched tunnel, blurred train, empty platform.

OCaml's Platform Installer Alpha Release

Yesterday we announced the OCaml 5 beta release, and today we're excited to introduce the OCaml Platform Installer! The OCaml Platform is the recommended toolchain when working with OCaml. This new installer enables programmers to quickly set up the OCaml developer environment, so they don't need to…

Christine Rose

Christine Rose

Technical Writer

Camel silhouette, mountains, orange sky.

OCaml 5 Beta Release

Back in June, we announced the OCaml 5 alpha release, and today we're excited to announce the first beta release! Now is an excellent time to test it and report positive or negative feedback on your projects (i.e., did it work, did you see impressive performance speed up, did you have issues finding…

Christine Rose

Christine Rose

Technical Writer

Buildings with red roofs, castle on hill, cloudy sky.

ICFP 2022 Review

After two years of online conferences, it was fantastic to have ICFP 2022 in person. The conference organisers had done a fantastic job adjusting to online conferences, but nothing beats the hallway track for meeting new people and catching up with old friends. This year, Slovenia's capital hosted t…

Tim McGilchrist

Tim McGilchrist

Principal Software Engineer

Hands typing on a laptop keyboard.

Irmin in the Browser

Introduction Over the past six months, I have been working on using Irmin in the browser, including irmin-server and the GraphQL interface. This has been fun and a great learning journey for me. Before this internship, irmin-server was primarily a Unix-based application. My project was to port irmin…

Odinaka Joy

Odinaka Joy

Intern Software Engineer

Hand holding black smartwatch, bokeh lights behind.

Faster Incremental Builds with Dune 3

In February 2022, we released Dune 3.0. This updated version is the result of considerable development work over the previous six months. Dune 3.0 contains many new features, one of which is “watch mode,” an exciting new feature explained below. As a build system, Dune’s main goal is to build …

Etienne Millon

Etienne Millon

Principal Software Engineer

Face and hands with string lights in focus.

The Magic of Merlin

Tarides provides support and development services for OCaml tools, packages, and libraries for our commercial partners and for the benefit of the entire OCaml community. We focus on groundbreaking innovation, feature development, and crucial maintenance of OCaml-based projects. One of these projects…

Christine Rose

Christine Rose

Technical Writer

Silhouetted people, large display, bright sunlight.

Functional Conf 2022

This year, Tarides attended the 2022 Functional Conf in India. Tarides’s engineers Sudha Parimala and Shakthi Kannan gave presentations on the OCaml platform and Sandmark, a continuous benchmarking tool for Multicore OCaml. The Functional Conf is a three-day conference on everything functional pro…

Isabella Leandersson

Isabella Leandersson

Communications Officer

Shadow of camels and riders on sand.

OCaml 5 Alpha Release

OCaml 5 is live! This major release introduces domains and effects, delivering unprecedented speed and efficiency to OCaml. Testing shows that OCaml 5 is able to outperform Go and closely match Rust in terms of performance. Keep reading for more details! Tarides is thrilled that the alpha release of…

Isabella Leandersson

Isabella Leandersson

Communications Officer

A camel with colorful fabric on its back in a desert.

OCaml.org Reboot: User-Centric Design & Content

Tarides is pleased to announce the launch of the updated community site, ocaml.org. Over the past year and a half, we have supported and collaborated with members of the OCaml community on the creation of an updated community website. We are proud to present new features and improvements that will b…

Thibaut Mattio

Thibaut Mattio

Principal Software Engineer

Camel sitting on sand, adorned with colorful textiles.

Benchmarking OCaml projects with current-bench

Regular CI systems are optimised for workloads that do not require stable performance over time. This makes them unsuitable for running performance benchmarks. current-bench provides a predictable environment for performance benchmarks and a UI for analysing results over time. Similar to a CI system…

Gargi Sharma

Gargi Sharma

Software Engineer

Silhouette with light drawing of a camel on beach.

Recent and upcoming changes to Merlin

Merlin is a language server for the OCaml programming language; that is, a daemon that connects to your favourite text editor and provides the usual services of an IDE: instant feedback on warnings and errors, autocompletion, "type of the code under the cursor", "go to definition", etc. As we (Fréd…

Thomas Refis

Thomas Refis

Principal Software Engineer

Green code symbols on black background.

Building portable user interfaces with Nottui and Lwd

At Tarides, we build many tools and writing UI is usually a tedious task. In this post we will see how to write functional UIs in OCaml using the Nottui & Lwd libraries. These libraries were developed for Citty, a frontend to the Continuous Integration service of OCaml Labs. In thi…

Frédéric Bour

Frédéric Bour

Principal Software Engineer