Skip to content

Releases: ocaml/dune

3.8.2

16 Jun 12:27
e6a7ca6
Compare
Choose a tag to compare

CHANGES:

  • Switch back to threaded console for all systems; fix unresponsive console on
    Windows (#7906, @nojb)

  • Respect -p / --only-packages for melange.emit artifacts (#7849, @anmonteiro)

  • Fix scanning of Coq installed files (@ejgallego, reported by
    @palmskog, #7895 , fixes #7893)

  • Fix RPC buffer corruption issues due to multi threading. This issue was only
    reproducible with large RPC payloads (#7418)

  • Fix printing errors from excerpts whenever character offsets span multiple
    lines (#7950, fixes #7905, @rgrinberg)

3.8.1

05 Jun 16:38
a340b80
Compare
Choose a tag to compare

CHANGES:

  • Fix a crash when using a version of Coq < 8.13 due to the native compiler
    config variable being missing. We now explicitly default to (mode vo) for
    these older versions of Coq. (#7847, fixes #7846, @Alizter)

  • Duplicate installed Coq theories are now allowed with the first appearing in
    COQPATH being preferred. This is inline with Coq's loadpath semantics. This
    fixes an issue with install layouts based on COQPATH such as those found in
    nixpkgs. (#7790, @Alizter)

  • Revert #7415 and #7450 (Resolve ppx_runtime_libraries in the target context when
    cross compiling) (#7887, fixes #7875, @emillon)

3.8.0

23 May 09:43
d62f4c3
Compare
Choose a tag to compare

CHANGES:

  • Fix string quoting in the json file written by --trace-file (#7773,
    @rleshchinskiy)

  • Read pkg-config arguments from the PKG_CONFIG_ARGN environment variable
    (#1492, #7734, @anmonteiro)

  • Correctly set MANPATH in dune exec. Previously, we would use the bin/
    directory of the context. (#7655, @rgrinberg)

  • Allow overriding the ocaml binary with findlib configuration (#7648,
    @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 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)

  • Add a coqdoc_flags field to the coq.theory stanza allowing the user to
    pass extra arguments to coqdoc. (#7676, fixes #7954 @Alizter)

  • Resolve ppx_runtime_libraries in the target context when cross compiling
    (#7450, fixes #2794, @anmonteiro)

  • Use $PKG_CONFIG, when set, to find the pkg-config binary (#7469, fixes
    #2572, @anmonteiro)

  • 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)

  • 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. (#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 can now detect Coq theories from outside the workspace. This allows for
    composition with installed theories (not necessarily installed with Dune).
    (#7047, @Alizter, @ejgallego)

  • 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) (#7357, fixes #7344, @rlepigre and
    @Alizter)

  • Added a --no-build option to dune 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 in library 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)

  • 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)

  • 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)

  • Bump minimum version of the dune language for the melange syntax extension
    from 3.7 to 3.8 (#7665, @jchavarri)

3.8.0~alpha3

16 May 08:57
Compare
Choose a tag to compare

CHANGES:

  • merlin: ignore instrumentation settings for preprocessing. (#7606, fixes
    #7465, @Alizter)

  • Add a coqdoc_flags field to the coq.theory stanza allowing the user to
    pass extra arguments to coqdoc. (#7676, fixes #7954 @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)

  • Bump minimum version of the dune language for the melange syntax extension
    from 3.7 to 3.8 (#7665, @jchavarri)

3.8.0~alpha2

03 May 13:25
Compare
Choose a tag to compare

CHANGES:

  • Correctly set MANPATH in dune exec. Previously, we would use the bin/
    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

18 Apr 08:26
Compare
Choose a tag to compare

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 the pkg-config binary (#7469, fixes
    #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. (#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 to dune coq top are no
    longer supported (due to being buggy) (#7357, fixes #7344, @rlepigre and
    @Alizter)

  • Added a --no-build option to dune 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 in library 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

04 Apr 11:35
e2b2d6a
Compare
Choose a tag to compare

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

21 Feb 15:43
Compare
Choose a tag to compare
  • Doc: prevent the use of sphinx 6. On readthedocs, this prevents the necessary
    JS from being loaded.

3.7.0

17 Feb 14:44
d3d628f
Compare
Choose a tag to compare

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, as coqdep
    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 of dune 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 in dune 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# and copy_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 affect ocamldep 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 as dune files in Emacs (#7061,
    @ilankri)

  • Add native support for polling mode on Windows (#7010, @yams-yams, @nojb)

3.7.0~alpha3

13 Feb 15:48
Compare
Choose a tag to compare

CHANGES:

  • Add map_workspace_root dune-project stanza to allow disabling of
    mapping of workspace root to /workspace_root. (#6988, fixes #6929,
    @richardlford)