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

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

Self Adjusting DOM — Jane Street (Yaron Minsky), Feb 06, 2016

I've been thinking recently about how to structure dynamic web applications, and in particular about the role that incremental computation should play.

In this post, I'd like to outline an approach we've been experimenting with internally which uses Incremental, a general purpose library for building so-called self adjusting computations. Self adjusting computations are essentially graph-structured computations that can be updated efficiently when their inputs change.

I'll describe this all in t…


Library authors: Don't forget the examples! — Dario Teixeira, Feb 04, 2016

These are exciting times in the OCaml community. Compiler development is proceeding at a brisk pace, with several long-awaited features on the horizon (flambda, multicore, and modular implicits, just to name a few). The tooling has also improved dramatically in the past few years, making the time before OPAM and Merlin seem like a very distant and best forgotten dark age. Moreover, the community has grown to the point where it is very likely that you will find a library that tackles your par…


OCaml server-side developer at Ahrefs Research (Full-time) — Functional Jobs (FunctionalJobs.com), Feb 03, 2016

Who we are

Ahrefs Research is a San Francisco branch of Ahrefs Pte Ltd (Singapore), which runs an internet-scale bot that crawls whole Web 24/7, storing huge volumes of information to be indexed and structured in timely fashion. On top of that Ahrefs is building analytical services for end-users.

Ahrefs Research develops a custom petabyte-scale distributed storage to accommodate all that data coming in at high speed, focusing on performance, robustness and ease of use. Performance-critical low…


Weekly News — OCaml Weekly News, Feb 02, 2016

  1. Functional Programming at Jane Street
  2. truncated division, remainder and arithmetics
  3. first official release: DAFT Allows File Transfers
  4. January 2016 Ocsigen releases
  5. Ocaml Github Pull Requests
  6. Other OCaml News

January 2016 Ocsigen releases — Ocsigen blog (The Ocsigen team), Feb 01, 2016

We are excited to announce the releases of

These releases are the result of many months of work by the Ocsigen team, and bring a range of improvements.


Eliom 5.0 comes with a PPX-based language (for OCaml 4.02.x). This follows our PPX extensions for js_of_ocaml and Lwt. The new syntax is more flexible than our previous Camlp4-based one, and we recommend it for new projects. Nevertheless, the Camlp4-based syntax remains availa…


Incremental computation and the web — Jane Street (Yaron Minsky), Jan 31, 2016

I've recently been thinking about the world of JavaScript and web applications. That's odd for me, since I know almost nothing about the web. Indeed, Jane Street's use of web technologies is quite minimal -- nearly all of our user interfaces are text based, and all told we've been pretty happy with that.

But there are real limitations to console apps, and if you need something richer that's cross-platform, the web is pretty appealing. For us it's made yet more appealing by the fact that OCaml, o…


OCaml on iOS Example Apps — Psellos, Jan 30, 2016

January 30, 2016

Through the decades I’ve slowly realized that my heroes in the music are the bass players. It’s not too late for me to take up some kind of bass instrument, but in the meantime the equivalent in the programming universe is to help provide languages and systems for others to code on top of. Isn’t that so?

image of Portland app image of Gamut app

So, I guess that’s what I’m doing for OCaml on iOS. Most recently I’ve updated the two example apps Portland and Gamut. They’re …


