Skip to content

1.0+beta17

Compare
Choose a tag to compare
@rgrinberg rgrinberg released this 01 Feb 12:16
· 12400 commits to main since this release
e61142e

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)