[ANN] Dune 1.4.0

The dune team is pleased to announce the 1.4.0 release of Dune. The highlight of this release is the improved support for menhir, in particular the long awaited --infer flag. This seemingly small feature took quite a bit of coordination between the maintainers of dune and menhir. So I’d like to thank @fpottier for helping us out with this by adding better support for dune in menhir itself, and implementing the majority of the support in dune as well.

The rest of the release is mostly bug fixes, but one notable feature is that dune is now C-c friendly. Dune will now resume exactly where it’s stopped after interruption instead of restarting the entire build.

EDIT: I actually forgot to mention that this release also includes integration with ocamlformat due to @emillon. Initially, I had thought that this feature was released in 1.3.0. Sorry about that!

Here is the full change log:

1.4.0 (10/10/2018)

  • Do not fail if the output of ocamlc -config doesn’t include
    standard_runtime (#1326, @jeremiedimino)

  • Let Configurator.V1.C_define.import handle negative integers
    (#1334, @Chris00)

  • Re-execute actions when a target is modified by the user inside
    _build (#1343, fix #1342, @jeremiedimino)

  • Pass --set-switch to opam (#1341, fix #1337, @jeremiedimino)

  • Fix bad interaction between multi-directory libraries the menhir
    stanza (#1373, fix #1372, @jeremiedimino)

  • Integration with automatic formatters (#1252, fix #1201, @emillon)

  • Better error message when using (self_build_stubs_archive ...) and
    (c_names ...) or (cxx_names ...) simultaneously.
    (#1375, fix #1306, @nojb)

  • Improve name detection for packages when the prefix isn’t an actual package
    (#1361, fix #1360, @rgrinberg)

  • Support for new menhir rules (#863, fix #305, @fpottier, @rgrinberg)

  • Do not remove flags when compiling compatibility modules for wrapped mode
    (#1382, fix #1364, @rgrinberg)

  • Fix reason support when using staged_pps (#1384, @charlesetc)

  • Add support for enabled_if in rule, menhir, ocamllex,
    ocamlyacc (#1387, @jeremiedimino)

  • Exit gracefully when a signal is received (#1366, @jeremiedimino)

  • Load all defined libraries recursively into utop (#1384, fix #1344,

  • Allow to use libraries bytes, result and uchar without findlib
    installed (#1391, @nojb)

  • Take argument to self_build_stubs_archive into account. (#1395, @nojb)

  • Fix bad interaction between env customization and vendored
    projects: when a vendored project didn’t have its own env stanza,
    the env stanza from the enclosing project was in effect (#1408,

  • Fix stop early bug when scanning for watermarks (#1423, @struktured)