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!

See full changelog
  • 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, @rgrinberg)

  • 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, @jeremiedimino)

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