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

Major Releases of Cohttp, Conduit, DNS and TCP/IP Libraries — OCaml Labs, Jul 19, 2017

Whilst porting a large portion of Mirage libraries to use Jbuilder, the MirageOS core team realised it was also a great opportunity to reorganise the package structure of some specific libraries, update/remove old code and improve overall functionality.

Many of the new releases include popular libraries used by projects other than MirageOS, and the maintainers have helpfully provided details on what has changed, specific improvements and adjustments users will need to make in order to use them.…


OCaml EFL 1.19.0 released and migration to GitHub — OCamlCore Forge News (Alexis Bernadet), Jul 13, 2017

Moved to version 1.19 of the EFL. Like the previous version, only version 1.8 and higher of the EFL and Elementary are required to build this version of OCaml EFL. This is probably the last version of OCaml EFL released on OCaml Forge. This project will migrate to GitHub: https://github.com/axiles/ocaml-efl

OCaml 4.05.0 Released — OCaml Labs, Jul 13, 2017

Following some minor releases in the last month, OCaml 4.05.0 was released today and is available as an opam switch, or from source.

The release comprises over 130 changes, with a few breaking existing programs. General changes include language optimisations, runtime and type system improvements, bug fixing and some internal compiler-libs alterations.

More specifically, the OCaml manual has been updated, with dead links removed and a new document detailing how to contribute upstream, and there…


Weekly News — OCaml Weekly News, Jul 11, 2017

  1. parany: a minimalistic library to parallelize any kind of computation
  2. first release of cpm: the Classification Performance Metrics library
  3. OCaml code style and syntax checking
  4. Intel Skylake / Kaby Lake hardware bug affects OCaml programs
  5. Prose v1 - a collaborative text editor
  6. opam v2.0.0 pre-release testing on macOS
  7. ML languages hacking session on July 13th in Pittsburgh, PA, USA
  8. From the OCaml discourse
  9. Ocaml Github Pull Requests
  10. Other OCaml News

Full Time: Software Developer (Functional Programming) at Jane Street in New York, NY; London, UK; Hong Kong — GitHub Jobs, Jul 10, 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…


Provisioning, deploying, and managing virtual machines — Hannes Mehnert (hannes), Jul 10, 2017

How to deploy unikernels?

MirageOS has a pretty good story on how to compose your OCaml libraries into a virtual machine image. The mirage command line utility contains all the knowledge about which backend requires which library. This enables it to write a unikernel using abstract interfaces (such as a network device). Additionally the mirage utility can compile for any backend. (It is still unclear whether this is a sustainable idea, since the mirage tool needs to be adjusted for every ne…


Weekly News — OCaml Weekly News, Jul 04, 2017

  1. OCaml version 4.05.0+rc1
  2. Intel Skylake / Kaby Lake hardware bug affects OCaml programs
  3. From the OCaml discourse
  4. Ocaml Github Pull Requests
  5. Other OCaml News

How I found a bug in Intel Skylake processors — GaGallium (Xavier Leroy), Jul 03, 2017

Instructors of "Introduction to programming" courses know that students are willing to blame the failures of their programs on anything. Sorting routine discards half of the data? "That might be a Windows virus!" Binary search always fails? "The Java compiler is acting funny today!" More experienced programmers know very well that the bug is generally in their code: occasionally in third-party libraries; very rarely in system libraries; exceedingly rarely…


OCaml server-side developer at Ahrefs (Full-time) — Functional Jobs (FunctionalJobs.com), Jun 30, 2017

What we need

Ahrefs is looking for a backend developer with a deep understanding of networks, distributed systems, OS fundamentals and taste for simple and efficient architectural designs. Our backend is implemented mostly in OCaml and some C++, as such proficiency in OCaml is very much appreciated, otherwise a strong inclination to intensively learn OCaml in a short term will be required. Understanding of functional programming in general and/or experience with other FP languages (F#,Haskell,S…


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

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
 │                …

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

View older blog posts.