On behalf of the dune development team, I’d like to announce the 18 beta.
This release brings a number of new features, but I’d like to highlight the one feature that towers above the rest. Given a module definition that contains only type declarations, you will able to write these type definitions in an .mli file, while omitting the customary implementation file - BUT only after listing these so called mli only modules in the modules_without_implementation
field. We are awaiting your praise.
Apart from this, we’ve also changed the default to a far more quiet progress bar. To get back the old output use the --display=short
option. You may set this option for all of your dune projects in the newly introduce dune config file. Refer to the manual for details.
As usual, the change log is replicated for your convenience:
1.0+beta18 (25/02/2018)
-
Fix generation of the implicit alias module with 4.02. With 4.02 it
must have an implementation while with OCaml >= 4.03 it can be an
interface only module (#549) -
Let the parser distinguish quoted strings from atoms. This makes
possible to use “${v}” to concatenate the list of values provided by
a split-variable. Concatenating split-variables with text is also
now required to be quoted. -
Split calls to ocamldep. Before ocamldep would be called once per
library
/executables
stanza. Now it is called once per file
(#486) -
Make sure to not pass
-I <stdlib-dir>
to the compiler. It is
useless and it causes problems in some cases (#488) -
Don’t stop on the first error. Before, jbuilder would stop its
execution after an error was encountered. Now it continues until
all branches have been explored (#477) -
Add supprot for a user configuration file (#490)
-
Add more display modes and change the default display of
Jbuilder. The mode can be set from the command line or from the
configuration file (#490) -
Allow to set the concurency level (
-j N
) from the configuration
file (#491) -
Store artifacts for libraries and executables in separate
directories. This ensure that Two libraries defined in the same
directory can’t see each other unless one of them depend on the
other (#472) -
Better support for mli/rei only modules (#490)
-
Fix support for byte-code only architectures (#510, fixes #330)
-
Fix a regression in
external-lib-deps
introduced in 1.0+beta17
(#512, fixes #485) -
@doc
alias will now build only documentation for public libraries. A new
@doc-private
alias has been added to build documentation for private
libraries. -
Refactor internal library management. It should now be possible to
runjbuilder build @lint
in Base for instance (#516) -
Fix invalid warning about non-existent direcotry (#536, fixes #534)