Skip to content

Releases: ocaml/dune

1.0+beta20

10 Apr 14:46
Compare
Choose a tag to compare

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

20 Mar 18:59
Compare
Choose a tag to compare

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

18 Mar 16:36
Compare
Choose a tag to compare

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 specifies allow_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 and ext_exe as well as ${ocaml-config:XXX}
    for most variables in the output of ocamlc -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 or qtest (#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

14 Mar 13:06
Compare
Choose a tag to compare

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 and inline_tests.backend

  • Add a hack to be able to build ppxlib, until beta20 which will have
    generic support for ppx drivers

1.0+beta18

26 Feb 14:09
Compare
Choose a tag to compare

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
    run jbuilder build @lint in Base for instance (#516)

  • Fix invalid warning about non-existent direcotry (#536, fixes #534)

1.0+beta17

01 Feb 12:16
e61142e
Compare
Choose a tag to compare

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 execute bin inside default (or specified)
    context relative to path. 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 require ppx_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 generated META 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
      that jbuilder 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

06 Nov 09:41
Compare
Choose a tag to compare

1.0+beta16 (05/11/2017)

  • Fix build on 32-bit OCaml on Windows/Cygwin (#313)

1.0+beta15

04 Nov 14:07
Compare
Choose a tag to compare

1.0+beta15 (04/11/2017)

  • Change the semantic of aliases: there are no longer aliases that are
    recursive such as install or runtest. 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 as example. 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

11 Oct 20:44
Compare
Choose a tag to compare

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 in jbuild 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 the include stanza. (#231)

1.0+beta13

06 Sep 00:53
Compare
Choose a tag to compare

1.0+beta13 (05/09/2017)

  • Generate toplevel html index for documentation (#224, Thomas Gazagnaire)

  • Fix recompilation of native artifacts. Regression introduced in the last
    version (1.0+beta12) when digests replaces timestamps for checking staleness
    (#238, David Allsopp)