Dune 3.9.0
The Dune team is thrilled to announce the release of Dune 3.9.0. This version ships with a host of new features and improvements, including:
- New
dune show
Command: This command enables you to display various pieces of information. For instance, you can usedune show pp
to display the preprocessed output of a file ordune show aliases [DIR]
to list the aliases available inDIR
. Read more about the command on its manpage usingdune show --help
. - Improved Dialect Support: We have rolled out several fixes related to dialect support. These changes make it easier to work with Dream's
.eml
files. - Introduction of
(build_if)
Toggle in(test)
Stanza: This new field facilitates the packaging of non-portable tests and benchmarks. If you have tests that don't build on a specific platform, you can now tell Dune not to build them on other Platforms with thebuild_if
field.
Enjoy the new features and improvements incorporated into this version!
See full changelog
Added
-
Include the time it takes to read/write state files when
--trace-file
is enabled (#7960, @rgrinberg) -
Include source tree scans in the traces produced by
--trace-file
(#7937, @rgrinberg) -
Add
--all
option todune rpc status
to show all Dune RPC servers running. (#8011, fix #7902, @Alizter) -
Add additional metadata to the traces provided by
--trace-file
whenever--trace-extended
is passed (#7778, @rleshchinskiy) -
$ dune describe
is now a command group, so arguments to subcommands must be passed after subcommand itself. (#7919, @Alizter) -
Add
dune show
command group which is an alias ofdune describe
. (#7946, @Alizter) -
Add
dune show env
command and makedune printenv
an alias of it. (#7985, @Alizter) -
Add commands
dune show targets
anddune show aliases
that display all the available targets and aliases in a given directory respectively. (#7770, grants #265, @Alizter) -
Extensions used in
(dialect)
can contain periods (e.g.,cppo.ml
). (#7782, fixes #7777, @nojb) -
The
interface
andimplementation
fields of a(dialect)
are now optional (#7757, @gpetiot) -
Add
(build_if)
to the(test)
stanza. When it evaluates to false, the executable is not built. (#7899, fixes #6938, @emillon) -
Allow
(include_subdirs qualified)
to be used when libraries define a(modules ...)
field (#7797, fixes #7597, @anmonteiro) -
Allow multiple globs in library's
(stdlib (internal_modules ..))
(@anmonteiro, #7878)
Changed
-
Do not rerun OCaml syntax files on every iteration of the watch mode. This is too memory consuming. (#7894, fix #6900, @rgrinberg)
-
Attach melange rules to the default alias (#7926, @haochenx)
-
Compute digests and manage sandboxes in background threads (#7947, @rgrinberg)
Fixed
-
Validate file extension for
$ dune ocaml top-module
. (#8005, fixes #8004, @3Rafal) -
Cinaps: The promotion rules for cinaps would only offer one file at a time no matter how many promotions were available. Now we offer all the promotions at once (#7901, @rgrinberg)
-
Add necessary parentheses in generated opam constraints (#7682, fixes #3431, @Lucccyo)