OCaml Weekly News

Previous Week Up Next Week


Here is the latest OCaml Weekly News, for the week of February 18 to 25, 2020.

Table of Contents

Dune 2.3.0

Rudi Grinberg announced

On behalf of the dune team, I'm proud to announce the 2.3.0 release of dune. This release is particularly relevant for users of coq that use dune to build their theories, developers of coq that use dune to build their favorite theorem prover. I'd like to thank @ejgallego for all the hard work to improve dune in this regard.

I'd also like to point out the (strict_package_deps) option that is now available in project files. This option will now ask dune to validate the package dependencies specified in the package stanzas in your dune-project files.

Here's the full change list, and as always, happy hacking!

2.3.0 (15/02/2020)

  • Improve validation and error handling of arguments to dune init (#3103, fixes #3046, @shonfeder)
  • dune init exec NAME now uses the NAME argument for private modules (#3103, fixes #3088, @shonfeder)
  • Avoid linear walk to detect children, this should greatly improve performance when a target has a large number of dependencies (#2959, @ejgallego, @aalekseyev, @Armael)
  • [coq] Add (boot) option to (coq.theories) to enable bootstrap of Coq's stdlib (#3096, @ejgallego)
  • [coq] Deprecate public_name field in favour of package (#2087, @ejgallego)
  • Better error reporting for "data only" and "vendored" dirs. Using these with anything else than a strict subdirectory or * will raise an error. The previous behavior was to just do nothing (#3056, fixes #3019, @voodoos)
  • Fix bootstrap on bytecode only switches on windows or where -j1 is set. (#3112, @xclerc, @rgrinberg)
  • Allow enabled_if fields in executable(s) stanzas (#3137, fixes #1690 @voodoos)
  • Do not fail if ocamldep, ocamlmklib, or ocaml are absent. Wait for them to be used to fail (#3138, @rgrinberg)
  • Introduce a strict_package_deps mode that verifies that dependencies between packages in the workspace are specified correctly. (@rgrinberg, #3117)
  • Make sure the @all alias is defined when no dune file is present in a directory (#2946, fix #2927, @diml)

What's the OCaml equivalent for HLint?

Continuing this thread, Stéphane Lavergne said

Aside from Mascot and ppx_js_style, it seems that ocp-lint is actively maintained by the folks at OcamlPro. I personally only use ocamlformat so I can't vouch for it, but it seems promising.

Training Sessions for "Expert OCaml" in Paris

Laurène Gibaud announced

OCamlPro organizes a cross-company training in French for developers who already use OCaml. The "Expert OCaml" training mixes theory and practice and will allow you to master OCaml's advanced features such as its type-system, OCaml's open source tools and libraries, and how to write compact and efficient code.

When? The next session is scheduled for March 3-4, 2020, the second will be on April 7-8, 2020.

Where? Paris 14, at our office

If interested, contact us at contact@ocamlpro.com or register on: http://www.ocamlpro.com/forms/preinscriptions-formation-ocaml/. We can also organize custom and on-site sessions upon request.

More info on: http://www.ocamlpro.com/training-ocamlpro/

OCaml 4.10 released

octachron announced

We have the pleasure of celebrating the birthday of Francis Ronalds by announcing the release of OCaml version 4.10.0.

Some of the highlights in this release are:

  • A new best-fit allocator for the major heap which reduces both GC cost an memory usage.
  • Some preliminary runtime work for OCaml multicore
  • Immutable strings are now enforced at configuration time
  • User-defined indexing operators for multidimensional arrays
  • Coming soon: statmemprof, a new statistical memory profiler. The external API will be release next version.
  • Various improvements to the manual
  • More precise exhaustiveness check for GADTs
  • Many bug fixes

Merlin, the OCaml editor service, is not yet available for this release. We will publish a follow-up announcement when Merlin is ready.

This release is (or soon will be) available as a set of OPAM switches, and as a source download here:


Editor note: please follow the archive link for the full changelog


If you happen to miss a CWN, you can send me a message and I'll mail it to you, or go take a look at the archive or the RSS feed of the archives.

If you also wish to receive it every week by mail, you may subscribe online.