Tarides Logo

Unlock your Team’s Potential with Expert Training in OCaml, Cybersecurity Fundamentals, Functional Programming, and More

Training your teams has proven benefits, enhancing the efficiency and quality of work, and equipping members with the skills they need to tackle new challenges. Specialist training empowers them to use new techniques, leverage advanced technologies, and solve more complex problems. At Tarides, we ar…

Miklos Tomka

Head Consulting Services

Introducing Dune: The Essential Build System for OCaml Developers

One of the first tools you'll encounter when adopting OCaml is Dune, OCaml's official build system. Understanding what Dune is and how it serves you is key to crafting everything from a small project to maintaining large-scale codebases. So let's dive in! Learn how Dune makes development easier and …

Christine Rose

Technical Writer

Summer of Internships: Projects From the OCaml Compiler Team

We have had the pleasure of hosting several interns in the compiler team this past year. Their projects have tackled varied and challenging tasks touching on different aspects of compiler development, ranging from modularising the observability tool Olly to creating eBPF-based kernel-side performanc…

Isabella Leandersson

Communications Officer

Eio From a User's Perspective: An Interview With Simon Grondin

Are you curious about Eio but not sure what to expect? Eio is an effects-based direct-style concurrency library for OCaml 5. I recently spoke with Simon Grondin from Asemio about his personal experience using the I/O library Eio. He was kind enough to share the good and the bad and give me insight i…

Isabella Leandersson

Communications Officer

Feature Parity Series: Compaction is Back!

Compaction is a feature that rearranges OCaml values in memory to free up space, which can then be returned to the operating system. In the OCaml 5.2 release, the technique returns to the OCaml Garbage Collector for the first time since its removal in the 5.0 multicore update. This is part one of ou…

Isabella Leandersson

Communications Officer

Easy Debugging for OCaml With LLDB

If you’re just getting started with OCaml, you may be wondering how to effectively debug your code when things go wrong. Fortunately, OCaml's ecosystem has evolved, offering modern tools that make debugging a more approachable task. Tarides engineer Tim McGilchrist recently wrote a blog post that …

Christine Rose

Technical Writer

Project-Wide Occurrences: A New Navigation Feature for OCaml 5.2 Users

With the release of merlin-lib 5.1-502 and associated ocaml-lsp-server, we brought a new, exciting feature to OCaml's editor tooling: project-wide occurrences. The traditional "occurrences" query in Merlin modes, named "Find All References" in LSP-based mode, was used to only return results in the a…

Ulysse Gérard

Principal Software Engineer

How TSan Makes OCaml Better: Data Races Caught and Fixed

Parallel programming opens up brand-new possibilities. Using multiple cores means that users can benefit from powerful OCaml features (like formal proofs and high security) while enjoying greater performance, enabling them to improve their services or projects. However, introducing such a significan…

Olivier Nicole

Senior Software Engineer

Fabrice Buoro

Senior Software Engineer

Isabella Leandersson

Communications Officer

Monoculture of Insecurity: How CrowdStrike's Outage Exposes the Risks of Unchecked Complexity in Cybersecurity

A seismic event in the IT world, everyone is talking about the CrowdStrike update that caused global chaos earlier this month. There are many great articles and blog posts dissecting the event and suggesting ways to avoid a repeat. Rather than join our voice to the chorus and explain how a small cha…

Miklos Tomka

Head Consulting Services

Isabella Leandersson

Communications Officer

OCaml Compiler Manual HTML Generation

In order to avoid long, confusing URLs on the OCaml Manual pages, we set out to create a solution that shortens these URLs, including section references, and contains the specific version. The result improves readability and user experience. This article outlines the motivation behind these changes …

Shakthi Kannan

Senior Software Engineer

Deep Dive: Optimising Multicore OCaml for Windows

We love hosting internships. It is rewarding to potentially facilitate someone’s first foray into the OCaml ecosystem, helping them establish a hopefully life-long foothold in the world of open-source programming. It is also a great opportunity to get new perspectives on existing issues. Fresh eye…

