Advanced Code Navigation in OCaml-LSP
Tweaking the Language Server Protocol to perform code navigation in unintended but useful ways for OCaml.
Software Engineer
Discover our latest posts on #ocaml and explore related insights and stories.
Advanced Code Navigation in OCaml-LSP
Tweaking the Language Server Protocol to perform code navigation in unintended but useful ways for OCaml.
Software Engineer
The New Conference on the Block: What is FUN OCaml?
All the details from the new FUN OCaml conference held in Berlin in 2024, which hosted multiple talks, workshops, and social activities.
Communications Officer
Making OCaml Mainstream: Support Our Open Source Work on GitHub
Tarides contributes to the OCaml community by performing maintenance, hosting community events, and introducing new features to the language. You can now support this work by sponsoring it on GitHub.
Communications Officer
Looking Back on our Experience at ICFP!
Some of Tarides' engineers share their memories and impressions from the biggest functional programming event of the year.
Communications Officer
Dune Developer Preview: Installing The OCaml Compiler With Dune Package Management
Dune's Package Management system now supports direct installation of OCaml compilers, eliminating the need for external tools. This update improves efficiency, as compilers can be shared across projects, reducing build times. The enhancement makes Dune Package Management more robust and ready for broader use.
Technical Writer
Dune Package Management: Revolutionising OCaml Development
At Tarides, we’ve been working on an initiative to improve the OCaml development experience: Dune Package Management. As outlined in the Platform Roadmap, which was created through community collaboration, the aim is to unify all OCaml development workflows under a single, streamlined tool. At Tar…
Technical Writer
Introducing the Dune Developer Preview: A New Era for OCaml Development
The Dune team is excited to announce the arrival of Dune Developer Preview, an experimental nightly release of Dune created to test improvements, including the new package management feature. This is a major milestone for OCaml development! We've been working hard improving Dune, and we're excited t…
Technical Writer
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…
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 …
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…
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…
Communications Officer
Introducing the odoc
Cheatsheet: Your Handy Guide to OCaml Documentation
For developers diving into the OCaml ecosystem, one of the essential tools you'll encounter is odoc. Whether you're a seasoned OCaml programmer or just starting out, understanding how to generate and navigate documentation efficiently is crucial. This is where odoc comes in, OCaml's official documen…
Technical Writer
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…
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 …
Technical Writer
Getting Specific: Announcing the Gospel and Ortac Projects
Part of the benefit of open-source development is the opportunity to collaborate on projects across traditional organisational boundaries, such as academia and industry. Tarides is part of a larger effort to develop a behavioural specification language and associated tooling for OCaml. The project c…
Senior Software Engineer
Communications Officer
The Biggest Functional Programming Conference of the Year: What are we Bringing to ICFP?
Feeling fashionable? Milan is calling! ICFP 2024 will be held in the Italian fashion capital from 2-7 September, and there is something there for everyone to enjoy. The ACM SIGPLAN International Conference on Functional Programming is a yearly highlight with various keynotes, tutorials, and tracks t…
Communications Officer
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…
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…
Senior Software Engineer
Senior Software Engineer
Communications Officer
Creating the SyntaxDocumentation Command - Part 3: VSCode Platform Extension
In the final installment of our series on the SyntaxDocumentation command, we delve into its integration within the OCaml VSCode Platform extension. Building on our previous discussions about Merlin and OCaml LSP, this article explores how to make SyntaxDocumentation an opt-in feature in the popular…
Software Engineer
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 …
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…
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…
Communications Officer
Enhancing the OCaml.org Community Page: Boosting UX and UI Based on User Research
In March, the OCaml.org team at Tarides embarked on a mission to enhance the OCaml.org community pages. After engaging with the OCaml community, we identified several areas for improvement. Our goal was to boost the community's usability and visibility, ensuring it supported a wider audience and pro…
UX/UI Designer
Keeping Up With the Compiler: How we Help Maintain the OCaml Language
Not all of our projects have a definite end: a grand culmination of effort and time where we pop champagne and set off fireworks (which is, of course, how we celebrate most of the time). Indeed, providing ongoing support for the OCaml ecosystem is one of our biggest priorities, and it means that we …
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…
Software Engineer
Secure From the Ground Up: Introducing the FIDES Project Combining RISC-V and MirageOS
We entrust some of our most sensitive information to an invisible stream of information flowing back and forth across the globe. Cybersecurity concerns everyone, and Tarides is developing secure, lasting, and high-performing solutions for a diverse set of users. This post introduces you to cutting-e…
Communications Officer
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…
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…
Senior Software Engineer
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…
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…
Software Engineer
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…
Senior Software Engineer
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…
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…
Software Engineer
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…
Senior Software Engineer
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 …
UX/UI Designer
NetHSM: Bringing Open Source to the World of Hardware Security Modules
Nitrokey is one of the world’s foremost open-source hardware security companies. They develop IT security hardware for data encryption, decryption, and signing, including key and user authentication. After eight years of development, they recently released the first fully open-source Hardware Secu…
Communications Officer
Principal Software Engineer
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…
Communications Officer
Principal Software Engineer
Advisor
A Time for Change: Our Response to the White House Cybersecurity Press Release
As seasoned proponents of safety-by-design, we were pleased to see the February 26th White House press release titled "Future Software Should Be Memory Safe." The accompanying report touches on important topics, most significantly regarding the critical importance of memory safety. The U.S. governme…
Two Major Improvements in odoc: Introducing Search Engine Integration
In the world of OCaml documentation generation, there have been two significant enhancements that promise to make navigating OCaml documentation easier and more efficient. These improvements are divided into two distinct but interrelated components: changes in odoc itself and improvements in a searc…
Senior Software Engineer
Technical Writer
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…
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…
Senior Software Engineer
Communications Officer
Improving OCaml.org to Provide an Engaging UX and Trusted User Resources
The OCaml.org team, which includes members from Tarides, have been working hard to improve OCaml.org. In the first half of 2023, our primary focus was on the much-needed overhaul of OCaml.org's documentation and overall UX Design. We aspired to enhance user experience and accessibility throughout th…
Technical Writer
Are Your Programs Doing What You Think They're Doing? Introducing Monitoring Tools for Multicore OCaml
As programs grow in size and complexity, they become more challenging to optimise. When the cause of a particular performance issue can theoretically be attributed to multiple sources, developers need concrete data to drive their decision making and avoid time-consuming guesswork. As you can imagine…
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 …
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…
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…
Technical Writer
Announcing the ORCHIDE Project: Powering Satellite Innovation
It has been a few months since we announced our new product for both older and newer models of satellites: SpaceOS. Since then, there have been exciting updates to the use of SpaceOS for innovative satellite applications. Tarides is thrilled to announce our partnership with several esteemed organisa…
Communications Officer
OCaml Survey: Developers' Perception, Interest, and Perceived Barriers
Tarides is conducting a survey targeting non-OCaml programmers to learn their thoughts about this functional programming language and uncover any misconceptions surrounding it. Please take a few mintues to fill it out if you haven't yet done so. This post shows our preliminary findings based on a re…
Technical Writer
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 …
Communications Officer