On behalf of the dune team, I’m pleased to announce the release of Dune 1.9.0. This release introduces a few exciting new features:
- A tagging mechanism for implementations called variants
- The ability to build libraries in the Coq proof assistant.
- A new
dune init
command to help users quickly generate boilerplate and get start with dune projects (contributed by @shonfeder)
I would like to thank Lucas Pluvinage and @ejgallego for contributing the first two features respectively. They’ve also collaborated on a blog post to describe these features in detail.
As usual, the change log is replicated here for your convenience:
1.9.0 (09/04/2019)
-
Warn when generated
.merlin
does not reflect the preprocessing
specification. This occurs when multiple stanzas in the same directory use
different preprocessing specifications. This warning can now be disabled with
allow_approx_merlin
(#1947, fix #1946, @rgrinberg) -
Watch mode: display “Success” in green and “Had errors” in red (#1956,
@emillon) -
Fix glob dependencies on installed directories (#1965, @rgrinberg)
-
Add support for library variants and default implementations. (#1900,
@TheLortex) -
Add experimental
$ dune init
command. This command is used to create or
update project boilerplate. (#1448, fixes #159, @shonfeder) -
Experimental Coq support (fix #1466, @ejgallego)
-
Install .cmi files of private modules in a
.private
directory (#1983, fix
#1973 @rgrinberg) -
Fix
dune subst
attempting to substitute on directories. (#2000, fix #1997,
@rgrinberg) -
Do not list private modules in the generated index. (#2009, fix #2008,
@rgrinberg) -
Warn instead of failing if an opam file fails to parse. This opam file can
still be used to define scope. (#2023, @rgrinberg) -
Do not crash if unable to read a directory when traversing to find root
(#2024, @rgrinberg) -
Do not exit dune if some source directories are unreadable. Instead, warn the
user that such directories need to be ignored (#2004, fix #310, @rgrinberg) -
Fix nested
(binaries ..)
fields in theenv
stanza. Previously, parent
binaries
fields would be ignored, but instead they should be combined.
(#2029, @rgrinberg) -
Allow “.” in
c_names
andcxx_names
(#2036, fix #2033, @rgrinberg) -
Format rules: if a dune file uses OCaml syntax, do not format it.
(#2014, fix #2012, @emillon)