(for PR #29582)

2026-03-25 13:14.43: New job: test obuild.0.1.11 with ocaml-compiler.5.4.0, using opam dev
                              from https://github.com/ocaml/opam-repository.git#refs/pull/29582/head (fa5fb3a6a806e832e4c7791145889a6bbe8b64ef)
                              on debian-13-ocaml-5.4/amd64

To reproduce locally:

cd $(mktemp -d)
git clone --recursive "https://github.com/ocaml/opam-repository.git" && cd "opam-repository" && git fetch origin "refs/pull/29582/head" && git reset --hard fa5fb3a6
git fetch origin master
git merge --no-edit 2f93e9d4614d6376ed929fc2cee7c59cb9d5833b
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6
USER 1000:1000
WORKDIR /home/opam
RUN sudo ln -f /usr/bin/opam-dev /usr/bin/opam
RUN opam init --reinit -ni
RUN opam option solver=builtin-0install && opam config report
ENV OPAMDOWNLOADJOBS="1"
ENV OPAMERRLOGLEN="0"
ENV OPAMPRECISETRACKING="1"
ENV CI="true"
ENV OPAM_REPO_CI="true"
RUN rm -rf opam-repository/
COPY --chown=1000:1000 . opam-repository/
RUN opam repository set-url --strict default opam-repository/
RUN opam update --depexts || true
RUN opam pin add -k version -yn ocaml-compiler.5.4.0 5.4.0
RUN opam reinstall --update-invariant ocaml-compiler.5.4.0; \
    res=$?; \
    test "$res" != 31 && exit "$res"; \
    export OPAMCLI=2.0; \
    build_dir=$(opam var prefix)/.opam-switch/build; \
    failed=$(ls "$build_dir"); \
    partial_fails=""; \
    for pkg in $failed; do \
    if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'ocaml-compiler.5.4.0' && partial_fails="$partial_fails $pkg"; \
    done; \
    test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
    exit 1
RUN opam reinstall obuild.0.1.11; \
    res=$?; \
    test "$res" != 31 && exit "$res"; \
    export OPAMCLI=2.0; \
    build_dir=$(opam var prefix)/.opam-switch/build; \
    failed=$(ls "$build_dir"); \
    partial_fails=""; \
    for pkg in $failed; do \
    if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'obuild.0.1.11' && partial_fails="$partial_fails $pkg"; \
    done; \
    test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
    exit 1
RUN (opam reinstall --with-test obuild.0.1.11) || true
RUN opam reinstall --with-test --verbose obuild.0.1.11; \
    res=$?; \
    test "$res" != 31 && exit "$res"; \
    export OPAMCLI=2.0; \
    build_dir=$(opam var prefix)/.opam-switch/build; \
    failed=$(ls "$build_dir"); \
    partial_fails=""; \
    for pkg in $failed; do \
    if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'obuild.0.1.11' && partial_fails="$partial_fails $pkg"; \
    done; \
    test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
    exit 1

END-OF-DOCKERFILE
docker build -f ../Dockerfile .

2026-03-25 13:14.43: Using cache hint "ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6-ocaml-compiler.5.4.0-obuild.0.1.11-fa5fb3a6a806e832e4c7791145889a6bbe8b64ef"
2026-03-25 13:14.43: Using OBuilder spec:
((from ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6)
 (user (uid 1000) (gid 1000))
 (workdir /home/opam)
 (run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
 (run (network host)
      (shell "opam init --reinit --config .opamrc-sandbox -ni"))
 (run (shell "opam option solver=builtin-0install && opam config report"))
 (env OPAMDOWNLOADJOBS 1)
 (env OPAMERRLOGLEN 0)
 (env OPAMPRECISETRACKING 1)
 (env CI true)
 (env OPAM_REPO_CI true)
 (run (shell "rm -rf opam-repository/"))
 (copy (src .) (dst opam-repository/))
 (run (shell "opam repository set-url --strict default opam-repository/"))
 (run (network host)
      (shell "opam update --depexts || true"))
 (run (shell "opam pin add -k version -yn ocaml-compiler.5.4.0 5.4.0"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell  "opam reinstall --update-invariant ocaml-compiler.5.4.0;\
             \n        res=$?;\
             \n        test \"$res\" != 31 && exit \"$res\";\
             \n        export OPAMCLI=2.0;\
             \n        build_dir=$(opam var prefix)/.opam-switch/build;\
             \n        failed=$(ls \"$build_dir\");\
             \n        partial_fails=\"\";\
             \n        for pkg in $failed; do\
             \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'ocaml-compiler.5.4.0' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell  "opam reinstall obuild.0.1.11;\
             \n        res=$?;\
             \n        test \"$res\" != 31 && exit \"$res\";\
             \n        export OPAMCLI=2.0;\
             \n        build_dir=$(opam var prefix)/.opam-switch/build;\
             \n        failed=$(ls \"$build_dir\");\
             \n        partial_fails=\"\";\
             \n        for pkg in $failed; do\
             \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'obuild.0.1.11' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
 (run (network host)
      (shell "(opam reinstall --with-test obuild.0.1.11) || true"))
 (run (shell  "opam reinstall --with-test --verbose obuild.0.1.11;\
             \n        res=$?;\
             \n        test \"$res\" != 31 && exit \"$res\";\
             \n        export OPAMCLI=2.0;\
             \n        build_dir=$(opam var prefix)/.opam-switch/build;\
             \n        failed=$(ls \"$build_dir\");\
             \n        partial_fails=\"\";\
             \n        for pkg in $failed; do\
             \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'obuild.0.1.11' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
)

2026-03-25 13:14.43: Waiting for resource in pool OCluster
2026-03-25 18:45.14: Waiting for worker…
2026-03-25 18:47.29: Got resource from pool OCluster
Building on odawa.caelum.ci.dev
All commits already cached
HEAD is now at 2f93e9d461 Merge pull request #29592 from dinosaure/release-miou-v0.5.5
Merge made by the 'ort' strategy.
 packages/ocaml-compiler/ocaml-compiler.5.3.0/opam      |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.3/opam        |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.4.0/opam      |  5 ++++-
 .../ocaml-compiler/ocaml-compiler.5.4.0~alpha1/opam    |  5 ++++-
 .../ocaml-compiler/ocaml-compiler.5.4.0~beta1/opam     |  5 ++++-
 .../ocaml-compiler/ocaml-compiler.5.4.0~beta2/opam     |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.4.0~rc1/opam  |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.4.1/opam      |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.4/opam        |  5 ++++-
 .../ocaml-compiler/ocaml-compiler.5.5.0~alpha1/opam    |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.5/opam        |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.6/opam        |  5 ++++-
 packages/ocaml-option-llvm/ocaml-option-llvm.1/opam    | 18 ++++++++++++++++++
 .../ocaml-options-vanilla/ocaml-options-vanilla.1/opam |  1 +
 packages/ocaml-variants/ocaml-variants.5.2.0+msvc/opam |  2 ++
 15 files changed, 69 insertions(+), 12 deletions(-)
 create mode 100644 packages/ocaml-option-llvm/ocaml-option-llvm.1/opam

(from ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6)
2026-03-25 18:47.35 ---> using "41eea30e3f639c18d8cf57c309ec76919ec7b2398036f7e41744cbce59a133d3" from cache

/: (user (uid 1000) (gid 1000))

/: (workdir /home/opam)

/home/opam: (run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
2026-03-25 18:47.35 ---> using "4ad7f430d684c40cedc651267e0edf890c044fe4e624255de377c471b4526bac" from cache

/home/opam: (run (network host)
                 (shell "opam init --reinit --config .opamrc-sandbox -ni"))
Configuring from /home/opam/.opamrc-sandbox, then /home/opam/.opamrc, and finally from built-in defaults.
Checking for available remotes: rsync and local, git.
  - you won't be able to use mercurial repositories unless you install the hg command on your system.
  - you won't be able to use darcs repositories unless you install the darcs command on your system.

This version of opam requires an update to the layout of /home/opam/.opam from version 2.0 to version 2.2, which can't be reverted.
You may want to back it up before going further.

Continue? [Y/n] y
[NOTE] The 'jobs' option was reset, its value was 71 and its new value will vary according to the current number of cores on your machine. You can restore the fixed value using:
           opam option jobs=71 --global
Format upgrade done.

<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2026-03-25 18:47.35 ---> using "71fa58e52457bf6a7eac317c6a6ef1e2bdf53e533a1e4fd04b90c9349347e038" from cache

/home/opam: (run (shell "opam option solver=builtin-0install && opam config report"))
Set to 'builtin-0install' the field solver in global configuration
# opam config report
# opam-version         2.5.0
# self-upgrade         no
# system               arch=x86_64 os=linux os-distribution=debian os-version=13
# solver               builtin-0install
# install-criteria     -changed,-count[avoid-version,solution]
# upgrade-criteria     -count[avoid-version,solution]
# jobs                 255
# repositories         1 (version-controlled)
# pinned               1 (version)
# current-switch       5.4
# invariant            ["ocaml-base-compiler" {= "5.4.0"}]
# compiler-packages    ocaml-base-compiler.5.4.0, ocaml-compiler.5.4.0, ocaml-options-vanilla.1
# ocaml:native         true
# ocaml:native-tools   true
# ocaml:native-dynlink true
# ocaml:stubsdir       /home/opam/.opam/5.4/lib/ocaml/stublibs:/home/opam/.opam/5.4/lib/ocaml
# ocaml:preinstalled   false
# ocaml:compiler       5.4.0
2026-03-25 18:47.35 ---> using "ed86081cb38ca125a920162bfe6a4bb7b1c27c6973c917551687c83cf44dbfdf" from cache

/home/opam: (env OPAMDOWNLOADJOBS 1)

/home/opam: (env OPAMERRLOGLEN 0)

/home/opam: (env OPAMPRECISETRACKING 1)

/home/opam: (env CI true)

/home/opam: (env OPAM_REPO_CI true)

/home/opam: (run (shell "rm -rf opam-repository/"))
2026-03-25 18:47.35 ---> using "04a48515eea40c32b96da0c71328b4bba0edb66eed83d4f78554b39097cf1f25" from cache

/home/opam: (copy (src .) (dst opam-repository/))
2026-03-25 18:47.36 ---> using "034191995d824300f355cbba1072d6e5fe6d815701f24eb84d82c75009d73829" from cache

/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2026-03-25 18:47.36 ---> using "8232259ea36ea8848dc29ae49703acf145fd27b40f3ebd8fb785db7f8da1b9d4" from cache

/home/opam: (run (network host)
                 (shell "opam update --depexts || true"))
+ /usr/bin/sudo "apt-get" "update"
- Get:1 http://deb.debian.org/debian trixie InRelease [140 kB]
- Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.3 kB]
- Get:3 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
- Get:4 http://deb.debian.org/debian trixie/main amd64 Packages [9671 kB]
- Get:5 http://deb.debian.org/debian-security trixie-security/main amd64 Packages [114 kB]
- Fetched 10.0 MB in 1s (10.7 MB/s)
- Reading package lists...
- 
2026-03-25 18:47.36 ---> using "a75782a571df4fc8f8933e94c681af881015ee87cdd4c652f8ae9af1d8cfad37" from cache

/home/opam: (run (shell "opam pin add -k version -yn ocaml-compiler.5.4.0 5.4.0"))
ocaml-compiler is now pinned to version 5.4.0
2026-03-25 18:47.36 ---> using "60e129f7398974b5fa5afc8f56ec09bd24a9182f5e9834464bfc959db1aa6b14" from cache

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall --update-invariant ocaml-compiler.5.4.0;\
                        \n        res=$?;\
                        \n        test \"$res\" != 31 && exit \"$res\";\
                        \n        export OPAMCLI=2.0;\
                        \n        build_dir=$(opam var prefix)/.opam-switch/build;\
                        \n        failed=$(ls \"$build_dir\");\
                        \n        partial_fails=\"\";\
                        \n        for pkg in $failed; do\
                        \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'ocaml-compiler.5.4.0' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
The following actions will be performed:
=== recompile 8 packages
  - recompile base-domains        base           [uses ocaml]
  - recompile base-effects        base           [uses ocaml]
  - recompile base-nnp            base           [uses base-domains]
  - recompile ocaml               5.4.0          [uses ocaml-base-compiler]
  - recompile ocaml-base-compiler 5.4.0 (pinned) [uses ocaml-compiler]
  - recompile ocaml-compiler      5.4.0 (pinned)
  - recompile ocaml-config        3              [uses ocaml-base-compiler]
  - recompile opam-depext         1.2.3          [uses ocaml]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved ocaml-compiler.5.4.0  (cached)
-> retrieved ocaml-config.3  (cached)
-> retrieved opam-depext.1.2.3  (cached)
-> removed   base-effects.base
-> removed   base-nnp.base
-> removed   base-domains.base
-> removed   opam-depext.1.2.3
-> removed   ocaml.5.4.0
-> removed   ocaml-config.3
-> removed   ocaml-base-compiler.5.4.0
-> removed   ocaml-compiler.5.4.0
-> installed ocaml-compiler.5.4.0
-> installed ocaml-base-compiler.5.4.0
-> installed ocaml-config.3
-> installed ocaml.5.4.0
-> installed base-domains.base
-> installed base-effects.base
-> installed base-nnp.base
-> installed opam-depext.1.2.3
Done.

<><> opam-depext.1.2.3 installed successfully <><><><><><><><><><><><><><><><><>
=> opam-depext is unnecessary when used with opam >= 2.1. Please use opam install directly instead
# To update the current shell environment, run: eval $(opam env)
2026-03-25 18:47.36 ---> using "efbc92fc0c607605c8bb33f9e4c8fe340a48c67e14d2f61592db8a4edc5c0b15" from cache

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall obuild.0.1.11;\
                        \n        res=$?;\
                        \n        test \"$res\" != 31 && exit \"$res\";\
                        \n        export OPAMCLI=2.0;\
                        \n        build_dir=$(opam var prefix)/.opam-switch/build;\
                        \n        failed=$(ls \"$build_dir\");\
                        \n        partial_fails=\"\";\
                        \n        for pkg in $failed; do\
                        \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'obuild.0.1.11' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
obuild.0.1.11 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 2 packages
  - install obuild    0.1.11
  - install ocamlfind 1.9.8  [required by obuild]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved obuild.0.1.11  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> installed ocamlfind.1.9.8
-> installed obuild.0.1.11
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-25 18:47.48 ---> saved as "51cf51c295317845dc02cbbed821180288378b0afdbe84418a6e418a7028f2d6"

/home/opam: (run (network host)
                 (shell "(opam reinstall --with-test obuild.0.1.11) || true"))
The following actions will be performed:
=== recompile 1 package
  - recompile obuild 0.1.11

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved obuild.0.1.11  (https://opam.ocaml.org/cache)
-> removed   obuild.0.1.11
-> installed obuild.0.1.11
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-25 18:47.56 ---> saved as "44b426041f382496e97ae875c9cd436138318214e3ea3c1059a14a0871cdf584"

/home/opam: (run (shell  "opam reinstall --with-test --verbose obuild.0.1.11;\
                        \n        res=$?;\
                        \n        test \"$res\" != 31 && exit \"$res\";\
                        \n        export OPAMCLI=2.0;\
                        \n        build_dir=$(opam var prefix)/.opam-switch/build;\
                        \n        failed=$(ls \"$build_dir\");\
                        \n        partial_fails=\"\";\
                        \n        for pkg in $failed; do\
                        \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'obuild.0.1.11' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
The following actions will be performed:
=== recompile 1 package
  - recompile obuild 0.1.11

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Processing  1/4: [obuild.0.1.11: extract]
-> retrieved obuild.0.1.11  (cached)
Processing  2/4: [obuild: ./bootstrap]
+ /home/opam/.opam/opam-init/hooks/sandbox.sh "build" "./bootstrap" (CWD=/home/opam/.opam/5.4/.opam-switch/build/obuild.0.1.11)
- 5.4.0
- Using compat403.ml
- COMPILING compat
- COMPILING fugue
- COMPILING filepath
- COMPILING filesystem
- BUILDING library Ext.cmo
- COMPILING types
- COMPILING gconf
- COMPILING filetype
- COMPILING dag
- COMPILING libname
- COMPILING pp
- COMPILING expr
- File "expr.ml", lines 129-131, characters 20-33:
- 129 | ....................match (string_split ':' v ~limit:2) with
- 130 |         [ _ ] -> ("", v)
- 131 |       | [ p1; rest] -> (p1, rest)...
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
-   Here is an example of a case that is not matched: _::rest::_::_
- 
- File "expr.ml", lines 132-134, characters 23-35:
- 132 | .......................match (string_split '-' rest ~limit:2) with
- 133 |         [ _ ] -> (p1, rest, "")
- 134 |       | [ p2 ; p3 ] -> (p1, p2, p3)...
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
-   Here is an example of a case that is not matched: _::p3::_::_
- COMPILING utils
- File "utils.ml", line 70, characters 23-73:
- 70 |            try let _ = List.find (fun n -> Filesystem.exists (n p)) names in true
-                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 5 [ignored-partial-application]: this function application is partial,
-   maybe some arguments are missing.
- COMPILING modname
- COMPILING taskdep
- COMPILING helper
- COMPILING dagutils
- COMPILING process
- COMPILING findlibConf
- COMPILING scheduler
- COMPILING prog
- COMPILING dependencies
- COMPILING generators
- COMPILING hier
- COMPILING meta
- COMPILING metacache
- COMPILING target
- COMPILING dist
- COMPILING project
- COMPILING analyze
- COMPILING configure
- COMPILING prepare
- File "prepare.ml", line 379, characters 10-113:
- 379 |           (match file_entry with Hier.FileEntry _ -> SimpleModule | Hier.GeneratedFileEntry _ -> GeneratedModule)
-                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
-   Here is an example of a case that is not matched: DirectoryEntry _
- COMPILING buildprogs
- COMPILING build
- COMPILING exception
- BUILDING library Obuild.cmo
- COMPILING sdist
- COMPILING doc
- COMPILING init
- COMPILING help
- COMPILING install
- COMPILING path_generated
- COMPILING main
- LINKING obuild.bootstrap
- Configuring obuild-0.1.11...
- [ 1 of 57] Compiling Ext.Compat                    
- [ 2 of 57] Compiling Ext.Fugue                     
- File "ext/compat.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "ext/fugue.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [ 3 of 57] Intfing Ext.Filepath                  
- [ 4 of 57] Compiling Ext.Filepath                  
- [ 5 of 57] Intfing Ext.Filesystem                
- [ 6 of 57] Compiling Ext.Filesystem                
- File "ext/filesystem.ml", lines 18-21, characters 11-58:
- 18 | ...........match (Unix.lstat fent).Unix.st_kind with
- 19 |            | Unix.S_DIR -> rmdir_recursive (Unix.rmdir) fent
- 20 |            | Unix.S_REG -> Unix.unlink fent
- 21 |            | _          -> raise (UnexpectedFileType fent)
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Unix.file_kind.
- 
- [ 7 of 57] Packing Ext                           
- [ 8 of 57] Linking library dist/build/lib-obuild.ext/obuild_ext.cmxa
- [ 8 of 57] Linking library dist/build/lib-obuild.ext/obuild_ext.cmxs
- [ 8 of 57] Linking library dist/build/lib-obuild.ext/obuild_ext.cma
- [ 9 of 57] Checking dist/build/lib-obuild.ext
- [10 of 57] Compiling Obuild.Filetype               
- [11 of 57] Compiling Obuild.Gconf                  
- File "obuild/filetype.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [12 of 57] Compiling Obuild.Pp                     
- File "obuild/gconf.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [13 of 57] Compiling Obuild.Dag                    
- File "obuild/pp.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/pp.ml", line 2, characters 0-15:
- 2 | open Ext.Compat
-     ^^^^^^^^^^^^^^^
- Warning 33 [unused-open]: unused open Ext.Compat.
- 
- [14 of 57] Compiling Obuild.Expr                   
- File "obuild/dag.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [15 of 57] Compiling Obuild.Modname                
- File "obuild/expr.ml", lines 129-131, characters 20-33:
- 129 | ....................match (string_split ':' v ~limit:2) with
- 130 |         [ _ ] -> ("", v)
- 131 |       | [ p1; rest] -> (p1, rest)...
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
-   Here is an example of a case that is not matched: _::rest::_::_
- 
- File "obuild/expr.ml", lines 132-134, characters 23-35:
- 132 | .......................match (string_split '-' rest ~limit:2) with
- 133 |         [ _ ] -> (p1, rest, "")
- 134 |       | [ p2 ; p3 ] -> (p1, p2, p3)...
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
-   Here is an example of a case that is not matched: _::p3::_::_
- 
- File "obuild/expr.ml", lines 216-222, characters 8-9:
- 216 | ........(match r with
- 217 |          | Token.RPAREN :: r -> (Paren e, r)
- 218 |          | Token.OR :: _ | Token.AND :: _ ->
- 219 |            let (e, r) = parse_bin_expr e r in
- 220 |            loop e r
- 221 |          | _ -> raise UnbalancedParenthesis;
- 222 |         )
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Token.t.
- 
- File "obuild/expr.ml", lines 209-231, characters 4-82:
- 209 | ....match l with
- 210 |     | [] -> raise MalformedExpression
- 211 |     | Token.NOT :: r ->
- 212 |       let (e, r) = parse_sub_expr r in ((Not e), r)
- 213 |     | Token.LPAREN :: r ->
- ...
- 228 |     | Token.LT :: Token.VER v :: r -> (Lt v, r)
- 229 |     | Token.LE :: Token.VER v :: r -> (Le v, r)
- 230 |     | Token.NE :: Token.VER v :: r -> (Ne v, r)
- 231 |     | z              -> raise (UnknownExpression (showList "," Token.to_string z))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Token.t.
- 
- File "obuild/expr.ml", lines 233-236, characters 4-36:
- 233 | ....match l with
- 234 |     | Token.OR :: r -> let (e, r) = parse_sub_expr r in ((Or (expr,e)), r)
- 235 |     | Token.AND :: r -> let (e, r) = parse_sub_expr r in ((And (expr,e)), r)
- 236 |     | _ -> raise MalformedExpression
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Token.t.
- 
- File "obuild/expr.ml", lines 268-271, characters 2-73:
- 268 | ..match Token.lexer s with
- 269 |   | []                    -> raise ExpressionEmpty
- 270 |   | Token.ID name :: constraints -> (name, (parse_constraints name constraints))
- 271 |   | x :: _           -> raise (InvalidDependencyName (Token.to_string x))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Token.t.
- 
- File "obuild/expr.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [16 of 57] Compiling Obuild.Types                  
- File "obuild/modname.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [17 of 57] Compiling Obuild.Taskdep                
- File "obuild/types.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [18 of 57] Compiling Obuild.Libname                
- File "obuild/taskdep.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [19 of 57] Compiling Obuild.Utils                  
- File "obuild/libname.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [20 of 57] Compiling Obuild.Dagutils               
- File "obuild/dagutils.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/utils.ml", line 70, characters 23-73:
- 70 |            try let _ = List.find (fun n -> Filesystem.exists (n p)) names in true
-                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 5 [ignored-partial-application]: this function application is partial,
-   maybe some arguments are missing.
- 
- File "obuild/utils.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [21 of 57] Compiling Obuild.Helper                 
- File "obuild/helper.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [22 of 57] Compiling Obuild.Process                
- File "obuild/process.ml", lines 95-97, characters 2-57:
- 95 | ..match pstat with
- 96 |   | Unix.WEXITED 0 -> Success (Buffer.contents p.out.buf, Buffer.contents p.err.buf, Unix.gettimeofday () -. p.time)
- 97 |   | _              -> Failure (Buffer.contents p.err.buf)
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Unix.process_status.
- 
- File "obuild/process.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [23 of 57] Compiling Obuild.Scheduler              
- [24 of 57] Compiling Obuild.FindlibConf            
- File "obuild/findlibConf.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [25 of 57] Compiling Obuild.Prog                   
- File "obuild/scheduler.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [26 of 57] Compiling Obuild.Meta                   
- File "obuild/prog.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [27 of 57] Compiling Obuild.Generators             
- File "obuild/generators.ml", line 55, characters 10-101:
- 55 |   let s = match ext with Filetype.FileOther s -> s | _ -> raise (GeneratorNotFound (fp_to_string fp)) in
-                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Filetype.t.
- 
- File "obuild/generators.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [28 of 57] Compiling Obuild.Dependencies           
- File "obuild/meta.ml", lines 129-130, characters 27-67:
- 129 | ...........................match p with Predicate.Neg n -> not (List.mem n constraints)
- 130 |                                       | _ -> List.mem p constraints.......
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Predicate.t.
- 
- File "obuild/meta.ml", lines 138-139, characters 29-63:
- 138 | .............................match p with Predicate.Neg n -> not (List.mem n preds)
- 139 |                                         | _ -> List.mem p preds...............
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Predicate.t.
- 
- File "obuild/meta.ml", lines 314-318, characters 28-36:
- 314 | ............................function
- 315 |     | COMMA :: ID s :: xs -> let (l, r) = parse_predicate xs in ((Predicate.of_string s) :: l, r)
- 316 |     | COMMA :: MINUS :: ID s :: xs ->
- 317 |       let (l, r) = parse_predicate xs in ((Predicate.Neg (Predicate.of_string s)) :: l, r)
- 318 |     | xs                 -> ([], xs)
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 323-326, characters 48-95:
- 323 | ................................................match xs2 with
- 324 |         | RPAREN :: xs3 ->
- 325 |           ((Predicate.of_string s) :: preds, xs3)
- 326 |         | _ -> raise (MetaParseError (name, ("expecting ')' after " ^ field ^ "'s predicate")))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 329-332, characters 48-95:
- 329 | ................................................match xs2 with
- 330 |         | RPAREN :: xs3 ->
- 331 |           ((Predicate.Neg (Predicate.of_string s)) :: preds, xs3)
- 332 |         | _ -> raise (MetaParseError (name, ("expecting ')' after " ^ field ^ "'s predicate")))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 320-334, characters 40-20:
- 320 | ........................................function
- 321 |     | LPAREN :: RPAREN :: xs -> ([], xs)
- 322 |     | LPAREN :: ID s :: xs ->
- 323 |       (let (preds, xs2) = parse_predicate xs in match xs2 with
- 324 |         | RPAREN :: xs3 ->
- ...
- 331 |           ((Predicate.Neg (Predicate.of_string s)) :: preds, xs3)
- 332 |         | _ -> raise (MetaParseError (name, ("expecting ')' after " ^ field ^ "'s predicate")))
- 333 |       )
- 334 |     | xs -> ([], xs)
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 346-353, characters 8-75:
- 346 | ........match xs2 with
- 347 |         | PLUSEQ :: S reqs :: xs3
- 348 |         | EQ :: S reqs :: xs3 ->
- 349 |           let deps = List.map (fun r -> Libname.of_string r)
- 350 |                      $ (List.filter (fun x -> x <> "") $ string_split_pred (fun c -> List.mem c [',';' ']) reqs)
- 351 |           in
- 352 |           parse pkg_name { acc with Pkg.requires = (preds, (List.rev deps)) :: acc.Pkg.requires } xs3
- 353 |         | _ -> raise (MetaParseError (pkg_name, "parsing requires failed"))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 360-364, characters 8-74:
- 360 | ........match xs2 with
- 361 |         | EQ :: S v :: xs3 ->
- 362 |           let nacc = { acc with Pkg.warning = acc.Pkg.warning @ [(preds, v)] } in
- 363 |           parse pkg_name nacc xs3
- 364 |         | _ -> raise (MetaParseError (pkg_name, "parsing warning failed"))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 369-376, characters 8-74:
- 369 | ........match xs2 with
- 370 |         | PLUSEQ :: S v :: xs3 ->
- 371 |           let nacc = { acc with Pkg.append_archives = acc.Pkg.append_archives @ [(preds, v)] } in
- 372 |           parse pkg_name nacc xs3
- 373 |         | EQ :: S v :: xs3 ->
- 374 |           let nacc = { acc with Pkg.archives = acc.Pkg.archives @ [(preds, v)] } in
- 375 |           parse pkg_name nacc xs3
- 376 |         | _ -> raise (MetaParseError (pkg_name, "parsing archive failed"))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 381-388, characters 8-73:
- 381 | ........match xs2 with
- 382 |         | PLUSEQ :: S v :: xs3 ->
- 383 |           let nacc = { acc with Pkg.append_archives = acc.Pkg.append_archives @ [(preds, v)] } in
- 384 |           parse pkg_name nacc xs3
- 385 |         | EQ :: S v :: xs3 ->
- 386 |           let nacc = { acc with Pkg.archives = acc.Pkg.archives @ [(preds, v)] } in
- 387 |           parse pkg_name nacc xs3
- 388 |         | _ -> raise (MetaParseError (pkg_name, "parsing plugin failed"))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 393-396, characters 8-70:
- 393 | ........match xs2 with
- 394 |         | EQ :: S v :: xs3 ->
- 395 |           parse pkg_name { acc with Pkg.ppx = Some (preds, v)} xs3
- 396 |         | _ -> raise (MetaParseError (pkg_name, "parsing ppx failed"))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 400-404, characters 8-73:
- 400 | ........match xs2 with
- 401 |         | PLUSEQ :: S v :: xs3 
- 402 |         | EQ :: S v :: xs3 ->
- 403 |           parse pkg_name { acc with Pkg.ppxopt = acc.Pkg.ppxopt @ [(preds, v)]} xs3
- 404 |         | _ -> raise (MetaParseError (pkg_name, "parsing ppxopt failed"))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 409-412, characters 26-57:
- 409 | ..........................function
- 410 |           | RPAREN::zs -> zs
- 411 |           | _::zs      -> consume zs
- 412 |           | []         -> failwith "eof in error context"
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 414-416, characters 8-61:
- 414 | ........match consume xs with
- 415 |         | EQ :: S _ :: xs2 -> parse pkg_name acc xs2
- 416 |         | _                -> failwith "parsing error failed"
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 420-423, characters 8-74:
- 420 | ........match xs2 with
- 421 |         | EQ :: S s :: xs3 ->
- 422 |           parse pkg_name { acc with Pkg.linkopts = ((if preds = [] then None else Some preds), s) :: acc.Pkg.linkopts } xs3
- 423 |         | _         -> failwith "parsing linkopts failed, expecting equal"
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", lines 336-428, characters 31-97:
- 336 | ...............................function
- 337 |     | []           -> (acc, [])
- 338 |     | RPAREN :: xs -> (acc, xs)
- 339 |     | ID "package" :: S name :: LPAREN :: xs ->
- 340 |       (let (pkg, xs2) = parse pkg_name (Pkg.make name) xs in
- ...
- 425 |     | ID stuff :: EQ :: S stuffVal :: xs ->
- 426 |       parse pkg_name { acc with Pkg.assignment = (stuff, stuffVal) :: acc.Pkg.assignment } xs
- 427 |     | x :: xs -> raise (MetaParseError (pkg_name, ("unknown token '" ^ to_string x ^ "' in meta file\n" ^
- 428 |                                                    (String.concat " " (List.map to_string xs)))))
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type t.
- 
- File "obuild/meta.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/meta.ml", line 5, characters 0-11:
- 5 | open Helper
-     ^^^^^^^^^^^
- Warning 33 [unused-open]: unused open Helper.
- 
- File "obuild/meta.ml", line 6, characters 0-10:
- 6 | open Gconf
-     ^^^^^^^^^^
- Warning 33 [unused-open]: unused open Gconf.
- 
- File "obuild/meta.ml", line 136, characters 39-42:
- 136 |   let get_archive_with_filter (_, pkg) dep preds =
-                                              ^^^
- Warning 27 [unused-var-strict]: unused variable dep.
- 
- [29 of 57] Compiling Obuild.Hier                   
- File "obuild/dependencies.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [30 of 57] Compiling Obuild.Metacache              
- File "obuild/metacache.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/metacache.ml", line 1, characters 0-9:
- 1 | open Meta
-     ^^^^^^^^^
- Warning 33 [unused-open]: unused open Meta.
- 
- File "obuild/hier.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/hier.ml", line 4, characters 0-10:
- 4 | open Types
-     ^^^^^^^^^^
- Warning 33 [unused-open]: unused open Types.
- 
- [31 of 57] Compiling Obuild.Target                 
- File "obuild/target.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [32 of 57] Compiling Obuild.Project                
- [33 of 57] Compiling Obuild.Dist                   
- File "obuild/dist.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/project.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [34 of 57] Compiling Obuild.Analyze                
- File "obuild/analyze.ml", lines 80-82, characters 7-18:
- 80 | .......match name with
- 81 |        | Name.Lib lname -> Some lname
- 82 |        | _ -> None.
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Target.Name.t.
- 
- File "obuild/analyze.ml", lines 247-256, characters 15-26:
- 247 | ...............match preds with
- 248 |                | [ Meta.Predicate.Toploop ] -> ()
- 249 |                | _ ->
- 250 |                  List.iter
- 251 |                    (fun reqDep ->
- 252 |                       verbose Debug "  library %s depends on %s\n"
- 253 |                         (Libname.to_string dep) (Libname.to_string reqDep);
- 254 |                       Dag.addEdge (Dependency dep) (Dependency reqDep) depsDag;
- 255 |                       loop reqDep)
- 256 |                    reqDeps.
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Meta.Predicate.t.
- 
- File "obuild/analyze.ml", lines 275-279, characters 9-29:
- 275 | .........match target.target_name with
- 276 |          | Name.Lib l ->
- 277 |            Dag.addNode (Dependency l) depsDag;
- 278 |            Dag.addEdge (Dependency l)
- 279 |          | _ -> fun _ _ -> ()
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Target.Name.t.
- 
- File "obuild/analyze.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [35 of 57] Compiling Obuild.Configure              
- [36 of 57] Compiling Obuild.Prepare                
- File "obuild/configure.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/prepare.ml", lines 168-170, characters 8-32:
- 168 | ........match node with
- 169 |         | Dependency dep -> Some dep
- 170 |         | _              -> None
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Analyze.dependency_tag.
- 
- File "obuild/prepare.ml", lines 218-228, characters 17-15:
- 218 | .................(match Filetype.of_filepath fp with
- 219 |                 | Filetype.FileML  -> Some (Modname.of_filename f)
- 220 |                 | Filetype.FileMLI  ->
- 221 |                   if (Filesystem.exists (srcDir </> ((chop_extension f) <.> "ml"))) then
- 222 |                     None
- ...
- 225 |                 | Filetype.FileOther s -> if Generators.is_generator_ext s then Some (Modname.of_filename f)
- 226 |                   else None
- 227 |                 | _                -> None
- 228 |               )
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Filetype.t.
- 
- File "obuild/prepare.ml", line 379, characters 10-113:
- 379 |           (match file_entry with Hier.FileEntry _ -> SimpleModule | Hier.GeneratedFileEntry _ -> GeneratedModule)
-                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
-   Here is an example of a case that is not matched: DirectoryEntry _
- 
- File "obuild/prepare.ml", lines 489-493, characters 10-19:
- 489 | ..........match r with
- 490 |           | CompileModule _ | CompileDirectory _->
- 491 |             Dag.addEdge (LinkTarget target) r stepsDag;
- 492 |             Dag.addEdge (CheckTarget target) (LinkTarget target) stepsDag;
- 493 |           | _ -> ()
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type compile_step.
- 
- File "obuild/prepare.ml", lines 552-554, characters 6-18:
- 552 | ......match Hashtbl.find conf.project_dep_data dep with
- 553 |       | Internal -> true
- 554 |       | _ -> false............
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Analyze.dep_type.
- 
- File "obuild/prepare.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/prepare.ml", line 202, characters 9-16:
- 202 |     let (srcPath,srcDir) =
-                ^^^^^^^
- Warning 27 [unused-var-strict]: unused variable srcPath.
- 
- File "obuild/prepare.ml", line 233, characters 13-20:
- 233 |         let (srcPath, srcFile, intfFile) =
-                    ^^^^^^^
- Warning 27 [unused-var-strict]: unused variable srcPath.
- 
- File "obuild/prepare.ml", line 239, characters 37-41:
- 239 |           | Hier.GeneratedFileEntry (path, file, generated) ->
-                                            ^^^^
- Warning 27 [unused-var-strict]: unused variable path.
- 
- [37 of 57] Compiling Obuild.Buildprogs             
- File "obuild/buildprogs.ml", lines 69-73, characters 14-73:
- 69 | ..............function
- 70 |     | Filetype.FileML -> ext
- 71 |     | Filetype.FileMLI -> Filetype.FileCMI
- 72 |     | _ -> (* It should not happen *)
- 73 |       if buildMode = ByteCode then Filetype.FileCMO else Filetype.FileCMX
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Filetype.t.
- 
- File "obuild/buildprogs.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/buildprogs.ml", line 66, characters 17-23:
- 66 | let runOcamlPack srcDir dstDir annotMode buildMode packOpt dest modules =
-                       ^^^^^^
- Warning 27 [unused-var-strict]: unused variable srcDir.
- 
- [38 of 57] Compiling Obuild.Build                  
- File "obuild/build.ml", lines 60-72, characters 45-7:
- 60 | .............................................(
- 61 |         match srcTy with
- 62 |         | Filetype.FileCMX | Filetype.FileCMO ->
- 63 |           let bml = Filetype.replace_extension bdest Filetype.FileML in
- 64 |           let bmli = Filetype.replace_extension bdest Filetype.FileMLI in
- ...
- 69 |           "Library changed " ^ fp_to_string changedSrc
- 70 |         | _ ->
- 71 |           "Dependencies changed " ^ fp_to_string changedSrc
- 72 |       )
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Filetype.t.
- 
- File "obuild/build.ml", lines 59-80, characters 4-42:
- 59 | ....match Filetype.of_filename bdest with
- 60 |     | Filetype.FileCMX | Filetype.FileCMO -> (
- 61 |         match srcTy with
- 62 |         | Filetype.FileCMX | Filetype.FileCMO ->
- 63 |           let bml = Filetype.replace_extension bdest Filetype.FileML in
- ...
- 77 |       else if bh = bsrc then ("H file " ^ fn_to_string bsrc ^ " changed")
- 78 |       else ("file changed " ^ fp_to_string changedSrc)
- 79 |     | _ ->
- 80 |       fp_to_string changedSrc ^ " changed"
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Filetype.t.
- 
- File "obuild/build.ml", line 89, characters 6-63:
- 89 |       match (t,o) with (ByteCode,WithProf) -> false | _ -> true) all_modes
-            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Types.ocaml_compiled_type.
- 
- File "obuild/build.ml", line 89, characters 6-63:
- 89 |       match (t,o) with (ByteCode,WithProf) -> false | _ -> true) all_modes
-            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Types.ocaml_compilation_option.
- 
- File "obuild/build.ml", lines 150-155, characters 20-21:
- 150 | ....................match e with
- 151 |           Hier.FileEntry (_, f) ->
- 152 |             if (Filetype.of_filepath f) = Filetype.FileMLI then
- 153 |               Some m
- 154 |             else None
- 155 |           | _ -> None
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Hier.file_entry.
- 
- File "obuild/build.ml", line 340, characters 71-75:
- 340 |     (satisfy_all current_pkg) && (List.for_all satisfy_all current_pkg.subs) in
-                                                                              ^^^^
- Warning 40 [name-out-of-scope]: subs was selected from type Meta.Pkg.t.
-   It is not visible in the current scope, and will not be selected
-   if the type becomes unknown.
- 
- File "obuild/build.ml", line 340, characters 71-75:
- 340 |     (satisfy_all current_pkg) && (List.for_all satisfy_all current_pkg.subs) in
-                                                                              ^^^^
- Warning 42 [disambiguated-name]: this use of subs relies on type-directed
-   disambiguation, it will not compile with OCaml 4.00 or earlier.
- 
- File "obuild/build.ml", line 339, characters 10-26:
- 339 |   let rec dep_is_satisfied current_pkg =
-                 ^^^^^^^^^^^^^^^^
- Warning 39 [unused-rec-flag]: unused rec flag.
- 
- File "obuild/build.ml", lines 363-365, characters 22-24:
- 363 | ......................match compileOpt with
- 364 |             | WithProf -> Meta.Predicate.Gprof :: preds
- 365 |             | _ -> preds
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Types.ocaml_compilation_option.
- 
- File "obuild/build.ml", lines 377-385, characters 13-58:
- 377 | .............match target.target_name with
- 378 |     | Name.Lib libname ->
- 379 |       if plugin then
- 380 |         cstate.compilation_builddir_ml Normal </> Libname.to_cmxs compileOpt libname
- 381 |       else
- 382 |         cstate.compilation_builddir_ml Normal </> Libname.to_cmca compiledType compileOpt libname
- 383 |     | _ ->
- 384 |       let outputName = Utils.to_exe_name compileOpt compiledType (Target.get_target_dest_name target) in
- 385 |       cstate.compilation_builddir_ml Normal </> outputName
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Target.Name.t.
- 
- File "obuild/build.ml", lines 498-500, characters 40-51:
- 498 | ........................................match task with
- 499 |        | CompileC _ -> raise (CCompilationFailed er)
- 500 |        | _          -> raise (CompilationFailed er)
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Prepare.compile_step.
- 
- File "obuild/build.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "obuild/build.ml", line 333, characters 28-34:
- 333 |         List.fold_left (fun in_acc lib ->
-                                   ^^^^^^
- Warning 27 [unused-var-strict]: unused variable in_acc.
- 
- [39 of 57] Compiling Obuild.Exception              
- File "obuild/exception.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [40 of 57] Packing Obuild                        
- [41 of 57] Linking library dist/build/lib-obuild/obuild.cmxa
- [41 of 57] Linking library dist/build/lib-obuild/obuild.cmxs
- [41 of 57] Linking library dist/build/lib-obuild/obuild.cma
- [42 of 57] Checking dist/build/lib-obuild
- [43 of 57] Compiling Assimilate_oasis              
- [44 of 57] Compiling Simple                        
- File "tools/assimilate_oasis.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [45 of 57] Compiling Install                       
- File "src/simple.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [46 of 57] Compiling Doc                           
- File "src/install.ml", lines 21-24, characters 6-35:
- 21 | ......match Filetype.of_filepath (build_dir </> f) with
- 22 |       | Filetype.FileCMX | Filetype.FileCMI | Filetype.FileA | Filetype.FileCMXS
- 23 |       | Filetype.FileCMXA | Filetype.FileCMA | Filetype.FileCMT | Filetype.FileCMTI -> true
- 24 |       | _                  -> false.
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Obuild.Filetype.t.
- 
- File "src/install.ml", lines 27-29, characters 4-31:
- 27 | ....match Filetype.of_filepath (build_dir </> f) with
- 28 |     | Filetype.FileEXE -> true
- 29 |     | _                -> false.
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Obuild.Filetype.t.
- 
- File "src/install.ml", lines 43-44, characters 31-76:
- 43 | ...............................match target.target_name with
- 44 |           | Name.Lib _ -> print_target_files target list_lib_files | _ -> ()..............
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Obuild.Target.Name.t.
- 
- File "src/install.ml", lines 47-48, characters 31-76:
- 47 | ...............................match target.target_name with
- 48 |           | Name.Exe _ -> print_target_files target list_exe_files | _ -> ()..............
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Obuild.Target.Name.t.
- 
- File "src/install.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [47 of 57] Compiling Sdist                         
- File "src/doc.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "src/doc.ml", line 15, characters 8-16:
- 15 | let run projFile =
-              ^^^^^^^^
- Warning 27 [unused-var-strict]: unused variable projFile.
- 
- [48 of 57] Compiling Help                          
- File "src/help.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [49 of 57] Compiling Path_generated                
- File "src/sdist.ml", lines 28-30, characters 14-38:
- 28 | ..............match Filetype.of_filepath fpath with
- 29 |               | Filetype.FileML | Filetype.FileMLI -> Filesystem.copy_to_dir fpath dest
- 30 |               | _                -> ()
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Obuild.Filetype.t.
- 
- File "src/sdist.ml", lines 36-38, characters 12-21:
- 36 | ............match Filetype.of_filepath fpath with
- 37 |             | Filetype.FileC | Filetype.FileH -> Filesystem.copy_to_dir fpath dest
- 38 |             | _ -> ()
- Warning 4 [fragile-match]: this pattern-matching is fragile.
-   It will remain exhaustive when constructors are added to type Obuild.Filetype.t.
- 
- File "src/sdist.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- File "src/sdist.ml", line 9, characters 17-27:
- 9 | let run projFile isSnapshot =
-                      ^^^^^^^^^^
- Warning 27 [unused-var-strict]: unused variable isSnapshot.
- 
- [50 of 57] Compiling Init                          
- File "dist/build/autogen/path_generated.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [51 of 57] Linking executable dist/build/obuild-from-oasis/obuild-from-oasis
- File "src/init.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [52 of 57] Linking executable dist/build/obuild-simple/obuild-simple
- [53 of 57] Compiling Main                          
- [54 of 57] Checking dist/build/obuild-from-oasis
- [55 of 57] Checking dist/build/obuild-simple
- File "src/main.ml", line 1:
- Warning 70 [missing-mli]: Cannot find interface file.
- 
- [56 of 57] Linking executable dist/build/obuild/obuild
- [57 of 57] Checking dist/build/obuild
- 
- real	0m3.136s
- user	0m2.526s
- sys	0m1.907s
-> compiled  obuild.0.1.11
-> removed   obuild.0.1.11
-> installed obuild.0.1.11
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-25 18:48.04 ---> saved as "3e134f8137371e0168d93a14f8d8b671b8e056b088818faf5d6d8b9b50e60246"
Job succeeded
2026-03-25 18:48.13: Job succeeded