Releases: ocaml/dune
1.5.1
1.5.0
CHANGES:
-
Filter out empty paths from
OCAMLPATH
andPATH
(#1436, @rgrinberg) -
Do not add the
lib.cma.js
target in lib's directory. Put this target in a
sub directory instead. (#1435, fix #1302, @rgrinberg) -
Install generated OCaml files with a
.ml
rather than a.ml-gen
extension
(#1425, fix #1414, @rgrinberg) -
Allow to use the
bigarray
library in >= 4.07 without ocamlfind and without
installing the correspondingotherlib
. (#1455, @nojb) -
Add
@all
alias to build all targets defined in a directory (#1409, fix
#1220, @rgrinberg) -
Add
@check
alias to build all targets required for type checking and tooling
support. (#1447, fix #1220, @rgrinberg) -
Produce the odoc index page with the content wrapper to make it consistent
with odoc's theming (#1469, @rizo) -
Unblock signals in processes started by dune (#1461, fixes #1451,
@diml) -
Respect
OCAMLFIND_TOOLCHAIN
and add atoolchain
option to contexts in the
workspace file. (#1449, fix #1413, @rgrinberg) -
Fix error message when using
copy_files
stanza to copy files from
a non sub directory with lang set to dune < 1.3 (#1486, fixes #1485,
@NathanReb) -
Install man pages in the correct subdirectory (#1483, fixes #1441, @emillon)
-
Fix version syntax check for
test
stanza'saction
field. Only
emits a warning for retro-compatibility (#1474, fixes #1471,
@NathanReb) -
Fix interpretation of paths in
env
stanzas (#1509, fixes #1508, @diml) -
Add
context_name
expansion variable (#1507, @rgrinberg) -
Use shorter paths for generated on-demand ppx drivers. This is to
help Windows builds where paths are limited in length (#1511, fixes
#1497, @diml) -
Fix interpretation of environment variables under
setenv
. Also forbid
dynamic environment names or values (#1503, @rgrinberg).
1.4.0
CHANGES:
-
Do not fail if the output of
ocamlc -config
doesn't include
standard_runtime
(#1326, @diml) -
Let
Configurator.V1.C_define.import
handle negative integers
(#1334, @Chris00) -
Re-execute actions when a target is modified by the user inside
_build
(#1343, fix #1342, @diml) -
Fix bad interaction between multi-directory libraries the
menhir
stanza (#1373, fix #1372, @diml) -
Integration with automatic formatters (#1252, fix #1201, @emillon)
-
Better error message when using
(self_build_stubs_archive ...)
and
(c_names ...)
or(cxx_names ...)
simultaneously.
(#1375, fix #1306, @nojb) -
Improve name detection for packages when the prefix isn't an actual package
(#1361, fix #1360, @rgrinberg) -
Support for new menhir rules (#863, fix #305, @fpottier, @rgrinberg)
-
Do not remove flags when compiling compatibility modules for wrapped mode
(#1382, fix #1364, @rgrinberg) -
Fix reason support when using
staged_pps
(#1384, @charlesetc) -
Add support for
enabled_if
inrule
,menhir
,ocamllex
,
ocamlyacc
(#1387, @diml) -
Load all defined libraries recursively into utop (#1384, fix #1344,
@rgrinberg) -
Allow to use libraries
bytes
,result
anduchar
withoutfindlib
installed (#1391, @nojb) -
Take argument to self_build_stubs_archive into account. (#1395, @nojb)
-
Fix bad interaction between
env
customization and vendored
projects: when a vendored project didn't have its ownenv
stanza,
theenv
stanza from the enclosing project was in effect (#1408,
@diml) -
Fix stop early bug when scanning for watermarks (#1423, @diml)
1.3.0
CHANGES:
-
Allow
dune.configurator
andbase
to be used together (#1291, fix
#1167, @diml) -
Support interrupting and restarting builds on file changes (#1246,
@kodek16) -
Fix findlib-dynload support with byte mode only (#1295, @bobot)
-
Expand variables in
(targets ..)
field (#1301, #1320, fix #1189, @nojb,
@rgrinberg, @diml) -
Fix a race condition on Windows that was introduced in 1.2.0
(#1304, fix #1303, @diml) -
Fix the generation of .merlin files to account for private modules
(@rgrinberg, fix #1314) -
Exclude the local opam switch directory (
_opam
) from the list of watched
directories (#1315, @dysinger) -
Fix compilation of the module generated for
findlib.dynload
(#1317, fix #1310, @diml) -
Lift restriction on
copy_files
andcopy_files#
stanzas that files to be
copied should be in a subdirectory of the current directory.
(#1323, fix #911, @nojb)
1.2.1
CHANGES:
-
Enrich the
dune
Emacs mode with syntax highlighting and indentation. New
filedune-flymake
to provide a hookdune-flymake-dune-mode-hook
to enable
linting of dune files. (#1265, @Chris00) -
Pass
link_flags
tocc
when compiling withConfigurator.V1.c_test
(#1274,
@rgrinberg) -
Fix digest calculation of aliases. It should take into account extra bindings
passed to the alias (#1277, fix #1276, @rgrinberg) -
Fix a bug causing
dune
to fail eagerly when an optional library
isn't available (#1281, @diml) -
ocamlmklib should use response files only if ocaml >= 4.08 (@1268, @bryphe)
1.2.0
CHANGES:
-
Ignore stderr output when trying to find out the number of jobs
available (#1118, fix #1116, @diml) -
Fix error message when the source directory of
copy_files
does not exist.
(#1120, fix #1099, @emillon) -
Highlight error locations in error messages (#1121, @emillon)
-
Display actual stanza when package is ambiguous (#1126, fix #1123, @emillon)
-
Add
dune unstable-fmt
to formatdune
files. The interface and syntax are
still subject to change, so use with caution. (#1130, fix #940, @emillon) -
Improve error message for
dune utop
without a library name (#1154, fix
#1149, @emillon) -
Fix parsing
ocamllex
stanza in jbuild files (#1150, @rgrinberg) -
Highlight multi-line errors (#1131, @anuragsoni)
-
Do no try to generate shared libraries when this is not supported by
the OS (#1165, fix #1051, @diml) -
Fix
Flags.write_{sexp,lines}
in configurator by avoiding the use of
Stdune.Path
(#1175, fix #1161, @rgrinberg) -
Add support for
findlib.dynload
: when linking an executable using
findlib.dynload
, automatically record linked in libraries and
findlib predicates (#1172, @bobot) -
Add support for promoting a selected list of files (#1192, @diml)
-
Add an emacs mode providing helpers to promote correction files
(#1192, @diml) -
Improve message suggesting to remove parentheses (#1196, fix #1173, @emillon)
-
Add
(wrapped (transition "..message.."))
as an option that will generate
wrapped modules but keep unwrapped modules with a deprecation message to
preserve compatibility. (#1188, fix #985, @rgrinberg) -
Fix the flags passed to the ppx rewriter when using
staged_pps
(#1218, @diml) -
Add
(env var)
to add a dependency to an environment variable.
(#1186, @emillon) -
Add a simple version of a polling mode:
dune build -w
keeps
running and restarts the build when something change on the
filesystem (#1140, @kodek16) -
Cleanup the way we detect the library search path. We no longer call
opam config var lib
in the default build context (#1226, @diml) -
Make test stanzas honor the -p flag. (#1236, fix #1231, @emillon)
-
Test stanzas take an optional (action) field to customize how they run (#1248,
#1195, @emillon) -
Add support for private modules via the
private_modules
field (#1241, fix
#427, @rgrinberg) -
Add support for passing arguments to the OCaml compiler via a
response file when the list of arguments is too long (#1256, @diml) -
Do not print diffs by default when running inside dune (#1260, @diml)
-
Interpret
$ dune build dir
as building the default alias indir
. (#1259,
@rgrinberg) -
Make the
dynlink
library available without findlib installed (#1270, fix
#1264, @rgrinberg)
1.1.1
CHANGES:
-
Fix
$ jbuilder --dev
(#1104, fixes #1103, @rgrinberg) -
Fix dune exec when
--build-dir
is set to an absolute path (#1105, fixes
#1101, @rgrinberg) -
Fix duplicate profile argument in suggested command when an external library
is missing (#1109, #1106, @emillon) -
-opaque
wasn't correctly being added to modules without an interface.
(#1108, fix #1107, @rgrinberg) -
Fix validation of library
name
fields and make sure this validation also
applies when thename
is derived from thepublic_name
. (#1110, fix #1102,
@rgrinberg) -
Fix a bug causing the toplevel
env
stanza in the workspace file to
be ignored when at least one context had(merlin)
(#1114, @diml)
1.1.0
CHANGES:
-
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 apublic_name
,public_names
field is provided. (#1041, fix #1000, @rgrinberg) -
Interpret
X
in--libdir X
as relative toPREFIX
whenX
is relative
(#1072, fix #1070, @diml) -
Add support for multi directory libraries by writing
(include_subdirs unqualified)
(#1034, @diml) -
Add
(staged_pps ...)
to support staged ppx rewriters such as ones
using the OCaml typer likeppx_import
(#1080, fix #193, @diml) -
Use
-opaque
in thedev
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)
1.0.1
1.0.0
CHANGES:
-
Do not load the user configuration file when running inside dune
(#700 @diml) -
Do not infer ${null} to be a target (#693 fixes #694 @rgrinberg)
-
Introduce jbuilder.configurator library. This is a revived version of
janestreet's configurator library with better cross compilation support, a
versioned API, and no external dependencies. (#673, #678 #692, #695
@rgrinberg) -
Register the transitive dependencies of compilation units as the
compiler might read.cm*
files recursively (#666, fixes #660,
@emillon) -
Fix a bug causing
jbuilder external-lib-deps
to crash (#723,
@diml) -
-j
now defaults to the number of processing units available rather
4 (#726, @diml) -
Fix attaching index.mld to documentation (#731, fixes #717 @rgrinberg)
-
Scan the file system lazily (#732, fixes #718 and #228, @diml)
-
Add support for setting the default ocaml flags and for build
profiles (#419, @diml) -
Display a better error messages when writing
(inline_tests)
in an
executable stanza (#748, @diml) -
Restore promoted files when they are deleted or changed in the
source tree (#760, fix #759, @diml) -
Fix a crash when using an invalid alias name (#762, fixes #761,
@diml) -
Fix a crash when using c files from another directory (#758, fixes
#734, @diml) -
Add an
ignored_subdirs
stanza to replacejbuild-ignore
files
(#767, @diml) -
Fix a bug where Dune ignored previous occurrences of duplicated
fields (#779, @diml) -
Allow setting custom build directories using the
--build-dir
flag or
DUNE_BUILD_DIR
environment variable (#846, fix #291, @diml @rgrinberg) -
In dune files, remove support for block (
#| ... |#)
) and sexp
(#;
) comments. These were very rarely used and complicate the
language (#837, @diml) -
In dune files, add support for block strings, allowing to nicely
format blocks of texts (#837, @diml) -
Remove hard-coded knowledge of ppx_driver and
ocaml-migrate-parsetree when using adune
file (#576, @diml) -
Make the output of Dune slightly more deterministic when run from
inside Dune (#855, @diml) -
Simplify quoting behavior of variables. All values are now multi-valued and
whether a multi valued variable is allowed is determined by the quoting and
substitution context it appears in. (#849, fix #701, @rgrinberg) -
Fix documentation generation for private libraries. (#864, fix #856,
@rgrinberg) -
Use
Marshal
to store digest and incremental databases. This improves the
speed of 0 rebuilds. (#817, @diml)
- Allow setting environment variables in
findlib.conf
for cross compilation
contexts. (#733, @rgrinberg)
-
Add a
link_deps
field to executables, to specify link-time dependencies
like version scripts. (#879, fix #852, @emillon) -
Rename
files_recursively_in
tosource_tree
to make it clearer it
doesn't include generated files (#899, fix #843, @diml) -
Present the
menhir
stanza as an extension with its own version
(#901, @diml) -
Improve the syntax of flags in
(pps ...)
. Now instead of(pps (ppx1 -arg1 ppx2 (-foo x)))
one should write(pps ppx1 -arg ppx2 -- -foo x)
which looks nicer (#910, @diml) -
Make
(diff a b)
ignore trailing cr on Windows and add(cmp a b)
for
comparing binary files (#904, fix #844, @diml) -
Version
dune-workspace
and~/.config/dune/config
files (#932, @diml) -
Add the ability to build an alias non-recursively from the command
line by writing@@alias
(#926, @diml) -
Add a special
default
alias that defaults to(alias_rec install)
when not defined by the user and make@@default
be the default
target (#926, @diml) -
Add
%{profile}
variable. (#938, @rgrinberg) -
Add the
lib_root
andlibexec_root
install sections (#947, @diml) -
Adapt the behavior of
dune subst
for dune projects (#960, @diml) -
Add the
lib_root
andlibexec_root
sections to install stanzas
(#947, @diml) -
Add a
Configurator.V1.Flags
module that improves the flag reading/writing
API (#840, @avsm) -
Add a
tests
stanza that simlpified defining regular and expect tests
(#822, @rgrinberg) -
Change the
subst
subcommand to lookup the project name from the
dune-project
whenever it's available. (#960, @diml) -
The
subst
subcommand no longer looks up the root workspace. Previously this
detection would break the command whenever-p
wasn't passed. (#960, @diml) -
Add a
# DUNE_GEN
in META template files. This is done for consistency with
# JBUILDER_GEN
. (#958, @rgrinberg) -
Rename the following variables in dune files:
SCOPE_ROOT
toproject_root
@
totargets
<
tofirst-dep
^
todeps
(#957, @rgrinberg) -
Lowercase all built-in %{variables} in dune files (#956, @rgrinberg)
-
New syntax for naming dependencies:
(deps (:x a b) (:y (glob_files *.c*)))
.
This replaces the use for${<}
in dune files. (#950, @diml, @rgrinberg) -
Fix detection of dynamic cycles, which in particular may appear when
using(package ..)
dependencies (#988, @diml)