Isabella Leandersson

Communications Officer

Introducing Olly: Providing Observability Tools for OCaml 5

It might be tempting to think that we can write code that works perfectly the first time around, but in reality optimisation and troubleshooting forms a big part of programming. However, there are more and less productive (and frustrating!) ways of problem solving. Having the right tools to guide yo…

Isabella Leandersson

Communications Officer

Creating the SyntaxDocumentation Command - Part 2: OCaml LSP

In the first part of this series, Creating the SyntaxDocumentation Command - Part 1: Merlin, we explored how to create a new command in Merlin, particularly the SyntaxDocumentation command. In this continuation, we will be looking at the amazing OCaml LSP project and how we have integrated our Synta…

Effective ML Through Merlin's Destruct Command

The Merlin server and OCaml LSP server, two closely related OCaml language servers, enhance productivity with features like autocompletion and type inference. Their lesser known, yet highly useful destruct command simplifies the use of pattern matching by generating exhaustive match statements, as w…

Xavier Van de Woestyne

Senior Software Engineer

Launching the First-Class Windows Project

We want to make learning and using OCaml easier for more people. Realising this goal involves expanding OCaml support to where the users are and making their experience smooth and hassle-free. It is generally accepted that the current state of OCaml on Windows is not comparable to other popular plat…

Sudha Parimala

Senior Software Engineer

Isabella Leandersson

Communications Officer

The OCaml 5.2 Release: Features and Fixes!

There has been a new release of OCaml! The 5.2 release brings several new features, along with improvements, optimisations, and bug fixes. New features include compaction, ThreadSanitizer, and restored support for compiling to the POWER architeture on OCaml, plus other crucial changes that prepare t…

Isabella Leandersson

Communications Officer

How to Setup OCaml on Windows with WSL

The stable opam 2.2 and a fully Windows compatible ecosystem of OCaml libraries and tools are getting closer every month. That's extremely exciting! With opam 2.2, Windows users will be able to use OCaml directly and natively without extra set-up or workarounds. Everyone is excited about this future…

We Host Our First OCaml Retreat in India!

