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

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

Weekly News — OCaml Weekly News, Jun 27, 2017

  1. {Uucd,Uucp,Uunf,Uuseg} 10.0.0
  2. OCaml release 4.04.2
  3. Camlp5 7.00 compatible with OCaml 4.04.2
  4. From the OCaml discourse
  5. Ocaml Github Pull Requests
  6. Other OCaml News

Intel Hyper-Threading Bug Uncovered by OCaml Developers — OCaml Labs, Jun 26, 2017

The OCaml community has helped uncover a serious microcode defect on Intel Skylake and Kaby Lake processors with hyper-threading enabled. Debian have issued a security advisory encouraging users of systems with the affected processors to apply the BIOS/UEFI update, or disable hyper-threading.

Related issues have been under investigation since 2016, when OCaml developers began experiencing unpredictable behaviour when using the Intel Skylake and Kaby Lake CPUs. As detailed on the Mantis issue, t…


OCaml 4.04.2 released — Caml INRIA, Jun 23, 2017

Unicode 10.0.0 refresh — Daniel Bünzli, Jun 21, 2017

Uucd, Uucp, Uunf and Uuseg were refreshed for Unicode 10.0.0. Find the details via the software page.

Weekly News — OCaml Weekly News, Jun 20, 2017

  1. Micro benchmarks for floating-point operations in OCaml?
  2. Can this code be accelerated by porting it to SPOC, SAREK or MetaOCaml ?
  3. From the OCaml discourse
  4. Ocaml Github Pull Requests

Unsigned Integers as Built-In Types or as a Library? — OCaml Labs, Jun 15, 2017

Jeremy Yallop has submitted an extensive PR to add support for unsigned 32-bit and 64-bit integers. This feature is frequently requested, and the PR details the motivation behind the addition of primitive types, standard library modules, syntax for expressions and patterns, as well as suggesting ideas for future enhancement.

Unsigned integers could be added as built-in OCaml types, and Jeremy describes the advantages of doing so over adding them as a library. The features will help improve a va…


Weekly News — OCaml Weekly News, Jun 13, 2017

  1. First OCaml hacking session in Belgium -- 1-2 July
  2. deprecating opam 1.2.0
  3. From the OCaml discourse
  4. Ocaml Github Pull Requests
  5. Other OCaml News

Full Time: Software Developer (Functional Programming) at Jane Street in New York, NY; London, UK; Hong Kong — GitHub Jobs, Jun 08, 2017

Software Developer

Jane Street is a proprietary quantitative trading firm, focusing primarily on trading equities and equity derivatives. We use innovative technology, a scientific approach, and a deep understanding of markets to stay successful in our highly competitive field. We operate around the clock and around the globe, employing over 500 people in offices in New York, London and Hong Kong.

The markets in which we trade change rapidly, but our intellectual approach changes faster still…


Weekly News — OCaml Weekly News, Jun 06, 2017

  1. qcheck 0.6
  2. Odig 0.0.2
  3. deprecating opam 1.2.0
  4. OCaml hacking evening in Cambridge, (MA, *US*) on June 6th
  5. findlib-1.7.3
  6. From the OCaml discourse
  7. Ocaml Github Pull Requests
  8. Other OCaml News

New in libguestfs: Rewriting bits of the daemon in OCaml — Richard Jones, Jun 04, 2017

libguestfs is a C library for creating and editing disk images. In the most common (but not the only) configuration, it uses KVM to sandbox access to disk images. The C library talks to a separate daemon running inside a KVM appliance, as in this Unicode-art diagram taken from the fine manual:

 │ main program      │
 │                   │
 │                   │           child process / appliance
 │                …

Full Time: Front-end Developer at issuu in Copenhagen — GitHub Jobs, Jun 02, 2017

Fulltime, Copenhagen

issuu is the world's fastest-growing digital publishing platform. We are looking for a new member to join our fantastic team. With great people, unique ideas and stunning technology, we're changing the future of publishing today. Can you be the best at what you do? Join us!

