Tarides Logo

Articles on devtools

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

Camel close-up with reins in sandy environment.

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

Christine Rose

Technical Writer

Laptop with code, orange mug, lamp, and shelf.

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

Shakthi Kannan

Senior Software Engineer

Shattered glass pieces on a black background.

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

Xavier Van de Woestyne

Senior Software Engineer

Abstract blue and white light streaks on black background.

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…

Pizie Dust

Pizie Dust

Software Engineer

Shelves with stacked blue, green, yellow folders.

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

Christine Rose

Technical Writer

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

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

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

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

A ship with sails near ice; a camel on ice.

Hillingar: MirageOS Unikernels on NixOS

NixOS allows reproducible deployments of systems by managing configuration declaratively. MirageOS is a unikernel creation framework that creates targeted operating systems for high-level applications that can run on a hypervisor. By building MirageOS unikernels with Nix, we can enable reproducible …

RG

Ryan Gibb

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

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

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

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

Soft, white feathers with blurred background.

Fuzzing OCamlFormat with AFL and Crowbar

AFL (and fuzzing in general) is often used to find bugs in low-level code like parsers, but it also works very well to find bugs in high level code, provided the right ingredients. We applied this technique to feed random programs to OCamlFormat and found many formatting bugs. OCamlFormat is a tool …

Etienne Millon

Etienne Millon

Principal Software Engineer

Laptop keyboard with colorful lighting.

Release of OCamlFormat 0.10

We are pleased to announce the release of OCamlFormat 0.10 (available on opam). There have been numerous changes since the last release, so here is a comprehensive list of the new features and breaking changes to help the transition from OCamlFormat 0.9. ocamlformat-0.10 now works on the 4.08 AST, a…

Guillaume Petiot

Guillaume Petiot

Senior Software Engineer

Grid of square, multicolored reflective tiles.

An introduction to OCaml PPX ecosystem

These last few months, I spent some time writing new OCaml PPX rewriters or contributing to existing ones. It's a really fun experience. Toying around with the AST taught me a lot about a language I thought I knew really well. Turns out I actually had no idea what I was doing all these years. All jo…

Nathan Rebours

Nathan Rebours

Senior Software Engineer

Large orange sand dune, clear sky, trees below.

Dune 1.9.0

Tarides is pleased to have contributed to the dune 1.9.0 release which introduces the concept of library variants. Thanks to this update, unikernels builds are becoming easier and faster in the MirageOS universe! This also opens the door for a better cross-compilation story, which will ease the addi…

Lucas Pluvinage

Lucas Pluvinage

Senior Software Engineer

Stone cathedral ceiling with four central beams.

Release of OCamlFormat 0.9

We are pleased to announce the release of OCamlFormat (available on opam). There have been numerous changes since the last release, so here is a comprehensive list of the new features and breaking changes to help the transition from OCamlFormat 0.8. Additional dependencies OCamlFormat now requires: …

Guillaume Petiot

Guillaume Petiot

Senior Software Engineer

Laptop keyboard, ejecting disc labeled "52x".

How configurator reads C constants

Dune comes with a library to query OS-specific information, called configurator. It is able to evaluate C expressions and turn them into OCaml value. Surprisingly, it even works when compiling for a different architecture. How can it do that? …

Etienne Millon

Etienne Millon

Principal Software Engineer

Lines of colorful code on a screen.

OCamlFormat 0.8

We are proud to announce the release of OCamlFormat 0.8 (available on opam). To ease the transition from the previous 0.7 release here are some highlights of the new features of this release. The full changelog is available on the project repository. Precedence of options In the previous version you…

Guillaume Petiot

Guillaume Petiot

Senior Software Engineer

Yellow sand dunes under clear blue sky.

Dune 1.2.0

After a tiny but important patch release as 1.1.1, the dune team is thrilled to announce the release of dune 1.2.0! Here are some highlights of the new features in that version. The full list of changes can be found in the dune repository. Watch mode When developing, it is common to edit a file, run…

Etienne Millon

Etienne Millon

Principal Software Engineer