Releases: ocaml/dune
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
1.0+beta18
1.0+beta18 (25/02/2018)
-
Fix generation of the implicit alias module with 4.02. With 4.02 it
must have an implementation while with OCaml >= 4.03 it can be an
interface only module (#549) -
Let the parser distinguish quoted strings from atoms. This makes
possible to use "${v}" to concatenate the list of values provided by
a split-variable. Concatenating split-variables with text is also
now required to be quoted. -
Split calls to ocamldep. Before ocamldep would be called once per
library
/executables
stanza. Now it is called once per file
(#486) -
Make sure to not pass
-I <stdlib-dir>
to the compiler. It is
useless and it causes problems in some cases (#488) -
Don't stop on the first error. Before, jbuilder would stop its
execution after an error was encountered. Now it continues until
all branches have been explored (#477) -
Add supprot for a user configuration file (#490)
-
Add more display modes and change the default display of
Jbuilder. The mode can be set from the command line or from the
configuration file (#490) -
Allow to set the concurency level (
-j N
) from the configuration
file (#491) -
Store artifacts for libraries and executables in separate
directories. This ensure that Two libraries defined in the same
directory can't see each other unless one of them depend on the
other (#472) -
Better support for mli/rei only modules (#490)
-
Fix support for byte-code only architectures (#510, fixes #330)
-
Fix a regression in
external-lib-deps
introduced in 1.0+beta17
(#512, fixes #485) -
@doc
alias will now build only documentation for public libraries. A new
@doc-private
alias has been added to build documentation for private
libraries. -
Refactor internal library management. It should now be possible to
runjbuilder build @lint
in Base for instance (#516) -
Fix invalid warning about non-existent direcotry (#536, fixes #534)
1.0+beta17
1.0+beta17 (01/02/2018)
-
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) -
Add a mode field to
rule
stanzas:(mode standard)
is the default(mode fallback)
replaces(fallback)
(mode promote)
means that targets are copied to the source tree
after the rule has completed(mode promote-until-clean)
is the same as(mode promote)
except
thatjbuilder clean
deletes the files copied to the source tree.
(#437)
-
Add a flag
--ignore-promoted-rules
to make jbuilder ignore rules
with(mode promote)
.-p
implies--ignore-promoted-rules
(#437) -
Display a warning for invalid lines in jbuild-ignore (#389)
-
Always build
boot.exe
as a bytecode program. It makes the build of
jbuilder faster and fix the build on some architectures (#463, fixes #446) -
Fix bad interaction between promotion and incremental builds on OSX
(#460, fix #456)
1.0+beta16
1.0+beta16 (05/11/2017)
- Fix build on 32-bit OCaml on Windows/Cygwin (#313)
1.0+beta15
1.0+beta15 (04/11/2017)
-
Change the semantic of aliases: there are no longer aliases that are
recursive such asinstall
orruntest
. All aliases are
non-recursive. However, when requesting an alias from the command
line, this request the construction of the alias in the specified
directory and all its children recursively. This allows users to get
the same behavior as previous recursive aliases for their own
aliases, such asexample
. Inside jbuild files, one can use(deps (... (alias_rec xxx) ...))
to get the same behavior as on the
command line. (#268) -
Include sub libraries that have a
.
in the generated documentation index
(#280). -
Fix "up" links to the top-level index in the odoc generated documentation
(#282). -
Fix
ARCH_SIXTYFOUR
detection for OCaml 4.06.0 (#303)
1.0+beta14
1.0+beta14 (11/10/2017)
-
Add (copy_files ) and (copy_files# ) stanzas. These
stanzas setup rules for copying files from a sub-directory to the
current directory. This provides a reasonable way to support
multi-directory library/executables in jbuilder (#35, Francois Bobot) -
An empty
jbuild-workspace
file is now interpreted the same as one
containing just(context default)
-
Better support for on-demand utop toplevels on Windows and when the
library has C stubs -
Print
Entering directory '...'
when the workspace root is not the
current directory. This allows Emacs and Vim to know where relative
filenames should be interpreted from. Fixes #138 -
Fix a bug related to
menhir
stanzas:menhir
stanzas with a
merge_into
field that were injbuild
files in sub-directories
where incorectly interpreted (#264) -
Add support for locks in actions, for tests that can't be run
concurrently (#263) -
Support
${..}
syntax in theinclude
stanza. (#231)