About this job

As a Front-end Developer at issuu, you will be joining a team of highly skilled web enthusiasts building web applications in an agile environment. We currently develop for deskto…


PureScript/React Front-End Developer at CollegeVine (Full-time) — Functional Jobs (FunctionalJobs.com), Jun 01, 2017


CollegeVine is looking for a product-focused front-end developer to help engineer the future of guidance, mentorship, and higher education attainment.

There aren't many industries left that haven't been significantly disrupted by technology in some way, but you're reading about one right here! Public high school guidance departments are under-resourced in our country and we think near-peer mentorship is the solution. As it stands, the current admissions process is a hug…


A Week of Platform Releases: Odig, Odoc, Opam Bundle and More! — OCaml Labs, May 31, 2017

Every year, May and June bring a hive of activity to the Computer Lab, and 2017 is no exception!

Our group is becoming more distributed across the globe, and we’ve taken extra steps to encourage communication by adopting the open-source Discourse forum for OCaml. The forum has become very active very quickly, and includes beginner questions, platform discussion and announcements of new releases.

It’s always fun bringing together OCaml contributors from all over the world to discuss their p…


Weekly News — OCaml Weekly News, May 30, 2017

  1. BuckleScript 1.7.4
  2. New version (1.3) of interval programming library
  3. utop 2.0.0
  4. From the OCaml discourse
  5. Ocaml Github Pull Requests

Frama-C 15 - Phosphorus is out. Download ithere. — Frama-C, May 30, 2017

A modular formalization of type theory in Coq — Andrej Bauer, May 29, 2017

Here are the slides for the talk I just gave at TYPES 2017 in Budapest. It is joint work with Philipp Haselwarter and Théo Winterhalter. The abstract for the talk is available online.

It describes a complete formalization of dependent type theory which allows you to turn various features of type theory on and off, and it proves several basic formal theorems.

GitHub repository: formal-type-theory
Slides: TYPES 2017  – A modular formalization of type theory in Coq [PDF]

Why Jbuilder? Demonstration and Discussion — OCaml Labs, May 26, 2017

Yesterday we welcomed attendees from Docker, Microsoft Research (MSR), Barclays, OCaml Labs, Jane Street and Citrix to a Jbuilder discussion and demonstration. This is the first informal Tech Talk of a possible future series at Docker, and we experimented with live remote access and video recording. Huge thanks to the Docker team for providing the venue and Zoom!

Another build system?!

