• en

OCaml Planet

The OCaml Planet aggregates various blogs from the OCaml community. If you would like to be added, read the Planet syndication HOWTO.

1065 blog posts are available. You can read the 30 more recent ones below or view older ones.

Our Experience at Tarides: Projects From Our Internships in 2023 — Tarides, Sep 15, 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 fresh eyes helps with identifying holes in documentation, gaps in workflows, as well as other ways to improve user experience.

In turn, we offer interns the opportunity to work on a project in OCaml in…

Read more...

Beyond TypeScript: Differences Between Typed Languages — Ahrefs, Sep 14, 2023

For the past six years, I have been working with OCaml, most of this time has been spent writing code at Ahrefs to process a lot of data and show it to users in a way that makes sense.

OCaml is a language designed with types in mind. It took me some time to learn the language, its syntax, and semantics, but once I did, I noticed a significant difference in the way I would write code and colaborate with others.

Maintaining codebases became much easier, regardless of their size. And day-to-day wor…

Read more...

What the interns have wrought, 2023 edition — Jane Street, Sep 12, 2023

We’re once again at the end of our internship season, and it’s my task to provide a few highlights of what the dev interns accomplished while they were here.

The State of the Art in Functional Programming: Tarides at ICFP 2023 — Tarides, Sep 08, 2023

ICFP 2023

The 28th ACM Sigplan International Conference on Functional Programming is taking place in Seattle as I’m typing. This is the largest international research conference on functional programming, and this year’s event features fascinating keynotes (including one from OCaml’s very own Anil Madhavapeddy!), deep dives on various topics like compilation and verification, tutorials, networking opportunities, and workshops on several functional programming languages.

Out of this veritab…

Read more...

Release of Frama-Clang 0.0.14 — Frama-C, Sep 07, 2023

Oxidizing OCaml: Data Race Freedom — Jane Street, Sep 01, 2023

OCaml with Jane Street extensions is available from our public opam repo. Only a slice of the features described in this series are currently implemented.

Your Programming Language and its Impact on the Cybersecurity of Your Application — Tarides, Aug 17, 2023

Did you know that the programming language you use can have a huge impact on the cybersecurity of your applications?

In a 2022 meeting of the Cybersecurity Advisory Committee, the Cybersecurity and Infrastructure Security Agency’s Senior Technical Advisor Bob Lord commented that: “About two-thirds of the vulnerabilities that we see year after year, decade after decade” are related to memory management issues.

Memory Unsafe Languages

One can argue that cyber vulnerabilities are simply a fac…

Read more...

On indefinite truth values — Andrej Bauer, Aug 12, 2023

In a discussion following a MathOverflow answer by Joel Hamkins, Timothy Chow and I got into a chat about what it means for a statement to “not have a definite truth value”. I need a break from writing the paper on countable reals (coming soon in a journal near you), so I thought it would be worth writing up my view of the matter in a blog post.

How are we to understand the statement “the Riemann hypothesis (RH) does not have a definite truth value”?

Let me first address two possible…

Read more...

Kcas: Building a Lock-Free STM for OCaml (2/2) — Tarides, Aug 10, 2023

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 discuss adding a fundamentally new feature to Kcas that makes it into a proper STM implementation.

Get Busy Waiting

If shared memory locations and transactions over them essentially replace traditio…

Read more...

Kcas: Building a Lock-Free STM for OCaml (1/2) — Tarides, Aug 07, 2023

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 meant to serve as an introduction to programming with Kcas, along the way we will be looking at a few code snippets. To ensure that they are type correct — the best kind of correct* — I'll use the M…

Read more...

OBuilder on macOS — Tarides, Aug 02, 2023

Introduction

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 platforms.

In 2022, Patrick Ferris of Tarides, successfully implemented a macOS worker for OBuilder. The workers were added to opam-repo-ci and OCaml CI, and this work was presented at the OC…

Read more...

OCaml in Space - Welcome SpaceOS! — Tarides, Jul 31, 2023

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 MirageOS technologies. We are investigating mission-critical IoT use cases: one of which is facilitating the deployment of secure high-performance applications in space to help data scientists write models…

