On behalf of the dune team, I’m pleased to announce the release of dune 1.11.0. This release contains quite a few new interesting features such as custom dialects: anyone can define their own OCaml based syntax. Is anyone up to revive the revised syntax? I’d also like to highlight the the re-launch of variants feature in a sounder form, a new build-info
library that queries build information, and that dune init
can initialize an entire project. But of course, by far the most important thing is that the compiler’s colours are now back
1.11.0 (23/07/2019)
-
Don’t select all local implementations in
dune utop
. Instead, let the
default implementation selection do its job. (#2327, fixes #2323, @TheLortex,
review by @rgrinberg) -
Check that selected implementations (either by variants or default
implementations) are indeed implementations. (#2328, @TheLortex, review by
@rgrinberg) -
Don’t reserve the
Ppx
toplevel module name for ppx rewriters (#2242, @jeremiedimino) -
Redesign of the library variant feature according to the #2134 proposal. The
set of variants is now computed when the virtual library is installed.
Introducing a newexternal_variant
stanza. (#2169, fixes #2134, @TheLortex,
review by @jeremiedimino) -
Add proper line directives when copying
.cc
and.cxx
sources (#2275,
@rgrinberg) -
Fix error message for missing C++ sources. The
.cc
extension was always
ignored before. (#2275, @rgrinberg) -
Add
$ dune init project
subcommand to create project boilerplate according
to a common template. (#2185, fixes #159, @shonfeder) -
Allow to run inline tests in javascript with nodejs (#2266, @hhugo)
-
Build
ppx.exe
as compiling host binary. (#2286, fixes #2252, @toots, review
by @rgrinberg and @jeremiedimino) -
Add a
cinaps
extension and stanza for better integration with the
cinaps tool tool (#2269,
@jeremiedimino) -
Allow to embed build info in executables such as version and list
and version of statically linked libraries (#2224, @jeremiedimino) -
Set version in
META
anddune-package
files to the one read from
the vcs when no other version is available (#2224, @jeremiedimino) -
Add a variable
%{target}
to be used in situations where the context
requires at most one word, so%{targets}
can be confusing; stdout
redirections and “-o” arguments of various tools are the main use
case; also, introduce a separate fieldtarget
that must be used
instead oftargets
in those situations. (#2341, @aalekseyev) -
Fix dependency graph of wrapped_compat modules. Previously, the dependency on
the user written entry module was omitted. (#2305, @rgrinberg) -
Allow to promote executables built with an
executable
stanza
(#2379, @jeremiedimino) -
When instantiating an implementation with a variant, make sure it matches
virtual library’s list of known implementations. (#2361, fixes #2322,
@TheLortex, review by @rgrinberg) -
Add a variable
%{ignoring_promoted_rules}
that istrue
when
--ingore-promoted-rules
is passed on the command line and false
otherwise (#2382, @jeremiedimino) -
Fix a bug in
future_syntax
where the characters@
and&
were
not distinguished in the names of binding operators (let@
was the
same aslet&
) (#2376, @aalekseyev, @jeremiedimino) -
Workspaces with non unique project names are now supported. (#2377, fix #2325,
@rgrinberg) -
Improve opam generation to include the
dune
dependencies with the minimum
constraint set based on the dune language version specified in the
dune-project
file. (2383, @avsm) -
The order of fields in the generated opam file now follows order preferred in
opam-lib. (@avsm, #2380) -
Fix coloring of error messages from the compiler (@jeremiedimino, #2384)
-
Add warning
66
to default set of warnings starting for dune projects with
language verison >=1.11
(@rgrinberg, @jeremiedimino, fixes #2299) -
Add (dialect …) stanza
(@nojb, #2404) -
Add a
--context
argument todune install/uninstall
(@jeremiedimino, #2412) -
Do not warn about merlin files pre 1.9. This warning can only be disabled in
1.9 (#2421, fixes #2399, @emillon) -
Add a new
inline_tests
field in the env stanza to control inline_tests
framework with a variable (#2313, @mlasson, original idea by @jeremiedimino, review
by @rgrinberg). -
New binary kind
js
for executables in order to explicitly enable Javascript
targets, and a switch(explicit_js_mode)
to require this mode in order to
declare JS targets corresponding to executables. (#1941, @nojb)