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

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

Mercurial: prettyconfig extension — Marc Simpson, Feb 16, 2020

Mercurial: prettyconfig extension

# February 16, 2020

Since the Bitbucket migration, I’ve found myself tinkering1 with Mercurial and its extensions system again (after a long hiatus).

One byproduct of this was a simple, single function extension for listing aliases in a user-friendly way. I subsequently realised that the same behaviour would be useful for arbitrary config sections (aliases, paths, schemes)… and so, the prettyconfig fork.

The prettyconfig

Read more...

Mercurial extensions (update) — Marc Simpson, Feb 05, 2020

Mercurial extensions (update)

# February 5, 2020

In my previous post, I mentioned that a couple of old Mercurial extensions are archived on this server: hg-prettypaths and hg-persona.

Both have now been lightly tidied and updated to work with newer versions of Mercurial (tested on 4.5.3, 5.3).


comments powered by Disqus

2019 at OCamlPro — OCamlPro, Feb 04, 2020

OCamlPro was created to help OCaml and formal methods spread into the industry. We grew from 1 to 21 engineers, still strongly sharing this ambitious goal! The year 2019 at OCamlPro was very lively, with fantastic accomplishments all along!

Let’s quickly review the past years’ works, first in the world of OCaml (flambda2 & compiler optimisations, opam 2, our Rust-based UI for memprof, tools like tryOCaml, ocp-indent, and supporting the OCaml Software Foundation), then in the wor…

Read more...

Bitbucket repository migration — Marc Simpson, Feb 03, 2020

Bitbucket repository migration

# February 3, 2020

Since Bitbucket are discontinuing Mercurial support in a few months’ time (see here), I’ve started migrating a few old repositories:

Read more...

Ocsigen Start updated — Ocsigen project (The Ocsigen Team), Jan 20, 2020

New release: Ocsigen Start 2.15

Ocsigen Start is a template for client-server Web and/or mobile app in OCaml or ReasonML. It contains many standard features like user management, notifications, and many code examples. Use it to learn Web/mobile development in OCaml or to quickly create your own Minimum Viable Product. See an online demo.

Last features include:

  • Get rid of all remaining Camlp4 code
  • compatibility with OCaml 4.09

Ocsigen Start updated — Ocsigen blog (The Ocsigen Team), Jan 20, 2020

New release: Ocsigen Start 2.15

Ocsigen Start is a template for client-server Web and/or mobile app in OCaml or ReasonML. It contains many standard features like user management, notifications, and many code examples. Use it to learn Web/mobile development in OCaml or to quickly create your own Minimum Viable Product. See an online demo.

Last features include:

  • Get rid of all remaining Camlp4 code
  • compatibility with OCaml 4.09

opam 2.0.6 release — OCamlPro, Jan 16, 2020

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

