Releases: ocaml/dune
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)
1.0+beta20
1.0+beta20 (10/04/2018)
-
Add a
documentation
stanza. This stanza allows one to attach .mld files to
opam packages. (#570 @rgrinberg) -
Execute all actions (defined using
(action ..)
) in the context's
environment. (#623 @rgrinberg) -
Add a
(universe)
special dependency to specify that an action depend on
everything in the universe. Jbuilder cannot cache the result of an action that
depend on the universe (#603, fixes #255 @diml) -
Add a
(package <package>)
dependency specification to indicate
dependency on a whole package. Rules depending on whole pacakge will
be executed in an environment similar to the one we get once the
package is installed (#624, @rgrinberg and @diml) -
Don't pass
-runtime-variant _pic
on Windows (#635) -
Display documentation in alphabetical order. This is relevant to packages,
libraries, and modules. (#647, fixes #606 @rgrinberg) -
Missing asm in ocaml -config on bytecode only architecture is no longer fatal.
The same kind of fix is preemptively applied to C compilers being absent.
(#646, fixes $637 @rgrinberg) -
Use the host's PATH variable when running actions during cross compilation
(#649, fixes #625 @rgrinberg) -
Fix incorrect include (
-I
) flags being passed to odoc. These flags should be
directories that include .odoc files, rather than the include flags of the
libraries. (#652 fixes #651 @rgrinberg) -
Fix a regression introduced by beta19 where the generated merlin
files didn't include the right-ppx
flags in some cases (#658
fixes #657 @diml) -
Fix error messaage when a public library is defined twice. Before
jbuilder would raise an uncaught exception (Fixes #661, @diml) -
Fix several cases where
external-lib-deps
was returning too little
dependencies (#667, fixes #644 @diml) -
Place module list on own line in generated entry point mld (#670 @antron)
-
Cosmetic improvements to generated entry point mld (#653 @trefis)
1.0+beta19.1
1.0+beta19.1 (21/03/2018)
-
Missing asm in ocaml -config on bytecode only architecture is no longer fatal
(#637 fixed by #639 @rgrinberg) -
Fix regression introduced by beta19 where duplicate environment variables in
Unix.environ would cause a fatal error. The first defined environment variable
is now chosen. (#638 fixed by #640) -
Use ';' as the path separator for OCAMLPATH on Cygwin (#630 fixed by #636
@diml). -
Use the contents of the
OCAMLPATH
environment variable when not relying on
ocamlfind
(#642 @diml)
1.0+beta19
1.0+beta19 (14/03/2018)
-
Ignore errors during the generation of the .merlin (#569, fixes #568 and #51)
-
Add a workaround for when a library normally installed by the
compiler is not installed but still has a META file (#574, fixes
#563) -
Do not depend on ocamlfind. Instead, hard-code the library path when
installing from opam (#575) -
Change the default behavior regarding the check for overlaps between
local and installed libraries. Now even if there is no link time
conflict, we don't allow an external dependency to overlap with a
local library, unless the user specifiesallow_overlapping_dependencies
in the jbuild file (#587, fixes #562) -
Expose a few more variables in jbuild files:
ext_obj
,ext_asm
,
ext_lib
,ext_dll
andext_exe
as well as${ocaml-config:XXX}
for most variables in the output ofocamlc -config
(#590) -
Add support for inline and inline expectation tests. The system is
generic and should support several inline test systems such as
ppx_inline_test
,ppx_expect
orqtest
(#547) -
Make sure modules in the current directory always have precedence
over included directories (#597) -
Add support for building executables as object or shared object
files (#23) -
Add a
best
mode which is native with fallback to byte-code when
native compilation is not available (#23) -
Fix locations reported in error messages (#609)
-
Report error when a public library has a private dependency. Previously, this
would be silently ignored and install broken artifacts (#607). -
Fix display when output is not a tty (#518)
-
Add a
(universe)
special dependency to specify that an action
depend on everything in the universe. Jbuilder cannot cache the
result of an action that depend on the universe (#603, fixes #255)
1.0+beta18.1
1.0+beta18.1 (14/03/2018)
-
Reduce the number of simultaneously opened fds (#578)
-
Always produce an implementation for the alias module, for
non-jbuilder users (Fix #576) -
Reduce interleaving in the scheduler in an attempt to make Jbuilder
keep file descriptors open for less long (#586) -
Accept and ignore upcoming new library fields:
ppx.driver
,
inline_tests
andinline_tests.backend
-
Add a hack to be able to build ppxlib, until beta20 which will have
generic support for ppx drivers