On behalf of the dune development team, I’d like to announce the 17 beta.
Let me first make yet another reminder that the build system formerly named as jbuilder is now called dune. As of now, this poses no changes to users. However, the 1.0 release will make the old name obsolete. We will provide a migration tool to automate the transition.
As for this release, I’ve replicated the detailed change log below. I will not make a usual short summary of the release, because I’ve prepared an entire blog post for this purpose instead: http://rgrinberg.com/posts/jbuilder-beta-17/
I urge everyone to migrate, and happy hacking.
CHANGELOG
-
Make jbuilder aware that
num
is an external package in OCaml >= 4.06.0
(#358) -
jbuilder exec
will now rebuild the executable before running it if
necessary. This can be turned off by passing--no-build
(#345) -
Fix
jbuilder utop
to work in any working directory (#339) -
Fix generation of META synopsis that contains double quotes (#337)
-
Add
S .
to .merlin by default (#284) -
Improve
jbuilder exec
to make it possible to execute non public executables.
jbuilder exec path/bin
will executebin
inside default (or specified)
context relative topath
.jbuilder exec /path
will execute/path
as
absolute path but with the context’s environment set appropriately. Lastly,
jbuilder exec
will change the root as to which paths are relative using the
-root
option. (#286) -
Fix
jbuilder rules
printing rules when some binaries are missing (#292) -
Build documentation for non public libraries (#306)
-
Fix doc generation when several private libraries have the same name (#369)
-
Fix copy# for C/C++ with Microsoft C compiler (#353)
-
Add support for cross-compilation. Currently we are supporting the
opam-cross-x repositories such as
opam-cross-windows
(#355) -
Simplify generated META files: do not generate the transitive
closure of dependencies in META files (#405) -
Deprecated
${!...}
: the split behavior is now a property of the
variable. For instance${CC}
,${^}
,${read-lines:...}
all
expand to lists unless used in the middle of a longer atom (#336) -
Add an
(include ...)
stanza allowing one to include another
non-generated jbuild file in the current file (#402) -
Add a
(diff <file1> <file2>)
action allowing to diff files and
promote generated files in case of mismatch (#402, #421) -
Add
jbuilder promote
and--auto-promote
to promote files (#402,
#421) -
Report better errors when using
(glob_files ...)
with a directory
that doesn’t exist (#413, Fix #412) -
Jbuilder now properly handles correction files produced by
ppx_driver. This allows to use[@@deriving_inline]
in .ml/.mli
files. This requireppx_driver >= v0.10.2
to work properly (#415) -
Make jbuilder load rules lazily instead of generating them all
eagerly. This speeds up the initial startup time of jbuilder on big
workspaces (#370) -
Now longer generate a
META.pkg.from-jbuilder
file. Now the only
way to customise the generatedMETA
file is through
META.pkg.template
. This feature was unused and was making the code
complicated (#370) -
Remove read-only attribute on Windows before unlink (#247)
-
Use /Fo instead of -o when invoking the Microsoft C compiler to eliminate
deprecation warning when compiling C++ sources (#354) -
Display a warning for invalid lines in jbuild-ignore (#389)