This new version contains some small backported fixes and build update:

  • Don’t remove git cache objects that may be used [#3831 @AltGr]
  • Don’t include .gitattributes in index.tar.gz [#3873 @dra27]
  • Update FAQ uri [#3941 @dra27]
  • Lock: add warning in case of missing locked file [#3939 @rjbou]
  • Directory tracking: fix cached entries retrieving with precise tracking [#4038 @hannesm]
  • Build:
Read more...

opam 2.0.6 release — OCaml Platform (Raja Boujbel - OCamlPro, Louis Gesbert - OCamlPro), Jan 16, 2020

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

This new version contains some small backported fixes and build update:

  • Don't remove git cache objects that may be used [#3831 @AltGr]
  • Don't include .gitattributes in index.tar.gz [#3873 @dra27]
  • Update FAQ uri [#3941 @dra27]
  • Lock: add warning in case of missing locked file [#3939 @rjbou]
  • Directory tracking: fix cached entries retrieving with precise tracking [#4038 @hannesm]
  • Build:
    • Add sanity checks [#3934 @dra27]
    • Build man pages using dune…
Read more...

Hackers and climate activists join forces in Leipzig — MirageOS (Damien Leloup), Jan 08, 2020

Hackers and climate activists join forces in Leipzig

By Damien Leloup, special correspondent, Le Monde. Originally published by Le Monde on December 30, 2019. English translation by the MirageOS Core Team.

The Chaos Communication Congress, the world's largest self-managed event dedicated to IT security, hosted its 36th edition this weekend in Germany.

In front of Leipzig station, around fifty students and high school students are gathered. It's Sunday, but the local branch of the Fridays for F…

Read more...

Deploying authoritative OCaml-DNS servers as MirageOS unikernels — Hannes Mehnert (hannes), Dec 23, 2019

Goal

Have your domain served by OCaml-DNS authoritative name servers. Data is stored in a git remote, and let's encrypt certificates can be requested to DNS. This software is deployed since more than two years for several domains such as nqsb.io and robur.coop. This present the authoritative server side, and certificate library of the OCaml-DNS implementation formerly known as µDNS.

Prerequisites

You need to own a domain, and be able to delegate the name service to your own servers. You…

Read more...

Reproducible MirageOS unikernel builds — Hannes Mehnert (hannes), Dec 16, 2019

Reproducible builds summit

I'm just back from the Reproducible builds summit 2019. In 2018, several people developing OCaml and opam and MirageOS, attended the Reproducible builds summit in Paris. The notes from last year on opam reproducibility and MirageOS reproducibility are online. After last years workshop, Raja started developing the opam reproducibilty builder orb, which I extended at and after this years summit. This year before and after the facilitated summit there were hacking …

Read more...

Using Python and OCaml in the same Jupyter notebook — Jane Street, Dec 16, 2019

The cover image is based on Jupiter family by NASA/JPL.

Coq 8.11+beta1 is out — Coq, Dec 06, 2019

The first beta release of Coq 8.11 is available for testing.

There are two main changes brought by Coq version 8.11. First, it introduces Ltac2, a new tactic language for writing more robust larger scale tactics, with built-in support for datatypes and the multi-goal tactic monad. Second, primitive floats are integrated in terms and follow the binary64 format of the IEEE 754 standard, as specified in the `Coq.Float.Floats` library. Many other cleanups and improvements have been performed and a…

Read more...

Deep-Learning the Hardest Go Problem in the World — Jane Street, Dec 06, 2019

Updates and a New Run

Frama-C 20.0 (Calcium) is out. Download it here. — Frama-C, Dec 04, 2019

Testing OCaml releases with opamcheck — GaGallium (Florian Angeletti), Dec 03, 2019

I (Florian Angeletti) have started working at Inria Paris this August. A part of my new job is to help deal with the day-to-day care for the OCaml compiler, particularly during the release process. This blog post is a short glimpse into the life of an OCaml release.

OCaml and the opam repository

Currently, the song of the OCaml development process is a canon with two voices: a compiler release spends the first 6 months of its life as the trunk branch of the OCaml compiler git repository…

Read more...

Coq 8.10.2 is out — Coq, Nov 29, 2019

The 8.10.2 release of Coq is available.

Main changes:

  • Fixed a critical bug of template polymorphism and nonlinear universes
  • Fixed a few anomalies
  • Fixed an 8.10 regression related to the printing of coercions associated to notations
  • Fixed uneven dimensions of CoqIDE panels when window has been resized
  • Fixed queries in CoqIDE

All details can be found in the user manual.

Feedback and bug reports are extremely welcome.

Announcing Irmin 2.0.0 — MirageOS (Anil Madhavapeddy), Nov 26, 2019

We are pleased to announce Irmin 2.0.0, a major release of the Git-like distributed branching and storage substrate that underpins MirageOS. We began the release process for all the components that make up Irmin back in May 2019, and there have been close to 1000 commits since Irmin 1.4.0 release back in June

  1. To celebrate this milestone, we have a new logo and opened a dedicated website: irmin.org.

You can read more details about the new features in the Irmin v2 blog post. Enjoy the new releas…

Read more...

BAP 2.0 is released — The BAP Blog, Nov 19, 2019

The Carnegie Mellon University Binary Analysis Platform (CMU BAP) is a suite of utilities and libraries that enables analysis of programs in their machine representation. BAP is written in OCaml, relies on dynamically loaded plugins for extensibility, and is widely used for security analysis, program verification, and reverse engineering.

This is a major update that includes lots of new features, libraries, and tools, as well as improvements and bug fixes to the existing code. The following sma…

Read more...

CI/CD pipelines: Monad, Arrow or Dart? — Thomas Leonard, Nov 14, 2019

In this post I describe three approaches to building a language for writing CI/CD pipelines. My first attempt used a monad, but this prevented static analysis of the pipelines. I then tried using an arrow, but found the syntax very difficult to use. Finally, I ended up using a light-weight alternative to arrows that I will refer to here as a dart (I don’t know if this has a name already). This allows for static analysis like an arrow, but has a syntax even simpler than a monad.

Table of Con…

Read more...

On fixed-point theorems in synthetic computability — Andrej Bauer, Nov 06, 2019

I forgot to record the fact that already two years ago I wrote a paper on Lawvere's fixed-point theorem in synthetic computability:

Andrej Bauer: On fixed-point theorems in synthetic computability. Tbilisi Mathematical Journal, Volume 10: Issue 3, pp. 167–181.

It was a special issue in honor of Professors Peter J. Freyd and F. William Lawvere on the occasion of their 80th birthdays.

Lawvere's paper "Diagonal arguments and cartesian closed categories proves a beautifully simple fixed poi…

Read more...

Runners in action — Andrej Bauer, Oct 27, 2019

It has been almost a decade since Matija Pretnar and I posted the first blog posts about programming with algebraic effects and handlers and the programming language Eff. Since then handlers have become a well-known control mechanism in programming languages.

Handlers and monads excel at simulating effects, either in terms of other effects or as pure computations. For example, the familiar state monad implements mutable state with (pure) state-passing functions, and there are many more examples…

Read more...

Coq 8.10.1 is out — Coq, Oct 25, 2019

The 8.10.1 release of Coq is available.

Main changes:

  • fix proof of False when using SProp;
  • fix an anomaly when unsolved evar in Add Ring;
  • fix Ltac regression in binding free names in uconstr;
  • fix handling of unicode input before space;
  • fix custom extraction of inductives to JSON.

All details can be found in the user manual.

Feedback and bug reports are extremely welcome.

Announcing MirageOS 3.6.0 — MirageOS (Martin Lucina), Oct 18, 2019

MirageOS 3.6.0 release

We are pleased to announce the release of MirageOS 3.6.0. This release updates MirageOS to support Solo5 0.6.0 and later.

New features:

  • Support for the Solo5 spt (sandboxed process tender) target via mirage configure -t spt. The spt target runs MirageOS unikernels in a minimal strict seccomp sandbox on Linux x86_64, aarch64 and ppc64le hosts.
  • Support for the Solo5 application manifest, enabling support for multiple network and block storage devices on the hvt, spt and muen
Read more...

Commas in big numbers everywhere: An OpenType adventure — Jane Street, Oct 14, 2019

My job involves a lot of staring at large numbers, mostly latencies in nanoseconds, and picking out magnitudes like microseconds. I noticed myself constantly counting digits in my text editor, in my terminal, and in Jupyter notebooks in my browser.

Coq 8.10.0 is out — Coq, Oct 07, 2019

The 8.10.0 release of Coq is available.

Main changes:

  • some quality-of-life bug fixes;
  • a critical bug fix related to template polymorphism;
  • native 63-bit machine integers;
  • a new sort of definitionally proof-irrelevant propositions: SProp;
  • private universes for opaque polymorphic constants;
  • string notations and numeral notations;
  • a new simplex-based proof engine for the tactics lia, nia, lra and nra;
  • new introduction patterns for SSReflect;
  • a tactic to rewrite under binders: under;
  • easy input of…
Read more...

OCaml expert and beginner training by OCamlPro (in French): Nov. 5-6 & 7-8 — OCamlPro, Sep 25, 2019

In our endeavour to encourage professional programmers to understand and use OCaml, OCamlPro will be giving two training sessions, in French, in our Paris offices:

  1. OCaml Beginner course for professional programmers (5-6 Nov)
  2. OCaml Expertise (7-8 Nov).

The “Expert” OCaml course is for already experienced OCaml programmers to better understand advanced type system possibilities (objects, GADTs), discover GC internals, write “compiler-optimizable” code.

These sessions are …

Read more...

Mr. MIME - Parse and generate emails — Tarides (Romain Calascibetta), Sep 25, 2019

We're glad to announce the first release of `mrmime`, a parser and a generator of emails. This library provides an OCaml way to analyze and craft an email. The eventual goal is to build an entire unikernel-compatible stack for email (such as SMTP or IMAP).

In this article, we will show what is currently possible with mrmime and present a few of the useful libraries that we developed along the way.

An email parser

Some years ago, Romain gave a talk about what an email really is. Behind the h…

Read more...

A look back on OCaml since 2011 — OCamlPro, Sep 20, 2019

As you already know if you’ve read our last blogpost, we have updated our OCaml cheat sheets starting with the language and stdlib ones. We know some of you have students to initiate in September and we wanted these sheets to be ready for the start of the school year! We’re working on more sheets for OCaml tools like opam or Dune and important libraries such as Obj Lwt or Core. Keep an eye on our blog or the repo on GitHub to follow all the updates.

Going through the documentation was a jour…

Read more...

Frama-C 19.1 (Potassium) is out. Download ithere. — Frama-C, Sep 17, 2019

View older blog posts.