CCSS 1.6 released — OCamlCore Forge News ( (Dario Teixeira), Jan 26, 2016

For users, the salient point of this release is the improved support for media queries. Internally, this release features a migration from Ulex to Sedlex and from PCRE to OCaml-re. Complete unit tests based on Alcotest were also added.

Weekly News — OCaml Weekly News, Jan 26, 2016

  1. In the news: Unikernel Systems joins Docker
  2. Package renamings for sexplib, bin_prot and a few other camlp4 syntax extensions
  3. Other OCaml News

WE programming project: XKCD keyword index — David Mentré, Jan 26, 2016

With this post I'm starting a new kind of article: WE programming project. It's objective is to give ideas of programs that could be written over a WE, probably a lot more or lot less depending on your skill and willing to extend the idea.

Here is the first project proposal: an XKCD keyword index.


You probably known XKCD, "a webcomic of romance, sarcasm, math, and language". If not, I recommend it's reading. :-) All the XKCD comics are freely available, through an URL, e.g. "


Why OCaml? — Jane Street (Yaron Minsky), Jan 26, 2016

Here's a post from a talk I gave this last summer during our internship program about why we use OCaml. It spends a lot of time on how OCaml fits into the space of programming language designs, and why we think OCaml is in a real sweet spot in that design space, especially for the kind of work we do at Jane Street.

Warning: it's a very informal talk, with lots of questions and answers from the audience, not all of which are clearly audible, for which I apologize. Still, I hope people will get so…


OCaml for iOS Bug Fix Releases — Psellos, Jan 23, 2016

January 23, 2016

If you downloaded one of the OCaml compilers for iOS or the iOS Simulator, please download a new copy. Due to an error in the cross-compile build process, the compilers are looking for ocamlrun in my development tree rather than in the install location. As a result, they work for me but for nobody else. Unfortunately this means I didn’t see the problem in my testing.

Voronoi Image

You can download the updated compilers here:

OCamliOS 4.02.3 for 32-bit iOS (updated Jan …


Coq 8.5 is out! — Coq, Jan 21, 2016

The final release of Coq 8.5 is available! The 8.5 version brings several major features to Coq:
  • asynchronous edition of documents under CoqIDE to keep working on a proof while Coq checks the other proofs in the background (by Enrico Tassi);
  • universe polymorphism making it possible to reuse the same definitions at various universe levels (by Matthieu Sozeau);
  • primitive projections improving space and time efficiency of records, and adding eta-conversion for records (by Matthieu Sozeau);

Weekly News — OCaml Weekly News, Jan 19, 2016

  1. otags reloaded 4.02.1 for OCaml 4.02
  2. release of OCPWin, and wxOCaml
  3. Markup.ml - HTML5 and XML parsers with error recovery
  4. 1st MirageOS hackathon - 11th-16th March
  5. Ocaml Github Pull Requests
  6. Other OCaml News

OCaml for iOS Simulator 8 or 9 — Psellos, Jan 19, 2016

January 19, 2016

I have no fear that our universe is a simulation being run on some gigantic machine and watched from outside by transcendant spectators. It might be that it is—I’m merely saying I have no fear of it. I know this because I find the iOS Simulator to be delightful and disarming. It doesn’t faze me at all.

Bullet Cluster image

In recent years I’ve been maintaining some patches that transform the OCaml compiler into a cross compiler for the iOS Simulator. Now there is an act…


New open positions in the Frama-C team. — Frama-C, Jan 18, 2016

The Magnesium 20151002 release of Frama-C is available. — Frama-C, Jan 15, 2016

OCaml for iOS 9.2 — Psellos, Jan 15, 2016

January 15, 2016

If the universe has extra dimensions, perhaps we can have experiences in some orthogonal kind of time without leaving the present moment. Something like that happened over the holidays, and I was able to put together binary releases of the most recent OCaml compiler for iOS.

Spacy Voronoi image

For quite a few years I’ve been maintaining a set of patches that transform the OCaml compiler into a cross compiler for iOS. Recently there has been some work (with the kind help of Gerd Stolpma…


HardCaml Framework, Examples and Webapps — Andy Ray, Jan 15, 2016

hardcaml-examples provides a small framework for creating HardCaml based cores and six example designs. The framework code provides the general plumbing required to create a console based application with features including code generation, simulation, and waveform viewing. A recent update extends the framework so that cores can be run on a webpage.

Weekly News — OCaml Weekly News, Jan 12, 2016

  1. BeSport is hiring (developers, trainees) in Paris
  2. Logs 0.5.0
  3. Including a C library statically in an Ocaml library
  4. The OCaml garbage collector, finalisers, and the right way of disposing native pointers in C bindings
  5. dead_code_analyzer 0.9
  6. Other OCaml News

Half-baked ideas: C strings with implicit length field — Richard Jones, Jan 08, 2016

For more half-baked ideas, see the ideas tag.

If you prefer just to see the code, then it’s here.

Chris Siebenmann wrote a couple of interesting articles about C’s null terminated strings and how they pre-date C.

Chris notes an alternative is a length + string representation, as used in Pascal. Although there are libraries for this in C, there are several drawbacks and approximately no one uses them.

However it’s possible to have the best of both worlds: Strings using an impli…


Run Mirage Unikernels on KVM/QEMU with Solo5 — Open Mirage (Dan Williams), Jan 07, 2016

I'm excited to announce the release of Solo5! Solo5 is essentially a kernel library that bootstraps the hardware and forms a base (similar to Mini-OS) from which unikernels can be built. It runs on fully virtualized x86 hardware (e.g., KVM/QEMU), using virtio device interfaces.

Importantly, Solo5 is integrated (to some extent) with the MirageOS toolstack, so the Solo5 version of the Mirage toolstack can build Mirage unikernels that run directly on KVM/QEMU instead of Xen. As such, Solo5 …


Software Engineer at Capital Match (Full-time) — Functional Jobs (FunctionalJobs.com), Jan 05, 2016


Capital Match is the leading peer-to-peer lending platform in Singapore. Our in-house platform, mostly developed in Haskell, currently manages more than S$ 4 million in different type of facilities and is growing fast. We have closed our series A funding round about 6 months ago and are looking forward to a new round, most probably for middle of 2016. We are now embarking on the next stage of tech development to extend our set of features, strengthen our platform and develop new produc…


Weekly News — OCaml Weekly News, Jan 05, 2016

  1. How to create a local opam repository for offline use?
  2. Ocaml Github Pull Requests
  3. Other OCaml News

A Brown-Palsberg self-interpreter for Gödel’s System T — Andrej Bauer, Jan 04, 2016

In a paper accepted at POPL 2016 Matt Brown and Jens Palsberg constructed a self-interpreter for System $F_\omega$, a strongly normalizing typed $\lambda$-calculus. This came as a bit of a surprise as it is “common knowledge” that total programming languages do not have self-interpreters.

Thinking about what they did I realized that their conditions allow a self-interpreter for practically any total language expressive enough to encode numbers and pairs. In the PDF note accompanyi…


MirageOS hackathon — Open Mirage (Hannes Mehnert), Jan 01, 2016

The first MirageOS hackathon will take place in Marrakech, Morocco, from 11th till 16th March 2016. It is open for everybody. The main goal is to get together people motivated to contribute to MirageOS.

Find more details on the hackathon website.

Edit: discuss this post on devel.unikernel.org

A Unikernel Firewall for QubesOS — Thomas Leonard, Jan 01, 2016

QubesOS provides a desktop operating system made up of multiple virtual machines, running under Xen. To protect against buggy network drivers, the physical network hardware is accessed only by a dedicated (and untrusted) “NetVM”, which is connected to the rest of the system via a separate (trusted) “FirewallVM”. This firewall VM runs Linux, processing network traffic with code written in C.

In this blog post, I replace the Linux firewall VM with a MirageOS unikernel. The resulting VM us…


Introducing Charrua — a DHCP implementation — Open Mirage (Christiano Haesbaert), Dec 29, 2015

Almost every network needs to support DHCP (Dynamic Host Configuration Protocol), that is, a way for clients to request network parameters from the environment. Common parameters are an IP address, a network mask, a default gateway and so on.

DHCP can be seen as a critical security component, since it deals usually with unauthenticated/unknown peers, therefore it is of special interest to run a server as a self-contained MirageOS unikernel.

Charrua is a DHCP implementation written in OCam…


Weekly News — OCaml Weekly News, Dec 29, 2015

  1. Downloadable list archives?
  2. Ptime 0.8.0
  3. amqp-client 0.9.0
  4. Ocaml Github Pull Requests
  5. Other OCaml News

Astring, Fmt, Logs, Ptime, Mtime, Rresult — Daniel Bünzli, Dec 24, 2015

A few new releases that went unannounced on this feed. Find about them on the software page.

View older blog posts.