A composable build system for OCaml.
CHANGES:
Fix overflow in sendfile stubs (copy of large files could fail or end with truncated files) (#10333, @tonyfettes)
Fix crash when a rule with a directory target is disabled with enabled_if
(#10382, fixes #10310, @gridbugs)
melange: remove all restrictions around virtual libraries in Melange. They may be used as otherwise in libraries and executables. (#10412, @anmonteiro)
spawn: fix compatibility with RHEL7 (#10428, @emillon)
CHANGES:
Add link flags to to ocamlmklib
for ctypes stubs (#8784, @frejsoya)
Remove some unnecessary limitations in the expansions of percent forms in
install stanza. For example, the %{env:..}
form can be used to select files
to be installed. (#10160, @rgrinberg)
Allow artifact expansion percent forms (%{cma:..}
, %{cmo:..}
, etc.) in
more contexts. Previously, they would be randomly forbidden in some fields.
(#10169, @rgrinberg)
Allow %{inline_tests}
in more contexts (#10191, @rgrinberg)
Remove limitations on percent forms in the (enabled_if ..)
field of
libraries (#10250, @rgrinberg)
Support dialects in dune describe pp
(#10283, @emillon)
Allow defining executables or melange emit stanzas with the same name in the same folder under different contexts. (#10220, @rgrinberg, @jchavarri)
coq: Delay Coq rule setup checks so OCaml-only packages can build in hybrid
Coq/OCaml projects when coqc
is not present. Thanks to @vzaliva for the
test case and report (#9845, fixes #9818, @rgrinberg, @ejgallego)
Fix conditional source selection with select
on bigarray
in OCaml 5
(#10011, @moyodiallo)
melange: fix inconsistency in virtual library implementation. Concrete modules within a virtual library can now refer to its virtual modules too (#10051, fixes #7104, @anmonteiro)
melange: fix a bug that would cause stale import
paths to be emitted when
moving source files within (include_subdirs ..)
(#10286, fixes #9190,
@anmonteiro)
Dune file formatting: output utf8 if input is correctly encoded (#10113, fixes #9728, @moyodiallo)
Fix expanding dependencies and locks specified in the cram stanza. Previously, they would be installed in the context of the cram test, rather than the cram stanza itself (#10165, @rgrinberg)
Fix bug with dune exec --watch
where the working directory would always be
set to the project root rather than the directory where the command was run
(#10262, @gridbugs)
Regression fix: sign executables that are promoted into the source tree (#10263, fixes #9272, @emillon)
Fix crash when decoding dune-package for libraries with (include_subdirs qualified)
(#10269, fixes #10264, @emillon)
--react-to-insignificant-changes
option. (#10083, @rgrinberg)CHANGES:
Add link flags to to ocamlmklib
for ctypes stubs (#8784, @frejsoya)
Remove some unnecessary limitations in the expansions of percent forms in
install stanza. For example, the %{env:..}
form can be used to select files
to be installed. (#10160, @rgrinberg)
Allow artifact expansion percent forms (%{cma:..}
, %{cmo:..}
, etc.) in
more contexts. Previously, they would be randomly forbidden in some fields.
(#10169, @rgrinberg)
Allow %{inline_tests}
in more contexts (#10191, @rgrinberg)
Remove limitations on percent forms in the (enabled_if ..)
field of
libraries (#10250, @rgrinberg)
Support dialects in dune describe pp
(#10283, @emillon)
Allow defining executables or melange emit stanzas with the same name in the same folder under different contexts. (#10220, @rgrinberg, @jchavarri)
coq: Delay Coq rule setup checks so OCaml-only packages can build in hybrid
Coq/OCaml projects when coqc
is not present. Thanks to @vzaliva for the
test case and report (#9845, fixes #9818, @rgrinberg, @ejgallego)
Fix conditional source selection with select
on bigarray
in OCaml 5
(#10011, @moyodiallo)
melange: fix inconsistency in virtual library implementation. Concrete modules within a virtual library can now refer to its virtual modules too (#10051, fixes #7104, @anmonteiro)
melange: fix a bug that would cause stale import
paths to be emitted when
moving source files within (include_subdirs ..)
(#10286, fixes #9190,
@anmonteiro)
Dune file formatting: output utf8 if input is correctly encoded (#10113, fixes #9728, @moyodiallo)
Fix expanding dependencies and locks specified in the cram stanza. Previously, they would be installed in the context of the cram test, rather than the cram stanza itself (#10165, @rgrinberg)
Fix bug with dune exec --watch
where the working directory would always be
set to the project root rather than the directory where the command was run
(#10262, @gridbugs)
Regression fix: sign executables that are promoted into the source tree (#10263, fixes #9272, @emillon)
Fix crash when decoding dune-package for libraries with (include_subdirs qualified)
(#10269, fixes #10264, @emillon)
--react-to-insignificant-changes
option. (#10083, @rgrinberg)CHANGES:
When a directory is changed to a file, correctly remove it in subsequent
dune build
runs. (#9327, fix #6575, @emillon)
Fix a problem with the doc-new target where transitive dependencies were missed during compile. This leads to missing expansions in the output docs. (#9955, @jonludlam)
coq: fix performance regression in coqdep unescaping (#10115, fixes #10088, @ejgallego, thanks to Dan Christensen for the report)
coq: memoize coqdep parsing, this will reduce build times for Coq users, in particular for those with many .v files (#10116, @ejgallego, see also #10088)
on Windows, use an unicode-aware version of CreateProcess
to avoid crashes
when paths contains non-ascii characters. (#10212, fixes #10180, @emillon)
CHANGES:
Introduce a (dynamic_include ..)
stanza. This is like (include foo)
but
allows foo
to be the target of a rule. Currently, there are some
limitations on the stanzas that can be generated. For example, public
executables, libraries are currently forbidden. (#9913, @rgrinberg)
Introduce $ dune promotion list
to print the list of available promotions.
(#9705, @moyodiallo)
If Sherlodoc is installed, add a search bar in generated HTML docs (#9772, @EmileTrotignon)
Add only_sources
field to copy_files
stanza (#9827, fixes #9709,
@jchavarri)
The (foreign_library)
stanza now supports the (enabled_if)
field. (#9914,
@nojb)
Fix $ dune install -p
incorrectly recognizing packages that are supposed to
be filtered (#9879, fixes #4814, @rgrinberg)
subst: correctly handle opam files in opam/ subdirectory (#9895, fixes #9862, @emillon)
Odoc private rules are not set up if a library is not available due to
enabled_if
(#9897, @rgrinberg and @jchavarri)
When dune language 3.14 is enabled, resolve the binary in (run %{bin:..} ..)
from where the binary is built. (#9708, @rgrinberg)
boot: remove single-command bootstrap. This was an alternative bootstrap strategy that was used in certain conditions. Removal makes the bootstrap a bit slower on Linux when only a single core is available, but bootstrap is now reproducible in all cases. (#9735, fixes #9507, @emillon)
CHANGES:
Introduce a (dynamic_include ..)
stanza. This is like (include foo)
but
allows foo
to be the target of a rule. Currently, there are some
limitations on the stanzas that can be generated. For example, public
executables, libraries are currently forbidden. (#9913, @rgrinberg)
Introduce $ dune promotion list
to print the list of available promotions.
(#9705, @moyodiallo)
If Sherlodoc is installed, add a search bar in generated HTML docs (#9772, @EmileTrotignon)
Add only_sources
field to copy_files
stanza (#9827, fixes #9709,
@jchavarri)
The (foreign_library)
stanza now supports the (enabled_if)
field. (#9914,
@nojb)
Fix $ dune install -p
incorrectly recognizing packages that are supposed to
be filtered (#9879, fixes #4814, @rgrinberg)
subst: correctly handle opam files in opam/ subdirectory (#9895, fixes #9862, @emillon)
Odoc private rules are not set up if a library is not available due to
enabled_if
(#9897, @rgrinberg and @jchavarri)
When dune language 3.14 is enabled, resolve the binary in (run %{bin:..} ..)
from where the binary is built. (#9708, @rgrinberg)
boot: remove single-command bootstrap. This was an alternative bootstrap strategy that was used in certain conditions. Removal makes the bootstrap a bit slower on Linux when only a single core is available, but bootstrap is now reproducible in all cases. (#9735, fixes #9507, @emillon)
CHANGES:
Fix performance regression for incremental builds (#9769, fixes #9738, @rgrinberg)
Fix dune ocaml top-module
to correctly handle absolute paths. (#8249, fixes
#7370, @Alizter)
subst: ignore broken symlinks when looking at source files (#9810, fixes #9593, @emillon)
subst: do not fail on 32-bit systems when large files are encountered. Just log a warning in this case. (#9811, fixes #9538, @emillon)
boot: sort directory entries in readdir. This makes the dune binary reproducible in terms of filesystem order. (#9861, fixes #9794, @emillon)