Read more...

Variations on Weihrauch degrees (CiE 2023) — Andrej Bauer, Jul 27, 2023

I gave a talk “Variations on Weihrauch degrees” at Computability in Europe 2023, which took place in Tbilisi, Georgia. The talk was a remote one, unfortunately. I spoke about generalizations of Weihrauch degrees, a largely unexplored territory that seems to offer many opportunities to explore new directions of research. I am unlikely to pursue them myself, but will gladly talk with anyone who is interested in doing so.

Slides: CiE-2023-slides.pdf.

Reflections on the MirageOS Retreat in Morocco — Tarides, Jul 27, 2023

Introduction

Since we are a hybrid remote and distributed company, everyone at Tarides knows first-hand how important in-person retreats are for collaborating on software development. They give us a chance to focus more deeply on our work, collaborate closely, and learn from one another. We are particularly enthusiastic about the MirageOS retreats, which are organised by @hannesm from Robur and happen once to twice a year. These retreats bring together OCaml programmers and MirageOS enthusiasts …

Read more...

opam 2.2.0 alpha2 release — OCaml Platform (Raja Boujbel - OCamlPro, Kate Deplaix - Tarides), Jul 26, 2023

Feedback on this post is welcomed on Discuss!

We are happy to announce the second alpha release of opam 2.2.0. It contains some fixes and a new feature for Windows. You can view the full list in the release note.

This version is an alpha, we invite users to test it to spot previously unnoticed bugs to head towards the stable release.

Windows Support

The first alpha came with native Windows compatibility. This second alpha comes with a more simple init for Windows: we no longer rely on an alr…

Read more...

Sandmark: Boosting Multicore Projects with Performance Benchmarking — Tarides, Jul 19, 2023

Introduction

In the realm of software development, continuous improvement is paramount. When it comes to Multicore projects, the need for thorough benchmarking becomes even more critical. This is where Sandmark comes into play. Sandmark, developed for the OCaml programming language, has proven to be an invaluable tool for optimising performance and aiding in upstreaming efforts. In this blog post, we will explore the benefits of using Sandmark and its role in the development of Multicore project…

Read more...

Continuity principles and the KLST theorem — Andrej Bauer, Jul 18, 2023

On the occasion of Dieter Spreen's 75th birthday there will be a Festschrift in the Journal of Logic and Analysis. I have submitted a paper “Spreen spaces and the synthetic Kreisel-Lacombe-Shoenfield-Tseitin theorem”, available as a preprint arXiv:2307.07830, that develops a constructive account of Dieter's generalization of a famous theorem about continuity of computable functions. In this post I explain how the paper fits into the more general topic of continuity principles.

A continui…

Read more...

Release of Frama-C 27.1 (Cobalt) — Frama-C, Jul 18, 2023

OCaml-CI Renovated — Tarides, Jul 12, 2023

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 recomputation of builds. We're delighted to announce that we achieved these goals, and OCaml-CI is currently tracking over five hundred repositories and processing over a hundred thousand jobs daily. This i…

Read more...

Making OCaml 5 Succeed for Developers and Organisations — Tarides, Jul 07, 2023

OCaml recently won the ACM SIGPLAN PL Software Award. The award recognises a software system that has had a significant impact on programming language implementation, research, and tools. It is especially notable that 4 out of the 14 named OCaml compiler developers are affiliated with Tarides: Anil, David, Jérôme, and me. In this post, I discuss the wider effort afoot at Tarides in order to make OCaml 5, the latest release of the OCaml programming language, succeed for developers. I should not…

Read more...

We're sponsoring SoME3 — Jane Street, Jul 06, 2023

Jane Street is excited to announce our sponsorship of SoME3, Grant Sanderson and James Schloss’s third Summer of Math Exposition. SoME is a contest that Grant and James created to encourage the development of fun and interesting mathematics education videos.

Florian's OCaml compiler weekly, 5 July 2023 — GaGallium (Florian Angeletti), Jul 05, 2023

