The dune team is pleased to announce the release of Dune 3.8.0.
It is now available in opam-repository. As usual, it should always be safe to upgrade your dune package: new features and deprecations are only availble if you upgrade the language version in your dune-project files.
Added
-
Introduce mdx stanza 0.4 requiring mdx >= 2.3.0 which updates the default
list of files to include*.mldfiles (#7582, @Leonidas-from-XIV) -
Allow
(stdlib ...)to be used with(wrapped false)in library stanzas
(#7139, @anmonteiro). -
Allow the main module of a library with
(stdlib ...)to depend on other
libraries (#7154, @anmonteiro). -
Support
(link_flags ...)in(cinaps ...)stanza. (#7423, fixes #7416,
@nojb) -
Allow
(package ...)in any position within(rule ...)stanza (#7445,
@Leonidas-from-XIV) -
Added a new user action
(concurrent )which is like(progn )but runs the
actions concurrently. (#6933, @Alizter) -
Accept the Ordered Set Language for the
modesfield inlibrarystanzas
(#6611, @anmonteiro). -
Allow parallel execution of inline tests partitions (#7012, @hhugo)
-
Add the
--display-separate-messagesflag to separate the error messages
produced by commands with a blank line. (#6823, fixes #6158, @esope) -
Add
--watch-exclusionsto Dune build options (#7216, @jonahbeckford) -
Adds support for loading plugins in toplevels (#6082, fixes #6081,
@ivg, @richardlford) -
Introduce a
public_headersfield on libraries. This field is like
install_c_headers, but it allows to choose the extension and choose the
paths for the installed headers. (#7512, @rgrinberg) -
Dune can now detect Coq theories from outside the workspace. This allows for
composition with installed theories (not necessarily installed with Dune).
(#7047, @Alizter, @ejgallego) -
Added a
--no-buildoption todune coq topfor avoiding rebuilds (#7380,
fixes #7355, @Alizter) -
Add a
coqdoc_flagsfield to thecoq.theorystanza allowing the user to
pass extra arguments tocoqdoc. (#7676, fixes #7954 @Alizter) -
Preliminary support for Coq compiled intefaces (
.vosfiles) enabled via
(mode vos)incoq.theorystanzas. This can be used in combination with
dune coq topto obtain fast re-building of dependencies (with no checking
of proofs) prior to stepping into a file. (#7406, @rlepigre) -
Read
pkg-configarguments from thePKG_CONFIG_ARGNenvironment variable
(#1492, #7734, @anmonteiro) -
Use
$PKG_CONFIG, when set, to find thepkg-configbinary (#7469, fixes
#2572, @anmonteiro)
Changed
-
Bootstrap: remove reliance on shell. Previously, we’d use the shell to get
the number of processors. (#7274, @rgrinberg) -
Non-user proccesses such as version control or config checking are now run
silently. (#6994, fixes #4066, @Alizter) -
Bytecode executables built for JSOO are linked with
-noautolinkand no
longer depend on the shared stubs of their dependent libraries (#7156, @nojb) -
Always include
opamfiles in the generated.installfile. Previously, it
would not be included whenever(generate_opam_files true)was set and the
.installfile wasn’t yet generated. (#7547, @rgrinberg)
Deprecated
-
Modules that were declared in
(modules_without_implementation),
(private_modules)or(virtual_modules)but not declared in(modules)
will cause Dune to emit a warning which will become an error in 3.9. (#7608,
fixes #7026, @Alizter) -
Coq language versions less 0.8 are deprecated, and will be removed
in an upcoming Dune version. All users are required to migrate to
(coq lang 0.8)which provides the right semantics for theories
that have been globally installed, such as those coming from opam
(@ejgallego, @Alizter)
Fixed
-
Find
ppsdependencies in the host context when cross-compiling, (#7415,
fixes #4156, @anmonteiro) -
Fix plugin loading with findlib. The functionality was broken in 3.7.0.
(#7556, @anmonteiro) -
Load the host context
findlib.confwhen cross-compiling (#7428, fixes
#1701, @rgrinberg, @anmonteiro) -
Allow overriding the
ocamlbinary with findlib configuration (#7648,
@rgrinberg) -
Resolve
ppx_runtime_librariesin the target context when cross compiling
(#7450, fixes #2794, @anmonteiro) -
Fix
dune installwhen cross compiling (#7410, fixes #6191, @anmonteiro,
@rizo) -
Fix string quoting in the json file written by
--trace-file(#7773,
@rleshchinskiy) -
Correctly set
MANPATHindune exec. Previously, we would use thebin/
directory of the context. (#7655, @rgrinberg) -
merlin: ignore instrumentation settings for preprocessing. (#7606, fixes
#7465, @Alizter) -
When a rule’s action is interrupted, delete any leftover directory targets.
This is consistent with how we treat file targets. (#7564, @rgrinberg) -
Fix dune crashing on MacOS in watch mode whenever
$PATHcontains$PWD
(#7441, fixes #6907, @rgrinberg) -
Dune in watch mode no longer builds concurrent rules in serial (#7395
@rgrinberg, @jchavarri) -
dune coq topnow correctly respects the project root when called from a
subdirectory. However, absolute filenames passed todune coq topare no
longer supported (due to being buggy) (#7357, fixes #7344, @rlepigre and
@Alizter) -
RPC: Ignore SIGPIPE when clients suddenly disconnect (#7299, #7319, fixes
#6879, @rgrinberg) -
Always clean up the UI on exit. (#7271, fixes #7142 @rgrinberg)
-
Bootstrap: correctly detect the number of processors by allowing
nprocto be
looked up in$PATH(#7272, @Alizter) -
Speed up file copying on macos by using
clonefilewhen available
(@rgrinberg, #7210) -
Support commands that output 8-bit and 24-bit colors in the terminal (#7188,
@Alizter) -
Speed up rule generation for libraries and executables with many modules
(#7187, @jchavarri) -
Do not re-render UI on every frame if the UI doesn’t change (#7186, fix
#7184, @rgrinberg) -
Make
coq_dbcreation in scope lazy (@ejgallego, #7133) -
dune install now respects --display quiet mode (#7116, fixes #4573, fixes
#7106, @Alizter) -
Stub shared libraries (
dllXXX_stubs.so) in Dune-installed libraries could
not be used as dependencies of libraries in the workspace (eg when compiling
to bytecode and/or Javascript). This is now fixed. (#7151, @nojb) -
Fix regression where Merlin was unable to handle filenames with uppercase
letters under Windows. (#7577, @nojb) -
On nix+macos, pass
-fto the codesign hook to avoid errors when the binary
is already signed (#7183, fixes #6265, @greedy) -
Fix bug where RPC clients built with dune-rpc-lwt would crash when closing
their connection to the server (#7581, @gridbugs) -
Fix RPC server on Windows (used for OCaml-LSP). (#7666, @nojb)