-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[new release] dune (15 packages) (3.8.0~alpha1) #23683
Conversation
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. (ocaml/dune#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. (ocaml/dune#7512, @rgrinberg) - Load the host context `findlib.conf` when cross-compiling (ocaml/dune#7428, fixes ocaml/dune#1701, @rgrinberg, @anmonteiro) - Resolve `ppx_runtime_libraries` in the target context when cross compiling (ocaml/dune#7450, fixes ocaml/dune#2794, @anmonteiro) - Use `$PKG_CONFIG`, when set, to find the `pkg-config` binary (ocaml/dune#7469, fixes ocaml/dune#2572, @anmonteiro) - Preliminary support for Coq compiled intefaces (`.vos` files) enabled via `(mode vos)` in `coq.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. (ocaml/dune#7406, @rlepigre) - Fix dune crashing on MacOS in watch mode whenever `$PATH` contains `$PWD` (ocaml/dune#7441, fixes ocaml/dune#6907, @rgrinberg) - Fix `dune install` when cross compiling (ocaml/dune#7410, fixes ocaml/dune#6191, @anmonteiro, @rizo) - Find `pps` dependencies in the host context when cross-compiling, (ocaml/dune#7410, fixes ocaml/dune#4156, @anmonteiro) - Dune in watch mode no longer builds concurrent rules in serial (ocaml/dune#7395 @rgrinberg, @jchavarri) - `dune coq top` now correctly respects the project root when called from a subdirectory. However, absolute filenames passed to `dune coq top` are no longer supported (due to being buggy) (ocaml/dune#7357, fixes ocaml/dune#7344, @rlepigre and @Alizter) - Added a `--no-build` option to `dune coq top` for avoiding rebuilds (ocaml/dune#7380, fixes ocaml/dune#7355, @Alizter) - RPC: Ignore SIGPIPE when clients suddenly disconnect (ocaml/dune#7299, ocaml/dune#7319, fixes ocaml/dune#6879, @rgrinberg) - Always clean up the UI on exit. (ocaml/dune#7271, fixes ocaml/dune#7142 @rgrinberg) - Bootstrap: remove reliance on shell. Previously, we'd use the shell to get the number of processors. (ocaml/dune#7274, @rgrinberg) - Bootstrap: correctly detect the number of processors by allowing `nproc` to be looked up in `$PATH` (ocaml/dune#7272, @Alizter) - Speed up file copying on macos by using `clonefile` when available (@rgrinberg, ocaml/dune#7210) - Adds support for loading plugins in toplevels (ocaml/dune#6082, fixes ocaml/dune#6081, @ivg, @richardlford) - Support commands that output 8-bit and 24-bit colors in the terminal (ocaml/dune#7188, @Alizter) - Speed up rule generation for libraries and executables with many modules (ocaml/dune#7187, @jchavarri) - Add `--watch-exclusions` to Dune build options (ocaml/dune#7216, @jonahbeckford) - Do not re-render UI on every frame if the UI doesn't change (ocaml/dune#7186, fix ocaml/dune#7184, @rgrinberg) - Make coq_db creation in scope lazy (@ejgallego, ocaml/dune#7133) - Non-user proccesses such as version control or config checking are now run silently. (ocaml/dune#6994, fixes ocaml/dune#4066, @Alizter) - Add the `--display-separate-messages` flag to separate the error messages produced by commands with a blank line. (ocaml/dune#6823, fixes ocaml/dune#6158, @esope) - Accept the Ordered Set Language for the `modes` field in `library` stanzas (ocaml/dune#6611, @anmonteiro). - dune install now respects --display quiet mode (ocaml/dune#7116, fixes ocaml/dune#4573, fixes ocaml/dune#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. (ocaml/dune#7151, @nojb) - Allow the main module of a library with `(stdlib ...)` to depend on other libraries (ocaml/dune#7154, @anmonteiro). - Bytecode executables built for JSOO are linked with `-noautolink` and no longer depend on the shared stubs of their dependent libraries (ocaml/dune#7156, @nojb) - Added a new user action `(concurrent )` which is like `(progn )` but runs the actions concurrently. (ocaml/dune#6933, @Alizter) - Allow `(stdlib ...)` to be used with `(wrapped false)` in library stanzas (ocaml/dune#7139, @anmonteiro). - Allow parallel execution of inline tests partitions (ocaml/dune#7012, @hhugo) - Support `(link_flags ...)` in `(cinaps ...)` stanza. (ocaml/dune#7423, fixes ocaml/dune#7416, @nojb) - Allow `(package ...)` in any position within `(rule ...)` stanza (ocaml/dune#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. (ocaml/dune#7547, @rgrinberg)
This one is not intended for merging. I'll have a look through the failures once CI completes so please leave it open. Thanks |
Semi-related question: Can this be switched to a draft to prevent accidental merging or does the OPAM-CI skip such PRs? |
Good idea, I just did that. I think that opam-repo-ci ignores draft-ness (or at least when it's switched later). |
Indeed. It doesn't do anything particular whether it's a draft or not. |
On first glance the CI result looks fine |
Yes, there are no new failures compared to 3.7.1. So I'm closing this. Thanks! |
XDG Base Directory Specification
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.
(test: demonstrate crash in link-time codegen dune#7556, @anmonteiro)
Introduce a
public_headers
field on libraries. This field is likeinstall_c_headers
, but it allows to choose the extension and choose thepaths for the installed headers. (fix: preserve directory hierarchy for installed headers dune#7512, @rgrinberg)
Load the host context
findlib.conf
when cross-compiling (x-compilation: take host findlib.conf into account when cross-compiling dune#7428, fixesDune doesn't use ocamlfind config in default context dune#1701, @rgrinberg, @anmonteiro)
Resolve
ppx_runtime_libraries
in the target context when cross compiling(test(x-compilation): demonstrate overlap check failure with ppx_runtime_libraries dune#7450, fixes Add a test exposing a bug in dependency cycle detection dune#2794, @anmonteiro)
Use
$PKG_CONFIG
, when set, to find thepkg-config
binary (dune-configurator: respect $PKG_CONFIG dune#7469, fixesHow to use
configurator
to fetchpkg-config
for the cross-compiling env? dune#2572, @anmonteiro)Preliminary support for Coq compiled intefaces (
.vos
files) enabled via(mode vos)
incoq.theory
stanzas. This can be used in combination withdune coq top
to obtain fast re-building of dependencies (with no checkingof proofs) prior to stepping into a file. (Support for Coq "vos" builds dune#7406, @rlepigre)
Fix dune crashing on MacOS in watch mode whenever
$PATH
contains$PWD
(fix #6907 dune#7441, fixes
dune build --watch
crashes when it detects filesystem change on macOS 13.1 on some Apple Silicon machines dune#6907, @rgrinberg)Fix
dune install
when cross compiling (test(x-compilation): demonstrate install files not found dune#7410, fixes How to install custom sites when cross-compiling dune#6191, @anmonteiro,@rizo)
Find
pps
dependencies in the host context when cross-compiling, (test(x-compilation): demonstrate install files not found dune#7410,fixes ppxs are built in the target context in cross-compilation settings dune#4156, @anmonteiro)
Dune in watch mode no longer builds concurrent rules in serial (fix: disable cutoff where it hurts concurrency dune#7395
@rgrinberg, @jchavarri)
dune coq top
now correctly respects the project root when called from asubdirectory. However, absolute filenames passed to
dune coq top
are nolonger supported (due to being buggy) (Fix for 7344. dune#7357, fixes The "dune coq top" is unreliable when not called from the workspace root dune#7344, @rlepigre and
@Alizter)
Added a
--no-build
option todune coq top
for avoiding rebuilds (dune coq top: add --no-build option to avoid building dependencies dune#7380,fixes Option to make "dune coq top" more permissive dune#7355, @Alizter)
RPC: Ignore SIGPIPE when clients suddenly disconnect (fix(rpc): ignore sigpipe on macos clients dune#7299, fix(rpc): ignore sigpipe on linux dune#7319, fixes
refactor(rules): ues [Option.map] dune#6879, @rgrinberg)
Always clean up the UI on exit. (fix(console): clean up console on exit dune#7271, fixes Missing newline in "dune exec" dune#7142 @rgrinberg)
Bootstrap: remove reliance on shell. Previously, we'd use the shell to get
the number of processors. (feature(boot): remove reliance on shell dune#7274, @rgrinberg)
Bootstrap: correctly detect the number of processors by allowing
nproc
to belooked up in
$PATH
(fix(boot): fix env vars when finding out concurrency dune#7272, @Alizter)Speed up file copying on macos by using
clonefile
when available(@rgrinberg, feature: use clonefile on macos dune#7210)
Adds support for loading plugins in toplevels (adds support for loading plugins in toplevels dune#6082, fixes Dune Site Plugins do not work in toplevel dune#6081,
@ivg, @richardlford)
Support commands that output 8-bit and 24-bit colors in the terminal (feature(ansi_color): add support for 8 and 24 bit color codes dune#7188,
@Alizter)
Speed up rule generation for libraries and executables with many modules
(perf: run parse_compilation_units once dune#7187, @jchavarri)
Add
--watch-exclusions
to Dune build options (User-configured watch exclusions dune#7216, @jonahbeckford)Do not re-render UI on every frame if the UI doesn't change (fix: do not re-render unless needed dune#7186, fix
Dune watch (and probably dune output in general) causes significant GPU power draw due to unnecessary idle refreshes dune#7184, @rgrinberg)
Make coq_db creation in scope lazy (@ejgallego, [scope] [coq] Make Coq_lib.DB creation lazy dune#7133)
Non-user proccesses such as version control or config checking are now run
silently. (feature: Silence display in non-user processes dune#6994, fixes minor usability issues with cram tests dune#4066, @Alizter)
Add the
--display-separate-messages
flag to separate the error messagesproduced by commands with a blank line. (Add a new line at the end of error reports (#6823 dune#6823, fixes usability: include a blank line between separate compiler messages (errors, warnings) dune#6158, @esope)
Accept the Ordered Set Language for the
modes
field inlibrary
stanzas(feature: make
modes
field an Ordered_set_lang instance dune#6611, @anmonteiro).dune install now respects --display quiet mode (fix(install): respect display options dune#7116, fixes Dune install doesn't respect --display=quiet [and maybe other args] dune#4573, fixes
Quiet installation dune#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. (Enable use of stublibs of _installed_ libraries dune#7151, @nojb)
Allow the main module of a library with
(stdlib ...)
to depend on otherlibraries (stdlib: include dependencies for stdlib alias, decode correctly dune#7154, @anmonteiro).
Bytecode executables built for JSOO are linked with
-noautolink
and nolonger depend on the shared stubs of their dependent libraries (bc-for-jsoo: use -noautolink, do not depend on stublibs dune#7156, @nojb)
Added a new user action
(concurrent )
which is like(progn )
but runs theactions concurrently. (feature: concurrency action dune#6933, @Alizter)
Allow
(stdlib ...)
to be used with(wrapped false)
in library stanzas(test: demonstrate crash in modules.ml when
(stdlib .. )
used with(wrapped false)
dune#7139, @anmonteiro).Allow parallel execution of inline tests partitions (Run inline tests in parallel dune#7012, @hhugo)
Support
(link_flags ...)
in(cinaps ...)
stanza. (Add (link_flags ...) to (cinaps) stanza dune#7423, fixes cinaps stanza should support link_flags dune#7416,@nojb)
Allow
(package ...)
in any position within(rule ...)
stanza (fix: Allowpackage
in any location inrule
dune#7445,@Leonidas-from-XIV)
Always include
opam
files in the generated.install
file. Previously, itwould not be included whenever
(generate_opam_files true)
was set and the.install
file wasn't yet generated. (fix: correctly generate .install files dune#7547, @rgrinberg)