This series of blog posts aims to give a short weekly glimpse into my (Florian Angeletti) daily work on the OCaml compiler. The subject this week is a cartography of the source of opam packages breakage in OCaml 5.1.0 .

With the recent release of the first beta for OCaml 5.1, I have spent some time at the state of the opam ecosystem looking for package that broke with OCaml 5.1 .

Interestingly, for this beta there most of those incompatibility stemmed from 7 changes in OCaml 5.1, which …

Read more...

Zero-Day Attacks: What Are They, and Can a Language Like OCaml Protect You? — Tarides, Jul 05, 2023

Zero-day attacks have been getting increased media attention lately, but what are they? And how can we protect ourselves? Google’s Project Zero tracks zero-day vulnerabilities at major software vendors. In 2021, their tracker noted the detection and disclosure of 58 in-the-wild zero-day exploits, which was more than any other year since they started tracking in 2014. This suggests an increased awareness of zero-days among the community of developers, explaining the increased number of reports.

Read more...

opam 2.2.0 alpha is ready! — OCaml Platform (David Allsopp - Tarides, Léo Andrès - OCamlPro, Raja Boujbel - OCamlPro, Basile Clément - OCamlPro, Kate Deplaix - Tarides, Louis Gesbert - OCamlPro, Dario Pinto - OCamlPro, Christine Rose - Tarides, Riku Silvola - Tarides), Jul 03, 2023

Feedback on this post is welcomed on Discuss!

We are happy to announce the alpha release of opam 2.2.0. It contains numerous fixes, enhancements, and updates; including much-improved Windows support, addressing one of the most important pain points identified by the OCaml community. You can view the full list of changes in the release note.

This alpha release is a significant milestone, brought together by Raja Boujbel after years of work from the opam dev team (Raja Boujbel, David Allsopp, Ka…

Read more...

EmelleTV: Talking with Louis Roché about OCaml and Ahrefs — Ahrefs, Jun 29, 2023

Transcript

David: [00:00:00] Hello, my name is David. I run EmelleTV. It’s a talk show about OCaml, ReScript, and Reason. I often bring guests from the community to talk about them and meet them and asking a lot of questions about the language or what they’re working on, and of course having fun with Hindley–Milner type system. That’s part of the show. I work for Ahrefs, it’s actually this company.

Today I’m interviewing a …

Read more...

Oxidizing OCaml: Rust-Style Ownership — Jane Street, Jun 21, 2023

OCaml with Jane Street extensions is available from our public opam repo. Only a slice of the features described in this series are currently implemented.

Florian's OCaml compiler weekly, 20 June 2023 — GaGallium (Florian Angeletti), Jun 20, 2023

This series of blog posts aims to give a short weekly glimpse into my (Florian Angeletti) daily work on the OCaml compiler. This quiet week was focused on finishing ongoing tasks and discussing future collaborations.

A few finished tasks

Last week was a quiet week, in term of new activities. However, I was able to push few of my ongoing tasks over the finish line:

Semantic tag for inline code in the compiler

I have at last finalized this pull request that introduces an uniform quoting s…

Read more...

OCaml Receives the ACM SIGPLAN Programming Languages Software Award — Tarides, Jun 20, 2023

OCaml has received one of the most prestigious awards in the field of programming languages, and we are very thrilled that four of the award winners are from Tarides. This represents a huge success for the language, the named maintainers, and everyone who has worked on improving OCaml. We want to thank everyone for their hard work and celebrate the award alongside the OCaml community. Here’s to many more years of hacking together!

A Significant Impact on Building Better Software

The ACM specia…

Read more...

Release of Frama-C 27.0 (Cobalt) — Frama-C, Jun 15, 2023

Isomorphism invariance and isomorphism reflection in type theory (TYPES 2023) — Andrej Bauer, Jun 14, 2023

At TYPES 2023 I had the honor of giving an invited talk “On Isomorphism Invariance and Isomorphism Reflection in Type Theory” in which I discussed isomorphism reflection, which states that isomorphic types are judgementally equal. This strange principle is consistent, and it validates some fairly strange type-theoretic statements.

Here are the slides with speaker notes and the video recording of the talk.

View older blog posts.