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

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

Hiring a Developer Educator — Jane Street, Oct 21, 2021

We spend a lot of time on education at Jane Street. Like, really a lot.

Verification for Dummies: SMT and Induction — OCamlPro, Oct 14, 2021

These posts broadly discusses induction as a formal verification technique, which here really means formal program verification. I will use concrete, runnable examples whenever possible. Some of them can run directly in a browser, while others require to run small easy-to-retrieve tools locally. Such is the case for pretty much all examples dealing dir…

Read more...

SCoP Passed Phase 1 of the DAPSI Initiative! — Tarides, Oct 14, 2021

In April, we announced that the DAPSI initiative accepted the proposal for our Secure-by-Design Communication Protocols (SCoP) project. Today, we are thrilled to announce that SCoP has passed the initiative’s Phase 1, and we are now on our way to Phase 2!

SCoP is an open, secure, and resource-efficient infrastructure to engineer a modern basis for open messaging (for existing and emerging protocols) using type-safe languages and unikernels—to ensure your private information remains secure. A…

Read more...

The New Replaying Benchmark in Irmin — Tarides, Oct 04, 2021

As mentioned in our Tezos Storage / Irmin Summer 2021 Update on the Tezos Agora forum, the Irmin team's goal has been to improve Irmin's performance in order to speed up the Baking Account migration process in Octez, and we managed to make it 10x faster in the first quarter of 2021. Since then, we've been working on a new benchmark program for Irmin that's based on the interactions between Irmin and Octez. This won't just help make Irmin even faster, it will also help speed up the Tezos blockcha…

Read more...

Announcing Tezos’ 8th protocol upgrade proposal: Hangzhou — Tarides, Sep 21, 2021

The last upgrade of the Tezos protocol, Granada, activated on August 6th, 2021. We are now glad to announce a new protocol proposal, Hangzhou, the result of a collaborative work from various teams.

This is a joint post with Nomadic Labs, Marigold, Oxhead Alpha and DaiLambda.

Measuring OCaml compilation speed after a refactoring — GaGallium (Florian Angeletti), Sep 17, 2021

It can be tricky to evaluate the effect of invidual commits or pull requests on the speed of the OCaml compiler. In this blog post, I (Florian Angeletti) report my experience on measuring such impact with some degree of statistical significance.

The OCaml typechecker is an important piece of the OCaml compiler pipeline which accounts for a significant portion of time spent on compiling an OCaml program (see the appendices).

The code of the typechecker is also quite optimised, sometime…

Read more...

Writing Lifters Using Primus Lisp — The BAP Blog, Sep 15, 2021

Defining instructions semantics using Primus Lisp (Tutorial)

Introduction

So you found a machine instruction that is not handled by BAP and you wonder how to add it to BAP. This is the tutorial that will gently guide you through the whole process of discovering the instruction, studying its semantics, encoding it, testing, and finally submitting to BAP. The latter is optional but highly appreciated.

In modern BAP, the easiest option is to use Primus Lisp to define new instructions. The idea i…

Read more...

Tarides Returns to FIC 2021 — Tarides, Sep 06, 2021

Last year, Tarides had the honour of winning the “Coup de Coeur” Startup Award at the International Cybersecurity Forum (FIC). It’s the leading cybersecurity event in the EU. It’s both a forum, to present and discuss innovations and reflect on the state of the European cybersecurity ecosystem, and a trade fair, where cybersecurity and other tech professionals can meet and network.

This year, Tarides returns to FIC with their own booth! Our representatives, including founder and CEO of Ta…

Read more...

Generating static and portable executables with OCaml — OCamlPro, Sep 02, 2021

Distributing OCaml software on opam is great (if I dare say so myself), but sometimes you need to provide your tools to an audience outside of the OCaml community, or just without recompilations or in a simpler way.

However, just distributing the locally generated binaries requires that the users have all the needed shared libraries installed, and a compatible libc. It’s not something you can assume in general, and even if you don’t need any C shared library or are confident enough i…

Read more...

Goodbye Core_kernel — Jane Street, Aug 26, 2021

We recently restructured our standard libraries at Jane Street in a way that eliminates the difference between Core_kernel and Core and we’re happy with the result. The new layout should reach the open source world before the end of the year.

Benchmarking OCaml projects with current-bench — Tarides, Aug 26, 2021

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, it runs on pull requests and branches which allows performance to be analysed and compared. It can currently be enabled as an app on GitHub repositories with zero configuration. Several public repo…

Read more...

Tarides Engineers to Present at ICFP 2021 — Tarides, Aug 26, 2021

This year marks the 25th anniversary of the OCaml Language! It's an exciting time for OCaml programmers and enthusiasts. A fun and informative way to celebrate OCaml's birthday is to attend the 26th Annual International Conference on Functional Programming (ICFP), held online this year due to ongoing Covid restrictions. While this is disappointing news for so many, it's beneficial to those of you outside France because now you can hear professionals talk about cutting edge technology from the co…

Read more...

What the interns have wrought, 2021 edition — Jane Street, Aug 09, 2021

It’s the end of another dev internship season, and this one marked something of a transition, since halfway through the season, NY-based interns were invited back to the recently reinvigorated office. Which means that many more of us got the chance to meet and hang out with the interns in person than we did last year. And hopefully the interns were able to get a better sense of Jane Street and how it operates.

opam 2.1.0 is released! — OCamlPro, Aug 05, 2021

We are happy to announce the release of opam 2.1.0.

Many new features made it in (see the pre-release changelogs or release notes for the details), but here are a few highlights.