Hacking retreats are great ways for programmers to connect, explore new ideas, and learn from each other. One of the most popular OCaml retreats is the much-loved Mirage retreat, organised annually in Morocco. But for us OCaml enthusiasts located elsewhere, the journey can be challenging (not to men…

Sudha Parimala

Senior Software Engineer

Isabella Leandersson

Communications Officer

Under the Hood: Developing Multicore Property-Based Tests for OCaml 5

In 2022, Multicore OCaml became reality. Programming on multiple threads brings new possibilities, but also new complexities. In order to foster confidence in OCaml 5 and retain OCaml's reputation as a trustworthy and memory-safe platform, Tarides has developed multicoretests: Two property-based tes…

Jan Midtgaard

Principal Software Engineer

Creating the SyntaxDocumentation Command - Part 1: Merlin

OCaml development has never been more enchanting, thanks to Merlin – the wizard of the editor realm. The magic of Merlin is something that makes programming in OCaml a very nice experience. By Merlin, I don't mean the old gray-haired, staff-bearing magic guy. I'm talking about the editor service t…

Multicore Testing Tools: DSCheck Pt 2

Welcome to part two! If you haven't already, check out part one, where we introduce DSCheck and share one of its uses in a naive counter implementation. This post will give you a behind-the-scenes look at how DSCheck works its magic, including the theory behind it and how to write a test for our nai…

Carine Morel

Senior Software Engineer

Isabella Leandersson

Communications Officer

Updates to OCaml.org's Learn Section: Enhancing UI and UX

Over the past year, the OCaml.org team has been hard at work addressing user feedback to make the OCaml.org Learn section more accessible and organised in order to facilitate learning OCaml and enriching the overall OCaml experience. In 2023, I joined the OCaml.org team as a UX /UI Designer. One of …

Claire Vandenberghe

UX/UI Designer

Eio 1.0 Release: Introducing a new Effects-Based I/O Library for OCaml

The OCaml 5 update brought much-anticipated support for programming on multiple cores. It also introduced support for concurrency via effect handlers – one of the first mainstream languages to do so. This significant update has had profound performance and UX implications, propelling OCaml into ne…

Isabella Leandersson

Communications Officer

Thomas Leonard

Principal Software Engineer

My experience at IndiaFOSS 2023: Community, Workshop, and Talks

There are plenty of exciting computer programming events happening in India, including the 5 day OCaml retreat that Tarides is hosting in Auroville this week – look out for future posts on that! Another great (and bigger!) event is the annual free and open source software conference IndiaFOSS orga…

Sudha Parimala

Senior Software Engineer

My Experience With Tarides at ICFP 2023!

ICFP 2024 will be upon us sooner than you might think! The call for papers closes on the 28th of February, and I wish everyone submitting good luck. Hopefully I will see you around Milan this upcoming September (at the OCaml Workshop, of course!) and to stave off your ICFP cravings until then, enjoy…

Shakthi Kannan

Senior Software Engineer

Multicore Testing Tools: DSCheck Pt 1

Reaping the plentiful benefits of parallel programming requires the careful management of the intricacies that come with it. Tarides played a significant part in making OCaml Multicore a reality, and we have continued to work on supporting tools that make parallel programming in OCaml as seamless as…

Carine Morel

Senior Software Engineer

Isabella Leandersson

Communications Officer

MirageOS: Designing a More Resilient Networking Stack With µTCP

There is no room for complacency in software development! In the OCaml ecosystem, improvements are continuously introduced to optimise existing workflows, introduce new features, and boost performance. MirageOS is a toolchain for creating unikernels (very small images that embed both an application …

Virgile Robles

Principal Software Engineer

What are Data Races? And do They Threaten Your Business?

Imagine you have a brand-new coffee machine. One morning, you traipse excitedly down the stairs only to discover that, alas, your appliance has turned into a potato. The next day, it turns back into a coffee machine. And so it continues: on some days, it dispenses you perfect, frothy coffee; on othe…

Isabella Leandersson

Communications Officer

Meet odoc, OCaml's Documentation Generator

Effective documentation is a cornerstone of software development. It helps developers understand how to use a language, its libraries, and its tooling, which leads to more robust and maintainable code. When it comes to OCaml, odoc is the wizard behind the scenes, ensuring developers not only underst…

Christine Rose

Technical Writer

OCaml: Memory Safety and Beyond

Your choice of programming language matters. A recent press release from the US National Security Agency (NSA), in tandem with the US Cybersecurity and Infrastructure Security Agency (CISA) alongside international cybersecurity agencies, urges the adoption of memory-safe programming languages for en…

International Disability Day 2023: Why It Matters

When I was in my early 20s, I developed a chronic illness that (amongst other things) has affected my mobility. Becoming disabled is an eye-opening experience, as it makes you acutely aware of two things: First, there are many ways in which society genuinely tries to help people with disabilities, a…

Isabella Leandersson

Communications Officer

How to Install OCaml 5: A Video Tutorial

Have you had difficulty installing OCaml for your projects? We have created a video tutorial showing you how to use Opam to install OCaml on Linux and macOS. All you need to complete the tutorial is a computer running either Linux or macOS, and an internet connection. By the end of the tutorial you …

Isabella Leandersson

Communications Officer

OCaml Hacking Day in Chennai!

It is a truth universally acknowledged, that a programmer in possession of a free Saturday afternoon must be in want of a good old OCaml hacking session. To address this pressing need, we recently hosted another OCaml Hacking Day event – this time at our Tarides India office in Chennai. We had a t…

Isabella Leandersson

Communications Officer

WebAssembly Support for OCaml: Introducing Wasm_of_Ocaml

OCaml is constantly evolving. Developers collaborate to bring support for new features, improve workflows, and resolve pain points. To this end, the OCaml-Wasm GitHub organisation was recently established. Its goal is to bring WebAssembly support to OCaml. WebAssembly, more commonly known as Wasm, i…

Isabella Leandersson

Communications Officer