Skip to content

Releases: ocaml/dune

1.0+beta12 (18/08/2017)

19 Aug 00:00
Compare
Choose a tag to compare
  • Fix the quoting of FLG lines in generated .merlin files (#200,
    Marcello Seri)

  • Use the full path of archive files when linking. Before jbuilder
    would do: -I <path> file.cmxa, now it does -I <path> <path>/file.cmxa. Fixes #118 and #177

  • Use an absolute path for ppx drivers in .merlin files. Merlin
    <3.0.0 used to run ppx commands from the directory where the
    .merlin was present but this is no longer the case

  • Allow to use jbuilder install in contexts other than opam; if
    ocamlfind is present in the PATH and the user didn't pass
    --prefix or --libdir explicitly, use the output of ocamlfind printconf destdir as destination directory for library files (#179,
    Francois Bobot)

  • Allow (:include ...) forms in all *flags fields (#153, David
    Allsopp)

  • Add a utop subsommand. Running jbuilder utop in a directory
    builds and executes a custom utop toplevel with all libraries
    defined in the current directory (#183, Rudi Grinberg)

  • Do not accept per_file anymore in preprocess field. per_file
    was renamed per_module and it is planned to reuse per_file for
    another purpose

  • Warn when a file is both present in the source tree and generated by
    a rule. Before, jbuilder would silently ignore the rule. One now has
    to add a field (fallback) to custom rules to keep the current
    behavior (#218)

  • Get rid of the deprecated-ppx-method findlib package for ppx
    rewriters (#222, fixes #163)

  • Use digests (MD5) of files contents to detect changes rather than
    just looking at the timestamps. We still use timestamps to avoid
    recomputing digests. The performance difference is negligible and we
    avoid more useless recompilations, especially when switching branches
    for instance (#209, fixes #158)

1.0+beta11

21 Jul 16:38
Compare
Choose a tag to compare

1.0+beta11 (21/07/2017)

  • Fix the error message when there are more than one <package>.opam
    file for a given pacakge

  • Report an error when in a wrapped library, a module that is not the
    toplevel module depends on the toplevel module. This doesn't make as
    such a module would in theory be inaccessible from the outside

  • Add ${SCOPE_ROOT} pointing to the root of the current scope, to
    fix some misuses of ${ROOT}

  • Fix useless hint when all missing dependencies are optional (#137)

  • Fix a bug preventing one from generating META.pkg.template with a
    custom rule (#190)

  • Fix compilation of reason projects: .rei files where ignored and
    caused the build to fail (#184)

1.0+beta10

08 Jun 10:45
Compare
Choose a tag to compare

1.0+beta10 (08/06/2017)

  • Add a clean subcommand (Richard Davison, #89)

  • Add support for generating API documentation with odoc (#74)

  • Don't use unix in the bootstrap script, to avoid surprises with
    Cygwin

  • Improve the behavior of jbuilder exec on Windows

  • Add a --no-buffer option to see the output of commands in
    real-time. Should only be used with -j1

  • Deprecate per_file in preprocessing specifications and
    rename it per_module

  • Deprecate copy-and-add-line-directive and rename it copy#

  • Remove the ability to load arbitrary libraries in jbuild file in
    OCaml syntax. Only unix is supported since a few released packages
    are using it. The OCaml syntax might eventually be replaced by a
    simpler mechanism that plays better with incremental builds

  • Properly define and implement scopes

  • Inside user actions, ${^} now includes files matches by
    (glob_files ...) or (file_recursively_in ...)

  • When the dependencies and targets of a rule can be inferred
    automatically, you no longer need to write them: (rule (copy a b))

  • Inside (run ...), ${xxx} forms that expands to lists can now be
    split across multiple arguments by adding a !: ${!xxx}. For
    instance: (run foo ${!^})

  • Add support for using the contents of a file inside an action:

    • ${read:<file>}
    • ${read-lines:<file>}
    • ${read-strings:<file>} (same as read-lines but lines are
      escaped using OCaml convention)
  • When exiting prematurely because of a failure, if there are other
    background processes running and they fail, print these failures

  • With msvc, -lfoo is transparently replaced by foo.lib (David
    Allsopp, #127)

  • Automatically add the .exe when installing executables on Windows
    (#123)

  • (run <prog> ...) now resolves <prog> locally if
    possible. i.e. (run ${bin:prog} ...) and (run prog ...) behave
    the same. This seems like the right default

  • Fix a bug where jbuild rules would crash instead of reporting a
    proper build error

  • Fix a race condition in future.ml causing jbuilder to crash on
    Windows in some cases (#101)

  • Fix a bug causing ppx rewriter to not work properly when using
    multiple build contexts (#100)

  • Fix .merlin generation: projects in the same workspace are added to
    merlin's source path, so "locate" works on them.

1.0+beta9

19 May 14:42
Compare
Choose a tag to compare

1.0+beta9 (19/05/2017)

  • Add support for building Reason projects (Rudi Grinberg, #58)

  • Add support for building javascript with js-of-ocaml (Hugo Heuzard,
    #60)

  • Better support for topkg release workflow. See
    topkg-jbuilder for more
    details

  • Port the manual to rst and setup a jbuilder project on
    readthedocs.org (Rudi Grinberg, #78)

  • Hint for mistyped targets. Only suggest correction on the basename
    for now, otherwise it's slow when the workspace is big

  • Add a (package ...) field for aliases, so that one can restrict
    tests to a specific package (Rudi Grinberg, #64)

  • Fix a couple of bugs on Windows:

    • fix parsing of end of lines in some cases
    • do not take the case into account when comparing environment
      variable names
  • Add AppVeyor CI

  • Better error message in case a chain of dependencies crosses the
    installed world

  • Better error messages for invalid dependency list in jbuild files

  • Severel improvements/fixes regarding the handling of findlib packages:

    • Better error messages when a findlib package is unavailable
    • Don't crash when an installed findlib package has missing
      dependencies
    • Handle the findlib alternative directory layout which is still
      used by a few packages
  • Add jbuilder installed-libraries --not-available explaining why
    some libraries are not available

  • jbuilder now records dependencies on files of external
    libraries. This mean that when you upgrade a library, jbuilder will
    know what need to be rebuilt.

  • Add a jbuilder rules subcommand to dump internal compilation
    rules, mostly for debugging purposes

  • Ignore all directories starting with a . or _. This seems to be
    a common pattern:

    • .git, .hg, _darcs
    • _build
    • _opam (opam 2 local switches)
  • Fix the hint for jbuilder external-lib-deps (#72)

  • Do not require ocamllex and ocamlyacc to be at the same location
    as ocamlc (#75)