Version 2:
Breaking Changes
-
renaming
-
ocaml_module
attributessrc
andintf
renamed tostruct
andsig
, respectively -
modules
attribute ofocaml_library
andocaml_archive
renamed tomanifest
-
rule
ocaml_interface
renamed toocaml_signature
-
deps_adjunct
renamed toppx_codeps
(i.e. co-dependencies) -
OPAM package labels now have the form
@pkg//:pkg
; subpackages have the form@pkg//subpkg
, or`@pkg//subpkg1/subpkg2
; for example,ppx_deriving.eq → @ppx_deriving//eq
,mtime.clock.os → @mtime//clock/os
. To make these targets available the new OPAM bootstrapper tool must be run separately.
-
-
namespacing support has been thoroughly revised, see below for details
-
deletions
-
all
ppx_*
rules exceptppx_executable
removed -
attribute
deps_opam
removed; opam deps are no longer special, and are treated like any other dep -
attribute
deps_adjunct_opam
removed
-
Non-breaking changes
-
Toolchain support has changed drastically, but this should not effect existing code, except insofar as OPAM dependencies must be changed as noted above. For example version 1 generated build commands that used
ocamlfind
, which it assumed to be installed in OPAM. Version 2 does not useocamlfind
; the commands it generates invoke the OCaml compilers directly, via the toolchain interface. This change should not affect existing build code.
New stuff
-
bottom-up namespacing
-
toolchain independence
-
cc deps produced by
cc_*
rules (e.g.cc_library
) may be added directly to thedeps
attribute ofocaml_module
-
new rules: