Skip to content

Tags: ocaml/dune

Tags

3.17.1

Toggle 3.17.1's commit message
Release 3.17.1

CHANGES:

- When a library declares `(no_dynlink)`, then the `.cmxs` file for it
  is no longer built. (#11176, @nojb)

- Fix bug that could result in corrupted file copies by Dune, for example when
  using the `copy_files#` stanza or the `copy#` action. (@nojb, #11194, fixes
  #11193)

- Remove useless error message when running `$ dune subst` in empty projects.
  (@rgrinberg, #11204, fixes #11200)

3.17.0

Toggle 3.17.0's commit message
Release 3.17.0

CHANGES:

- Show the context name for errors happening in non-default contexts.
  (#10414, fixes #10378, @jchavarri)

- Correctly declare dependencies of indexes so that they are rebuilt when
  needed. (#10623, @voodoos)

- Don't depend on coq-stdlib being installed when expanding variables
  of the `coq.version` family (#10631, fixes #10629, @gares)

- Error out if no files are found when using `copy_files`. (#10649, @jchavarri)

- Re_export dune-section private library in the dune-site library stanza,
  in order to avoid failure when generating and building sites modules
  with implicit_transitive_deps = false. (#10650, fixes #9661, @MA0100)

- Expect test fixes: support multiple modes and fix dependencies when there is
  a custom runner (#10671, @vouillon)

- In a `(library)` stanza with `(extra_objects)` and `(foreign_stubs)`, avoid
  double linking the extra object files in the final executable.
  (#10783, fixes #10785, @nojb)

- Map `(re_export)` library dependencies to the `exports` field in `META` files,
  and vice-versa. This field was proposed in to
  https://discuss.ocaml.org/t/proposal-a-new-exports-field-in-findlib-meta-files/13947.
  The field is included in Dune-generated `META` files only when the Dune lang
  version is >= 3.17.
  (#10831, fixes #10830, @nojb)

- Fix staged pps preprocessors on Windows (which were not working at all
  previously) (#10869, fixes #10867, @nojb)

- Fix `dune describe` when an executable is disabled with `enabled_if`.
  (#10881, fixes #10779, @moyodiallo)

- Fix an issue where C stubs would be rebuilt whenever the stderr of Dune was
  redirected. (#10883, fixes #10882, @nojb)

- Fix the URL opened by the command `dune ocaml doc`. (#10897, @gridbugs)

- Fix the file referred to in the error/warning message displayed due to the
  dune configuration version not supporting a particular configuration
  stanza in use. (#10923, @H-ANSEN)

- Fix `enabled_if` when it uses `env` variable. (#10936, fixes #10905, @moyodiallo)

- Fix exec -w for relative paths with --root argument (#10982, @gridbugs)

- Do not ignore the `(locks ..)` field in the `test` and `tests` stanza
  (#11081, @rgrinberg)

- Tolerate files without extension when generating merlin rules.
  (#11128, @anmonteiro)

- Make Merlin/OCaml-LSP aware of "hidden" dependencies used by
  `(implicit_transitive_deps false)` via the `-H` compiler flag. (#10535, @voodoos)

- Add support for the -H flag (introduced in OCaml compiler 5.2) in dune
  (requires lang versions 3.17). This adaptation gives
  the correct semantics for `(implicit_transitive_deps false)`.
  (#10644, fixes #9333, ocsigen/tyxml#274, #2733, #4963, @MA0100)

- Add support for specifying Gitlab organization repositories in `source`
  stanzas (#10766, fixes #6723, @H-ANSEN)

- New option to control jsoo sourcemap generation in env and executable stanza
  (#10777, fixes #10673, @hhugo)

- One can now control jsoo compilation_mode inside an executable stanza
  (#10777, fixes #10673, @hhugo)

- Add support for specifying default values of the `authors`, `maintainers`, and
  `license` stanzas of the `dune-project` file via the dune config file. Default
  values are set using the `(project_defaults)` stanza (#10835, @H-ANSEN)

- Add names to source tree events in performance traces (#10884, @jchavarri)

- Add `codeberg` as an option for defining project sources in dune-project
  files. For example, `(source (codeberg user/repo))`. (#10904, @nlordell)

- `dune runtest` can now run individual tests with `dune runtest mytest.t`
  (#11041, @Alizter).

- Wasm_of_ocaml support (#11093, @vouillon)

- Add a `coqdep_flags` field to the `coq` field of the `env` stanza, and to the `coq.theory` stanza, allowing to configure `coqdep` flags.
  (#11094, @rlepigre)

- Remove all remnants of the experimental `patch-back-source-tree`. (#10771,
  @rgrinberg)

- Change the preset value for author and maintainer fields in the
  `dune-project` file to encourage including emails. (#10848, @punchagan)

- Tweak the preset value for tags in the `dune-project` file to hint at topics
  not having a special meaning. (#10849, @punchagan)

- Change some colors to improve readability in light-mode terminals
  (#10890, @gridbugs)

- Forward the linkall flag to jsoo in whole program compilation as well (#10935, @hhugo)

- Configurator uses `pkgconf` as pkg-config implementation when available
  and forwards it the `target` of `ocamlc -config`. (#10937, @pirbo)

- Enable Dune cache by default. Add a new Dune cache setting
  `enabled-except-user-rules`, which enables the Dune cache, but excludes
  user-written rules from it. This is a conservative choice that can avoid
  breaking rules whose dependencies are not correctly specified. This is the
  current default. (#10944, #10710, @nojb, @ElectreAAS)

- Do not add `dune` dependency in `dune-project` when creating projects with
  `dune init proj`. The Dune dependency is implicitely added when generating
  opam files (#11129, @Leonidas-from-XIV)

3.17.0_alpha0

Toggle 3.17.0_alpha0's commit message
Release 3.17.0~alpha0

CHANGES:

- Show the context name for errors happening in non-default contexts.
  (#10414, fixes #10378, @jchavarri)

- Correctly declare dependencies of indexes so that they are rebuilt when
  needed. (#10623, @voodoos)

- Don't depend on coq-stdlib being installed when expanding variables
  of the `coq.version` family (#10631, fixes #10629, @gares)

- Error out if no files are found when using `copy_files`. (#10649, @jchavarri)

- Re_export dune-section private library in the dune-site library stanza,
  in order to avoid failure when generating and building sites modules
  with implicit_transitive_deps = false. (#10650, fixes #9661, @MA0100)

- Expect test fixes: support multiple modes and fix dependencies when there is
  a custom runner (#10671, @vouillon)

- In a `(library)` stanza with `(extra_objects)` and `(foreign_stubs)`, avoid
  double linking the extra object files in the final executable.
  (#10783, fixes #10785, @nojb)

- Map `(re_export)` library dependencies to the `exports` field in `META` files,
  and vice-versa. This field was proposed in to
  https://discuss.ocaml.org/t/proposal-a-new-exports-field-in-findlib-meta-files/13947.
  The field is included in Dune-generated `META` files only when the Dune lang
  version is >= 3.17.
  (#10831, fixes #10830, @nojb)

- Fix staged pps preprocessors on Windows (which were not working at all
  previously) (#10869, fixes #10867, @nojb)

- Fix `dune describe` when an executable is disabled with `enabled_if`.
  (#10881, fixes #10779, @moyodiallo)

- Fix an issue where C stubs would be rebuilt whenever the stderr of Dune was
  redirected. (#10883, fixes #10882, @nojb)

- Format long lists in s-expressions to fill the line instead of formatting
  them in a vertical way (#10892, fixes #10860, @nojb)

- Fix the URL opened by the command `dune ocaml doc`. (#10897, @gridbugs)

- Fix the file referred to in the error/warning message displayed due to the
  dune configuration version not supporting a particular configuration
  stanza in use. (#10923, @H-ANSEN)

- Fix `enabled_if` when it uses `env` variable. (#10936, fixes #10905, @moyodiallo)

- Fix exec -w for relative paths with --root argument (#10982, @gridbugs)

- Do not ignore the `(locks ..)` field in the `test` and `tests` stanza
  (#11081, @rgrinberg)

- Tolerate files without extension when generating merlin rules.
  (#11128, @anmonteiro)

- Make Merlin/OCaml-LSP aware of "hidden" dependencies used by
  `(implicit_transitive_deps false)` via the `-H` compiler flag. (#10535, @voodoos)

- Add support for the -H flag (introduced in OCaml compiler 5.2) in dune
  (requires lang versions 3.17). This adaptation gives
  the correct semantics for `(implicit_transitive_deps false)`.
  (#10644, fixes #9333, ocsigen/tyxml#274, #2733, #4963, @MA0100)

- Add support for specifying Gitlab organization repositories in `source`
  stanzas (#10766, fixes #6723, @H-ANSEN)

- New option to control jsoo sourcemap generation in env and executable stanza
  (#10777, fixes #10673, @hhugo)

- One can now control jsoo compilation_mode inside an executable stanza
  (#10777, fixes #10673, @hhugo)

- Add support for specifying default values of the `authors`, `maintainers`, and
  `license` stanzas of the `dune-project` file via the dune config file. Default
  values are set using the `(project_defaults)` stanza (#10835, @H-ANSEN)

- Add names to source tree events in performance traces (#10884, @jchavarri)

- Add `codeberg` as an option for defining project sources in dune-project
  files. For example, `(source (codeberg user/repo))`. (#10904, @nlordell)

- `dune runtest` can now run individual tests with `dune runtest mytest.t`
  (#11041, @Alizter).

- Wasm_of_ocaml support (#11093, @vouillon)

- Add a `coqdep_flags` field to the `coq` field of the `env` stanza, and to the `coq.theory` stanza, allowing to configure `coqdep` flags.
  (#11094, @rlepigre)

- Remove all remnants of the experimental `patch-back-source-tree`. (#10771,
  @rgrinberg)

- Change the preset value for author and maintainer fields in the
  `dune-project` file to encourage including emails. (#10848, @punchagan)

- Tweak the preset value for tags in the `dune-project` file to hint at topics
  not having a special meaning. (#10849, @punchagan)

- Change some colors to improve readability in light-mode terminals
  (#10890, @gridbugs)

- Forward the linkall flag to jsoo in whole program compilation as well (#10935, @hhugo)

- Configurator uses `pkgconf` as pkg-config implementation when available
  and forwards it the `target` of `ocamlc -config`. (#10937, @pirbo)

- Enable Dune cache by default. Add a new Dune cache setting
  `enabled-except-user-rules`, which enables the Dune cache, but excludes
  user-written rules from it. This is a conservative choice that can avoid
  breaking rules whose dependencies are not correctly specified. This is the
  current default. (#10944, #10710, @nojb, @ElectreAAS)

- Do not add `dune` dependency in `dune-project` when creating projects with
  `dune init proj`. The Dune dependency is implicitely added when generating
  opam files (#11129, @Leonidas-from-XIV)

3.16.1

Toggle 3.16.1's commit message
Release 3.16.1

CHANGES:

- Call the C++ compiler with `-std=c++11` when using OCaml >= 5.0
  (#10962, @kit-ty-kate)

3.16.0

Toggle 3.16.0's commit message
Release 3.16.0

CHANGES:

- allow libraries with the same `(name ..)` in projects as long as they don't
  conflict during resolution (via `enabled_if`). (#10307, @anmonteiro,
  @jchavarri)

- `dune describe pp` now finds the exact module and the stanza it belongs to,
  instead of guessing the name of the preprocessed file. (#10321, @anmonteiro)

- Print the result of `dune describe pp` with the respective dialect printer.
  (#10322, @anmonteiro)

- Add new flag `--context` to `dune ocaml-merlin`, which allows to select a
  Dune context when requesting Merlin config. Add `dune describe contexts`
  subcommand. Introduce a field `generate_merlin_rules` for contexts declared
  in the workspace, that allows to optionally produce Merlin rules for other
  contexts besides the one selected for Merlin (#10324, @jchavarri)

- melange: add include paths for private library `.cmj` files during JS
  emission. (#10416, @anmonteiro)

- `dune ocaml-merlin`: communicate additional directives `SOURCE_ROOT`,
  `UNIT_NAME` (the actual name with wrapping) and `INDEX` with the paths to the
  index(es). (#10422, @voodoos)

- Add a new alias `@ocaml-index` that uses the `ocaml-index` binary to generate
  indexes that can be read by tools such as Merlin to provide project-wide
  references search. (#10422, @voodoos)

- merlin: add optional `(merlin_reader CMD)` construct to `(dialect)` stanza to
  configure a merlin reader (#8567, @andreypopp)

- melange: treat private libraries with `(package ..)` as public libraries,
  fixing an issue where `import` paths were wrongly emitted. (#10415,
  @anmonteiro)

- install `.glob` files for Coq theories too (#10602, @ejgallego)

- Don't try to document non-existent libraries in doc-new target (#10319, fixes
  #10056, @jonludlam)

- Make `dune-site`'s `load_all` function look for `META` files so that it
  doesn't fail on empty directories in the plugin directory (#10458, fixes
  #10457, @shym)

- Fix incorrect warning for libraries defined inside non-existant directories
  using `(subdir ..)` and used by executables using `dune-build-info` (#10525,
  @rgrinberg)

- Don't try to take build lock when running `coq top --no-build` (#10547, fixes
  #7671, @lzy0505)

- Make sure to truncate dune's lock file after locking and unlocking so that
  users cannot observe incorrect pid's (#10575, @rgrinberg)

- mdx: link mdx binary with `byte_complete`. This fixes `(libraries)` with
  foreign archives on Linux. (#10586, fixes #10582, @anmonteiro)

- virtual libraries: fix an issue where linking an executable involving several
  virtual libries would cause an error. (#10581, fixes #10460, @rgrinberg)

3.16.0_alpha2

Toggle 3.16.0_alpha2's commit message
Release 3.16.0~alpha2

CHANGES:

- Correctly declare dependencies of indexes so that they are rebuilt when
  needed. (#10623, @voodoos)

3.16.0_alpha1

Toggle 3.16.0_alpha1's commit message
Release 3.16.0~alpha1

CHANGES:

- allow libraries with the same `(name ..)` in projects as long as they don't
  conflict during resolution (via `enabled_if`). (#10307, @anmonteiro,
  @jchavarri)

- `dune describe pp` now finds the exact module and the stanza it belongs to,
  instead of guessing the name of the preprocessed file. (#10321, @anmonteiro)

- Print the result of `dune describe pp` with the respective dialect printer.
  (#10322, @anmonteiro)

- Add new flag `--context` to `dune ocaml-merlin`, which allows to select a
  Dune context when requesting Merlin config. Add `dune describe contexts`
  subcommand. Introduce a field `generate_merlin_rules` for contexts declared
  in the workspace, that allows to optionally produce Merlin rules for other
  contexts besides the one selected for Merlin (#10324, @jchavarri)

- melange: add include paths for private library `.cmj` files during JS
  emission. (#10416, @anmonteiro)

- `dune ocaml-merlin`: communicate additional directives `SOURCE_ROOT`,
  `UNIT_NAME` (the actual name with wrapping) and `INDEX` with the paths to the
  index(es). (#10422, @voodoos)

- Add a new alias `@ocaml-index` that uses the `ocaml-index` binary to generate
  indexes that can be read by tools such as Merlin to provide project-wide
  references search. (#10422, @voodoos)

- merlin: add optional `(merlin_reader CMD)` construct to `(dialect)` stanza to
  configure a merlin reader (#8567, @andreypopp)

- melange: treat private libraries with `(package ..)` as public libraries,
  fixing an issue where `import` paths were wrongly emitted. (#10415,
  @anmonteiro)

- install `.glob` files for Coq theories too (#10602, @ejgallego)

- Don't try to document non-existent libraries in doc-new target (#10319, fixes
  #10056, @jonludlam)

- Make `dune-site`'s `load_all` function look for `META` files so that it
  doesn't fail on empty directories in the plugin directory (#10458, fixes
  #10457, @shym)

- Fix incorrect warning for libraries defined inside non-existant directories
  using `(subdir ..)` and used by executables using `dune-build-info` (#10525,
  @rgrinberg)

- Don't try to take build lock when running `coq top --no-build` (#10547, fixes
  #7671, @lzy0505)

- Make sure to truncate dune's lock file after locking and unlocking so that
  users cannot observe incorrect pid's (#10575, @rgrinberg)

- mdx: link mdx binary with `byte_complete`. This fixes `(libraries)` with
  foreign archives on Linux. (#10586, fixes #10582, @anmonteiro)

3.15.3

Toggle 3.15.3's commit message
Release 3.15.3

CHANGES:

- Fix interpretation of `exists_if` predicate in `META` files of installed
  libraries containing more than one element. (#10564, fixes #10563, @dbuenzli,
  @nojb)

- Fix TSAN warning in wait4 stubs (#10554, fixes #10553, @emillon)

3.15.2

Toggle 3.15.2's commit message
Release 3.15.2

CHANGES:

- If no directory targets are defined, then do not evaluate `enabled_if`
  (#10442, @rgrinberg)

- Fix a bug where Coq projects were being rebuilt from scratch each time the
  dependency graph changed. (#10446, fixes #10149, @Alizter)

3.15.1

Toggle 3.15.1's commit message
Release 3.15.1

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)