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

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

Monorobot: a Slack bot for monorepos — Ahrefs, Dec 09, 2021

Monorobot: a notification bot for monorepos

Monorobot enables configurable directory tree notifications for your monorepo.

A few years ago, we decided to move most of our code into a monorepo. Many advocates have highlighted its upsides, which include better cross-project coordination and simpler dependency management.

But one problem remained: none of the available GitHub integrations for Slack work nicely with monorepos. Slack is vital for day to day communication among Ahrefs’ globally distrib…

Read more...

opam 2.1.2 release — OCaml Platform (Kate Deplaix - OCaml Labs, David Allsopp - OCaml Labs, Raja Boujbel - OCamlPro, Louis Gesbert - OCamlPro), Dec 08, 2021

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

This opam release consists of backported fixes, including:

  • Fallback on dnf if yum does not exist on RHEL-based systems (#4825)
  • Use --no-depexts in CLI 2.0 mode. This further improves the use of opam 2.1 as a drop-in replacement for opam 2.0 in CI, for example with setup-ocaml in GitHub Actions. (#4908)


Opam installation instructions (unchanged):
  1. From binaries: run

    bash -c "sh <(curl -fsSL https://raw.githubusercontent.com/oc…
Read more...

Release of Frama-C 24.0 (Chromium) — Frama-C, Nov 30, 2021

'Signals and Threads' Podcast: What is an Operating System? — Tarides, Nov 23, 2021

November has become MirageOS month! Between the upcoming official MirageOS 4.0 release, making custom Christmas Tree garlands with MirageOS on a Raspberry Pi, and now this "What is an Operating System?" podcast (featuring Tarides advisor and core MirageOS maintainer Anil Madhavapeddy), it truly is MirageOS month!

MirageOS can do much more than program a Raspberry Pi for Christmas decor. From agricultural monitoring to smart buildings, its applications cover a wide range of needs. For example, it…

Read more...

The proposal for a proof assistants StackExchange site — Andrej Bauer, Nov 19, 2021

Proof assistant communities have grown quite a bit lately. They have active Zulip chats: Lean, Coq, Agda, Isabelle. These are good for discussions, but less so for knowledge accumulation and organization, and are not indexed by the search engines.

I have therefore created a proposal for a new “Proof assistants” StackExchange site. I believe that such a site would complement very well various Zulips dedicated to specific proof assistants. If you favor the idea, please support it by visiting …

Read more...

Tarides & Hyper: Partners in Agricultural Innovation — Tarides, Nov 18, 2021

We are thrilled to announce a partnership between Tarides and Hyper, a technology provider in the agritech space who’s building an "operating system for high-performing farms." Indoor and vertical farms are becoming tech businesses that require scalable, flexible, and easy-to-use tools to facilitate data analysis and thereby increase productivity. According to the State of Indoor Farming 2020 Report, “40% of vertical and indoor farms are implementing data analytics and control automation to …

Read more...

opam releases: 2.0.10, 2.1.1, & opam depext 1.2! — OCaml Platform (David Allsopp - OCamlLabs, Raja Boujbel - OCamlPro, Louis Gesbert - OCamlPro), Nov 15, 2021

Feedback on this post is welcomed on Discuss!

We are pleased to announce several minor releases: opam 2.0.10, opam 2.1.1, and opam-depext 1.2.

The opam releases consist of backported fixes, while opam-depext has been adapted to be compatible with opam 2.1, to allow for workflows which need to maintain compatibility with opam 2.0. With opam 2.1.1, if you export OPAMCLI=2.0 into your environment then workflows expecting opam 2.0 should now behave even more equivalently.

opam-depext 1.2

Previous…

Read more...

MirageOS Workshop: Working with the Raspberry Pi 4 — Tarides, Nov 11, 2021

Earlier this week, Romain Calascibetta hosted an in-house MirageOS workshop for employees, both locally and remotely around the world. This interactive workshop taught participants how to build an operating system on a Raspberry Pi 4 using MirageOS. They got to create their own OS and play with projects, like one they dubbed GuirlandeOS for which they programmed an LED garland to trim their Christmas tree, creating their own customized light show! There will be a dedicated blog to GuirlandeOS so…

Read more...

MirageOS 4.0 Preview Live Presentation — Tarides, Nov 09, 2021

The official release of MirageOS 4.0 quickly approaches! Learn about some general MirageOS concepts and get a sneak park at the forthcoming changes in MirageOS 4.0 during a LIVE presentation today at 15h CET.

Lucas Pluvinage will lead you through a live-streaming presentation to acquaint you with MirageOS 4.0. You’ll learn what kinds of problems MirageOS can solve and about Functoria, the compilation model. Then Lucas will also discuss the switch to the Dune build system and how that enables…

Read more...

Beta release of Frama-C 24.0-beta (Chromium) — Frama-C, Nov 04, 2021

Isolating Xwayland in a VM — Thomas Leonard, Oct 30, 2021

In my last post, Qubes-lite with KVM and Wayland, I described setting up a Qubes-inspired Linux system that runs applications in virtual machines. A Wayland proxy running in each VM connects its applications to the host Wayland compositor over virtwl, allowing them to appear on the desktop alongside normal host applications. In this post, I extend this to support X11 applications using Xwayland.

Table of Contents

Read more...

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

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

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

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.

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

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

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.

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

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

View older blog posts.