What’s new in opam 2.1?

  • Integration of system dependencies (formerly the opam-depext plugin), increasing their reliability as it integrates the solving step
  • Creation of lock files for reproducible installations (formerly the opam-lock plugin)
  • Switch invariants, replacing the “base packages”…
Read more...

opam 2.0.9 release — OCamlPro, Aug 05, 2021

Feedback on this post is welcomed on Discuss!

We are pleased to announce the minor release of opam 2.0.9.

This new version contains some back-ported fixes.

New features

  • Back-ported ability to load upgraded roots read-only; allows applications compiled with opam-state 2.0.9 to load a root which has been upgraded to opam 2.1 [#4636]
  • macOS sandbox now supports OPAM_USER_PATH_RO for adding a custom read-only directory to the sandbox [#4589, #4609]
  • OPAMROOT and OPAMSWITCH now reflect t…
Read more...

Postdoc Position at CEA List - LSL — Frama-C, Aug 05, 2021

Postdoc Position at CEA List - LSL — Frama-C, Aug 05, 2021

PhD Position at CEA List - LSL — Frama-C, Aug 05, 2021

opam 2.1.0 is released! — OCaml Platform (David Allsopp, Raja Boujbel - OCamlPro, Louis Gesbert - OCamlPro), Aug 04, 2021

Feedback on this post is welcomed on Discuss!

We are happy to announce the release of opam 2.1.0.

Many new features made it in (see the pre-release changelogs or release notes for the details), but here are a few highlights.

What's new in opam 2.1?

  • Integration of system dependencies (formerly the opam-depext plugin), increasing their reliability as it integrates the solving step
  • Creation of lock files for reproducible installations (formerly the opam-lock plugin)
  • Switch invariants, replacing …
Read more...

opam 2.0.9 release — OCaml Platform (Raja Boujbel - OCamlPro, Louis Gesbert - OCamlPro), Aug 03, 2021

Feedback on this post is welcomed on Discuss!

We are pleased to announce the minor release of opam 2.0.9.

This new version contains some back-ported fixes.

New features

  • Back-ported ability to load upgraded roots read-only; allows applications compiled with opam-state 2.0.9 to load a root which has been upgraded to opam 2.1 [#4636]
  • macOS sandbox now supports OPAM_USER_PATH_RO for adding a custom read-only directory to the sandbox [#4589, #4609]
  • OPAMROOT and OPAMSWITCH now reflect the --root and --…
Read more...

Release of Frama-C 23.1 (Vanadium) — Frama-C, Jul 21, 2021

Tarides at WomenHack Virtual Event — Tarides, Jul 20, 2021

Tarides takes great pride in a diverse workforce and strives to continue bringing talented people to its team from around the globe. This is why Sonja Heinze, a Tarides software engineer, and the Head of HR, Héloïse Lutton, will attend WomenHack, an online event dedicated to recruiting more women into the tech world. They're participating not only to present Tarides to the Women In Tech community, but to also network and possibly find new talented programmers to join our growing team.

The Wome…

Read more...

Detecting identity functions in Flambda — OCamlPro, Jul 16, 2021

In some discussions among OCaml developers around the empty type (PR#9459), some people mused about the possibility of annotating functions with an attribute telling the compiler that the function should be trivial, and always return a value strictly equivalent to its argument.
Curious about the feasibility of implementing this feature, we advertised an internship with our compiler team aimed at exploring this subject.
We welcomed Léo Boitel during three months to work on this topic, with Vincen…

Read more...

WasiCaml: Translate OCaml Code to WebAssembly — Gerd Stolpmann, Jul 15, 2021

The portability story behind WasiCaml
 
For a recent project we wrote a compiler that translates a domain-specific language (DSL) to some runnable form, and we did that in OCaml. The DSL is now part of an Electron-based integrated development environment (IDE) that will soon be available from Remix Labs. Electron runs on a couple of operating systems, but the DSL compiler orginally did not. How do we accomplish it to run the DSL compiler on as many different opera…
Read more...

Release of Frama-Clang 0.0.11 — Frama-C, Jul 13, 2021

Permanent Engineer/Researcher Position at CEA LIST - LSL — Frama-C, Jul 08, 2021

Release of Frama-C 23.0 (Vanadium) — Frama-C, Jul 06, 2021

Deploying binary MirageOS unikernels — Hannes Mehnert (hannes), Jun 30, 2021

Introduction

MirageOS development focus has been a lot on tooling and the developer experience, but to accomplish our goal to "get MirageOS into production", we need to lower the barrier. This means for us to release binary unikernels. As described earlier, we received a grant for "Deploying MirageOS" from NGI Pointer to work on the required infrastructure. This is joint work with Reynir.

We provide at builds.robur.coop binary unikernel images (and supplementary software). Do…

Read more...

Tarides Introduces OSMOSE at the Open-Source Innovation Sprint — Tarides, Jun 29, 2021

Tarides is excited to announce that our CEO, Dr. Thomas Gazagnaire, and Prof. Anil Madhavapeddy, from the University of Cambridge, will present their innovative platform OSMOSE at the Open Source Innovation Sprint (OSIS) conference on 1 July 2021. This event is organized by Systematic.

OSMOSE is a software platform made to manage digital infrastructure at scale, securely and efficiently. It uses the groundbreaking creation of unikernels to radically simplify the way applications are built and de…

Read more...

Roadmap 2021 & New Landing Page — Reason Documentation Blog, Jun 25, 2021

Announcing our roadmap for 2021 / 2022, release cycle plans and new landing page.

View older blog posts.