OCaml Changelog

RSS

Read the latest releases and updates from the OCaml compiler, OCaml infrastructure and the OCaml Platform Tools.

Dune 1.1.0

On behalf of the dune team, I'm proud to announce the 1.1.0 release of dune. This release contains a few interesting features that I won't describe in this post, because I've already written a dedicated blog post about this release: http://rgrinberg.com/posts/dune-upcoming-1-1/

See full changelog
  • Fix lookup of command line specified files when --root is given. Previously, passing in --root in conjunction with --workspace or --config would not work correctly (#997, @rgrinberg)

  • Add support for customizing env nodes in workspace files. The env stanza is now allowed in toplevel position in the workspace file, or for individual contexts. This feature requires (dune lang 1.1) (#1038, @rgrinberg)

  • Add enabled_if field for aliases and tests. This field controls whether the test will be ran using a boolean expression language. (#819, @rgrinberg)

  • Make name, names fields optional when a public_name, public_names field is provided. (#1041, fix #1000, @rgrinberg)

  • Interpret X in --libdir X as relative to PREFIX when X is relative (#1072, fix #1070, @jeremiedimino)

  • Add support for multi directory libraries by writing (include_subdirs unqualified) (#1034, @jeremiedimino)

  • Add (staged_pps ...) to support staged ppx rewriters such as ones using the OCaml typer like ppx_import (#1080, fix #193, @jeremiedimino)

  • Use -opaque in the dev profile. This option trades off binary quality for compilation speed when compiling .cmx files. (#1079, fix #1058, @rgrinberg)

  • Fix placeholders in dune subst documentation (#1090, @emillon, thanks @trefis for the bug report)

  • Add locations to errors when a missing binary in PATH comes from a dune file (#1096, fixes #1095, @rgrinberg)

Dune 1.0.1

See full changelog
  • Fix parsing of %{lib:name:file} forms (#1022, fixes #1019, @diml)

Dune 1.0.0

It is my pleasure to announce the 1.0.0 release of Dune!

Dune is a built system for OCaml and Reason projects. It aims at building things fast and providing a smooth user experience.

Dune 1.0.0 is now available on github and in opam.

This is a big milestone for the project as it is the first release using the new Dune name that the community helped to choose. Dune started about a year and a half ago as the more narrow scoped Jbuilder and as since then proven itself to be the right tool for the job.

A big part of the work for this release was preparing the project for long-term support. Dune is the kind of project that will pretty much continue to evolve forever: it needs to keep up with the OCaml compiler evolving, development workflows changing, new kinds of tools with specific needs, etc... While doing so, it also needs to offer stability so that projects released now will continue to build with future versions of Dune.

Meeting these two constraints is a challenge. However, we had to do this for the renaming: we changed many things in Dune using what we learned from the Jbuilder experience. Still, Dune is able to understand and build Jbuilder projects. The mechanism used to support both Jbuilder and Dune projects is fully generic and will be the basis for future evolution.

You can find the full list of changes and bug fixes since Jbuilder 1.0+beta20 on the github release page. Following is an overview of some the new features:

  • General cleanup of the syntax: less parentheses, better behaved variables

  • Introduction of a dune.configurator library to help projects with C stubs detect and query the environment

  • General improvement of the default behavior: more parallelism by default, development mode by default

  • Better support for changing the defaults: it is now possible to set the default flags or change what dune build does by default

  • Support for setting the build directory

  • Better support for expectation tests on Windows

If you want to contribute to a new release announcement, check out the Contributing Guide on GitHub.