Releases: ocaml/dune
3.8.0~alpha2
CHANGES:
-
Correctly set
MANPATH
indune exec
. Previously, we would use thebin/
directory of the context. (#7655, @rgrinberg) -
Allow overriding the
ocaml
binary with findlib configuration (#7648,
@rgrinberg) -
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) -
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) -
Fix regression where Merlin was unable to handle filenames with uppercase
letters under Windows. (#7577, @nojb) -
On nix+macos, pass
-f
to 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) -
Introduce mdx stanza 0.4 requiring mdx >= 2.3.0 which updates the default
list of files to include*.mld
files (#7582, @Leonidas-from-XIV) -
Fix RPC server on Windows (used for OCaml-LSP). (#7666, @nojb)
-
In
(executable)
,(public_name -)
is now equivalent to no(public_name)
.
This is consistent with how(executables)
handles this field.
(#7576 , fixes #5852, @emillon) -
Change directory of odoc assets to
odoc.support
(was_odoc_support
) so
that it works with Github Pages out of the box. (#7588, fixes #7364,
@emillon)
3.8.0~alpha1
CHANGES:
-
When a rule's action is interrupted, delete any leftover directory targets.
This is consistent with how we treat file targets. (@rgrinberg, 7564) -
Fix plugin loading with findlib. The functionality was broken in 3.7.0.
(#7556, @anmonteiro) -
Introduce a
public_headers
field 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) -
Load the host context
findlib.conf
when cross-compiling (#7428, fixes
#1701, @rgrinberg, @anmonteiro) -
Resolve
ppx_runtime_libraries
in the target context when cross compiling
(#7450, fixes #2794, @anmonteiro) -
Use
$PKG_CONFIG
, when set, to find thepkg-config
binary (#7469, fixes
#2572, @anmonteiro) -
Preliminary support for Coq compiled intefaces (
.vos
files) enabled via
(mode vos)
incoq.theory
stanzas. This can be used in combination with
dune coq top
to obtain fast re-building of dependencies (with no checking
of proofs) prior to stepping into a file. (#7406, @rlepigre) -
Fix dune crashing on MacOS in watch mode whenever
$PATH
contains$PWD
(#7441, fixes #6907, @rgrinberg) -
Fix
dune install
when cross compiling (#7410, fixes #6191, @anmonteiro,
@rizo) -
Find
pps
dependencies in the host context when cross-compiling, (#7410,
fixes #4156, @anmonteiro) -
Dune in watch mode no longer builds concurrent rules in serial (#7395
@rgrinberg, @jchavarri) -
dune coq top
now correctly respects the project root when called from a
subdirectory. However, absolute filenames passed todune coq top
are no
longer supported (due to being buggy) (#7357, fixes #7344, @rlepigre and
@Alizter) -
Added a
--no-build
option todune coq top
for avoiding rebuilds (#7380,
fixes #7355, @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: remove reliance on shell. Previously, we'd use the shell to get
the number of processors. (#7274, @rgrinberg) -
Bootstrap: correctly detect the number of processors by allowing
nproc
to be
looked up in$PATH
(#7272, @Alizter) -
Speed up file copying on macos by using
clonefile
when available
(@rgrinberg, #7210) -
Adds support for loading plugins in toplevels (#6082, fixes #6081,
@ivg, @richardlford) -
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) -
Add
--watch-exclusions
to Dune build options (#7216, @jonahbeckford) -
Do not re-render UI on every frame if the UI doesn't change (#7186, fix
#7184, @rgrinberg) -
Make coq_db creation in scope lazy (@ejgallego, #7133)
-
Non-user proccesses such as version control or config checking are now run
silently. (#6994, fixes #4066, @Alizter) -
Add the
--display-separate-messages
flag to separate the error messages
produced by commands with a blank line. (#6823, fixes #6158, @esope) -
Accept the Ordered Set Language for the
modes
field inlibrary
stanzas
(#6611, @anmonteiro). -
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) -
Allow the main module of a library with
(stdlib ...)
to depend on other
libraries (#7154, @anmonteiro). -
Bytecode executables built for JSOO are linked with
-noautolink
and no
longer depend on the shared stubs of their dependent libraries (#7156, @nojb) -
Added a new user action
(concurrent )
which is like(progn )
but runs the
actions concurrently. (#6933, @Alizter) -
Allow
(stdlib ...)
to be used with(wrapped false)
in library stanzas
(#7139, @anmonteiro). -
Allow parallel execution of inline tests partitions (#7012, @hhugo)
-
Support
(link_flags ...)
in(cinaps ...)
stanza. (#7423, fixes #7416,
@nojb) -
Allow
(package ...)
in any position within(rule ...)
stanza (#7445,
@Leonidas-from-XIV) -
Always include
opam
files in the generated.install
file. Previously, it
would not be included whenever(generate_opam_files true)
was set and the
.install
file wasn't yet generated. (#7547, @rgrinberg)
3.7.1
CHANGES:
-
Fix segfault on MacOS when dune was being shutdown while in watch mode.
(#7312, fixes #6151, @gridbugs, @emillon) -
Fix preludes not being recorded as dependencies in the
(mdx)
stanza (#7109,
fixes #7077, @emillon). -
Pass correct flags when compiling
stdlib.ml
. (#7241, @emillon) -
Handle "Too many links" errors when using Dune cache on Windows. The fix in
3.7.0 for this same issue was not effective due to a typo. (#7472, @nojb)
3.7.0.post1
- Doc: prevent the use of sphinx 6. On readthedocs, this prevents the necessary
JS from being loaded.
3.7.0
CHANGES:
-
Allow running
$ dune exec
in watch mode (with the-w
flag). In watch mode,
$ dune exec
the executed binary whenever it is recompiled. (#6966,
@gridbugs) -
coqdep
is now called once per theory, instead of one time per Coq
file. This should significantly speed up some builds, ascoqdep
startup time is often heavy (#7048, @Alizter, @ejgallego) -
Add
map_workspace_root
dune-project stanza to allow disabling of
mapping of workspace root to/workspace_root
. (#6988, fixes #6929,
@richardlford) -
Fix handling of support files generated by odoc. (#6913, @jonludlam)
-
Fix parsing of OCaml errors that contain code excerpts with
...
in them.
(#7008, @rgrinberg) -
Pre-emptively clear screen in watch mode (#6987, fixes #6884, @rgrinberg)
-
Fix cross compilation configuration when a context with targets is itself a
host of another context (#6958, fixes #6843, @rgrinberg) -
Fix parsing of the
<=
operator in blang expressions ofdune
files.
Previously, the operator would be interpreted as<
. (#6928, @tatchi) -
Fix
--trace-file
output. Dune now emits a single complete event for every
executed process. Unterminated async events are no longer written. (#6892,
@rgrinberg) -
Fix preprocessing with
staged_pps
(#6748, fixes #6644, @rgrinberg) -
Use colored output with MDX when Dune colors are enabled.
(#6462, @MisterDA) -
Make
dune describe workspace
return consistent dependencies for
executables and for libraries. By default, compile-time dependencies
towards PPX-rewriters are from now not taken into account (but
runtime dependencies always are). Compile-time dependencies towards
PPX-rewriters can be taken into account by providing the
--with-pps
flag. (#6727, fixes #6486, @esope) -
Print missing newline after
$ dune exec
. (#6821, fixes #6700, @rgrinberg,
@Alizter) -
Fix binary corruption when installing or promoting in parallel (#6669, fixes
#6668, @edwintorok) -
Use colored output with GCC and Clang when compiling C stubs. The
flag-fdiagnostics-color=always
is added to the:standard
set of
flags. (#4083, @MisterDA) -
Fix the parsing of decimal and hexadecimal escape literals in
dune
,
dune-package
, and other dune s-expression based files (#6710, @shym) -
Report an error if
dune init ...
would create a "dune" file in a location
which already contains a "dune" directory (#6705, @gridbugs) -
Fix the parsing of alerts. They will now show up in diagnostics correctly.
(#6678, @rginberg) -
Fix the compilation of modules generated at link time when
implicit_transitive_deps
is enabled (#6642, @rgrinberg) -
Allow
$ dune utop
to load libraries defined in data only directories
defined using(subdir ..)
(#6631, @rgrinberg) -
Format dune files when they are named
dune-file
. This occurs when we enable
the alternative file names project option. (#6566, @rgrinberg) -
Move
$ dune ocaml-merlin -dump-config=$dir
to$ dune ocaml merlin dump-config $dir
. (#6547, @rgrinberg) -
Allow compilation rules to be impacted by
(env ..)
stanzas that modify the
environment or set binaries. (#6527, @rgrinberg) -
Coq native mode is now automatically detected by Dune starting with Coq lang
0.7.(mode native)
has been deprecated in favour of detection from the
configuration of Coq. (#6409, @Alizter) -
Print "Leaving Directory" whenever "Entering Directory" is printed. (#6419,
fixes #138, @cpitclaudel, @rgrinberg) -
Allow
$ dune ocaml dump-dot-merlin
to run in watch mode. Also this command
shouldn't print "Entering Directory" mesages. (#6497, @rgrinberg) -
dune clean
should no longer fail under Windows due to the inability to
remove the.lock
file. Also, bring the implementation of the global lock
under Windows closer to that of Unix. (#6523, @nojb) -
Remove "Entering Directory" messages for
$ dune install
. (#6513,
@rgrinberg) -
Stop passing
-q
flag indune coq top
, which allows for.coqrc
to be
loaded. (#6848, fixes #6847, @Alizter) -
Fix missing dependencies when detecting the kind of C compiler we're using
(#6610, fixes #6415, @emillon) -
Allow
(include_subdirs qualified)
for OCaml projects. (#6594, fixes #1084,
@rgrinberg) -
Accurately determine merlin configuration for all sources selected with
copy#
andcopy_files#
. The old heuristic of looking for a module in
parent directories is removed (#6594, @rgrinberg) -
Fix inline tests with js_of_ocaml and whole program compilation mode
enabled (#6645, @hhugo) -
Fix js_of_ocaml separate compilation rules when
--enable=effects
,--enable=use-js-string
or--toplevel
is used. (#6714, #6828, #6920, @hhugo) -
Fix js_of_ocaml separate compilation in presence of linkall (#6832, #6916, @hhugo)
-
Remove spurious build dir created when running
dune init proj ...
(#6707,
fixes #5429, @gridbugs) -
Allow
--sandbox
to affectocamldep
invocations. Previously, they were
wrongly marked as incompatible (#6749, @rgrinberg) -
Validate the command line arguments for
$ dune ocaml top-module
. This
command requires one positional argument (#6796, fixes #6793, @rgrinberg) -
Add a
dune cache size
command for displaying the size of the cache (#6638,
@Alizter) -
Fix dependency cycle when installing files to the bin section with
glob_files
(#6764, fixes #6708, @gridbugs) -
Handle "Too many links" errors when using Dune cache on Windows (#6993, @nojb)
-
Allow the
cinaps
stanza to set a custom alias. By default, if the alias is
not set then the cinaps actions will be attached to both@cinaps
and
@runtest
(#6991, @rgrinberg) -
Add
(using ctypes 0.3)
. When used, paths in(ctypes)
are interpreted
relative to where the stanza is defined. (#6883, fixes #5325, @emillon) -
Auto-detect
dune-workspace
files asdune
files in Emacs (#7061,
@ilankri) -
Add native support for polling mode on Windows (#7010, @yams-yams, @nojb)
3.7.0~alpha3
CHANGES:
- Add map_workspace_root dune-project stanza to allow disabling of
mapping of workspace root to /workspace_root. (#6988, fixes #6929,
@richardlford)
3.7.0~alpha2
CHANGES:
- Fix handling of support files generated by odoc. (#6913, @jonludlam)
3.7.0~alpha1
CHANGES:
-
Fix parsing of OCaml errors that contain code excerpts with
...
in them.
(#7008, @rgrinberg) -
Pre-emptively clear screen in watch mode (#6987, fixes #6884, @rgrinberg)
-
Fix cross compilation configuration when a context with targets is itself a
host of another context (#6958, fixes #6843, @rgrinberg) -
Fix parsing of the
<=
operator in blang expressions ofdune
files.
Previously, the operator would be interpreted as,
. (#6928, @tatchi) -
Fix
--trace-file
output. Dune now emits a single complete event for every
executed process. Unterminated async events are no longer written. (#6892,
@rgrinberg) -
Fix preprocessing with
staged_pps
(#6748, fixes #6644, @rgrinberg) -
Use colored output with MDX when Dune colors are enabled.
(#6462, @MisterDA) -
Make
dune describe workspace
return consistent dependencies for
executables and for libraries. By default, compile-time dependencies
towards PPX-rewriters are from now not taken into account (but
runtime dependencies always are). Compile-time dependencies towards
PPX-rewriters can be taken into account by providing the
--with-pps
flag. (#6727, fixes #6486, @esope) -
Print missing newline after
$ dune exec
. (#6821, fixes #6700, @rgrinberg,
@Alizter) -
Fix binary corruption when installing or promoting in parallel (#6669, fixes
#6668, @edwintorok) -
Use colored output with GCC and Clang when compiling C stubs. The
flag-fdiagnostics-color=always
is added to the:standard
set of
flags. (#4083, @MisterDA) -
Fix the parsing of decimal and hexadecimal escape literals in
dune
,
dune-package
, and other dune s-expression based files (#6710, @shym) -
Report an error if
dune init ...
would create a "dune" file in a location
which already contains a "dune" directory (#6705, @gridbugs) -
Fix the parsing of alerts. They will now show up in diagnostics correctly.
(#6678, @rginberg) -
Fix the compilation of modules generated at link time when
implicit_transitive_deps
is enabled (#6642, @rgrinberg) -
Allow
$ dune utop
to load libraries defined in data only directories
defined using(subdir ..)
(#6631, @rgrinberg) -
Format dune files when they are named
dune-file
. This occurs when we enable
the alternative file names project option. (#6566, @rgrinberg) -
Move
$ dune ocaml-merlin -dump-config=$dir
to$ dune ocaml merlin dump-config $dir
. (#6547, @rgrinberg) -
Allow compilation rules to be impacted by
(env ..)
stanzas that modify the
environment or set binaries. (#6527, @rgrinberg) -
Coq native mode is now automatically detected by Dune starting with Coq lang
0.7.(mode native)
has been deprecated in favour of detection from the
configuration of Coq. (#6409, @Alizter) -
Print "Leaving Directory" whenever "Entering Directory" is printed. (#6149,
fixes #138, @cpitclaudel, @rgrinberg) -
Allow
$ dune ocaml dump-dot-merlin
to run in watch mode. Also this command
shouldn't print "Entering Directory" mesages. (#6497, @rgrinberg) -
dune clean
should no longer fail under Windows due to the inability to
remove the.lock
file. Also, bring the implementation of the global lock
under Windows closer to that of Unix. (#6523, @nojb) -
Remove "Entering Directory" messages for
$ dune install
. (#6513,
@rgrinberg) -
Stop passing
-q
flag indune coq top
, which allows for.coqrc
to be
loaded. (#6848, fixes #6847, @Alizter) -
Fix missing dependencies when detecting the kind of C compiler we're using
(#6610, fixes #6415, @emillon) -
Allow
(include_subdirs qualified)
for OCaml projects. (#6594, fixes #1084,
@rgrinberg) -
Accurately determine merlin configuration for all sources selected with
copy#
andcopy_files#
. The old heuristic of looking for a module in
parent directories is removed (#6594, @rgrinberg) -
Fix inline tests with js_of_ocaml and whole program compilation mode
enabled (#6645, @hhugo) -
Fix js_of_ocaml separate compilation rules when
--enable=effects
,--enable=use-js-string
or--toplevel
is used. (#6714, #6828, #6920, @hhugo) -
Fix js_of_ocaml separate compilation in presence of linkall (#6832, #6916, @hhugo)
-
Remove spurious build dir created when running
dune init proj ...
(#6707,
fixes #5429, @gridbugs) -
Allow
--sandbox
to affectocamldep
invocations. Previously, they were
wrongly marked as incompatible (#6749, @rgrinberg) -
Validate the command line arguments for
$ dune ocaml top-module
. This
command requires one positional argument (#6796, fixes #6793, @rgrinberg) -
Add a
dune cache size
command for displaying the size of the cache (#6638,
@Alizter) -
Add 4.14.0 MSVC to CI (#6917, @jonahbeckford)
-
Fix dependency cycle when installing files to the bin section with
glob_files
(#6764, fixes #6708, @gridbugs) -
Handle "Too many links" errors when using Dune cache on Windows (#6993, @nojb)