It’s well known that OCaml has more than a few existing build systems and associated tools (ocamlbuild, jen…


Weekly News — OCaml Weekly News, May 23, 2017

  1. New release of the Albatross compiler available via opam
  2. findlib-1.7.2
  3. v0.9 release of Jane Street packages
  4. From the OCaml discourse
  5. Other OCaml News

More type classes in OCaml — Shayne Fletcher (Evelgren), May 22, 2017

More type classes in OCaml

More type classes

Author: Joel Björnson

About the author: Joel has been enjoying functional programming ever since being introduced to Haskell at Chalmers University (Sweden). Since then he's been dabbling in F# and more recently OCaml. He's currently based in London, working at the intersection of functional programming and finance.

As demonstrated in previous articles on this blog, OCaml comes with a rich module system. Among other things it enables developers to …


OCaml Compiler Hacking May 2017 - Activity Summaries — OCaml Labs, May 19, 2017

We held the 17th Compiler Hacking Event this week, on a balmy Cambridge evening, and we’ve added summaries of what everyone was working on that evening including:

  • Meeting the group from Citrix working with Opam, some of whom are quite new to OCaml
  • Closing OCaml PRs, reviewing code and bug fixing
  • Getting stuck into Multicore!

We added some new projects to the “Things to Work On” list, and we will continue to update the projects over the coming weeks. There’s lots of interest in …


Opam 2.0.0 beta 3 — OCaml Labs, May 17, 2017

This beta 3 release brings speed and stability improvements, replaces the opam build command with opam install <dir>, provides a clearer interface for handling package test and doc dependencies, and extends the CLI in a few areas.

Originally opam build was added to:

  • provide an easier way to start projects without a pre-existing opam installation
  • allow direct interaction with projects in a current directory
  • copy installed files of a package below a specified destdir

Feedback high…


Weekly News — OCaml Weekly News, May 16, 2017

  1. Transforming side-effects to a monad
  2. Clarity - functional programming library for OCaml
  3. PPX is harmful to our community in the long term
  4. discuss.ocaml.org now available
  5. Snabela 1.0: Logic-less @templates@
  6. Human-friendly Lwt: documenting and refactoring the Lwt core
  7. OCaml workshop 2017: call for presentations
  8. Ocaml Github Pull Requests
  9. Other OCaml News

Proving a mem/map property — Shayne Fletcher, May 11, 2017

Here are two well known "classic" functions over polymorphic lists.

map f l computes a new list from l by applying f to each of its elements.

let rec map (f : 'a -> 'b) : 'a list -> 'b list = function
| [] -> []
| h :: t -> f h :: map f t

mem x l returns true is x is an element of l and returns false if it is not.

let rec mem (a : 'a) : 'a list -> bool  = function
| [] -> false

New opam features: more expressive dependencies — OCamlPro, May 11, 2017

This blog will cover yet another aspect of the improvements opam 2.0 has over opam 1.2. It may be a little more technical than previous issues, as it covers a feature directed specifically at packagers and repository maintainers, and regarding the package definition format.

Specifying dependencies in opam 1.2

Opam 1.2 already has an advanced way of specifying package dependencies, using formulas on packages and versions, with the following syntax:

depends: [
  "foo" {>= "3.0&q…

Weekly News — OCaml Weekly News, May 09, 2017

  1. OCaml / Ocsigen developer positions
  2. tjr_btree 0.1.0 (initial release)
  3. Other OCaml News

Preprocessor extensions for code generation — Shayne Fletcher, May 04, 2017


Preprocessor extensions for code generation

"A Guide to Extension Points in OCaml"[1] provides a great "quick-start" on using the OCaml extension points API to implement preprocessor extensions for abstract syntax tree rewrites. This post picks up where that tutorial leaves off by showing how to write a ppx that does code generation.

The problem treated here is one posed in Whitequark's blog : "Implement a syntax extension that would accept type declarations of …


New opam features: “opam install DIR” — OCamlPro, May 04, 2017

After the opam build feature was announced followed a lot of discussions, mainly having to do with its interface, and misleading name. The base features it offered, though, were still widely asked for:

  • a way to work directly with the project in the current directory, assuming it contains definitions for one or more packages
  • a way to copy the installed files of a package below a specified destdir
  • an easier way to get started hacking on a project, even without an initialised opam

Status of opam …


Weekly News — OCaml Weekly News, May 02, 2017

  1. PPX is harmful to our community in the long term
  2. aws-s3 0.9.0
  3. Other OCaml News

Looking for a technical writer — Jane Street (Yaron Minsky), May 01, 2017

Jane Street is looking to hire a technical writer. If you're interested, or know someone who you think would be a good match, here's the application link.

We've always believed that developers should spend time and effort documenting their own code, but at the same time, a great writer with a feel for the technology can raise the level of quality in a way that few developers can. And as we've grown, having someone dedicated to writing makes a ton of sense.

Here are the kinds of things we'd like …


What do you mean ExceptT doesn't Compose? — Erik de Castro Lopo, Apr 30, 2017

Disclaimer: I work at Ambiata (our Github presence) probably the biggest Haskell shop in the southern hemisphere. Although I mention some of Ambiata's coding practices, in this blog post I am speaking for myself and not for Ambiata. However, the way I'm using ExceptT and handling exceptions in this post is something I learned from my colleagues at Ambiata.

At work, I've been spending some time tracking down exceptions in some of our Haskell code that have been bubbling up to the top level…


View older blog posts.