(for PR #29582)

2026-03-25 13:14.41: New job: test quickjs.0.2.0 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 quickjs.0.2.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" != 'quickjs.0.2.0' && 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 quickjs.0.2.0) || true
RUN opam reinstall --with-test --verbose quickjs.0.2.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" != 'quickjs.0.2.0' && 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.41: Using cache hint "ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6-ocaml-compiler.5.4.0-quickjs.0.2.0-fa5fb3a6a806e832e4c7791145889a6bbe8b64ef"
2026-03-25 13:14.41: 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 quickjs.0.2.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\" != 'quickjs.0.2.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 (network host)
      (shell "(opam reinstall --with-test quickjs.0.2.0) || true"))
 (run (shell  "opam reinstall --with-test --verbose quickjs.0.2.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\" != 'quickjs.0.2.0' && 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.41: Waiting for resource in pool OCluster
2026-03-25 18:25.52: Waiting for worker…
2026-03-25 18:28.34: Got resource from pool OCluster
Building on bremusa.ocamllabs.io
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:28.41 ---> 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:28.41 ---> 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
Format upgrade done.

<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2026-03-25 18:28.41 ---> 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                 71
# 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:28.41 ---> 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:28.41 ---> using "04a48515eea40c32b96da0c71328b4bba0edb66eed83d4f78554b39097cf1f25" from cache

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

/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2026-03-25 18:28.42 ---> 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 (8424 kB/s)
- Reading package lists...
2026-03-25 18:28.42 ---> 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:28.42 ---> 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:28.42 ---> using "efbc92fc0c607605c8bb33f9e4c8fe340a48c67e14d2f61592db8a4edc5c0b15" from cache

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall quickjs.0.2.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\" != 'quickjs.0.2.0' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
quickjs.0.2.0 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 11 packages
  - install csexp             1.5.2  [required by dune-configurator]
  - install ctypes            0.24.0 [required by quickjs]
  - install dune              3.22.0 [required by quickjs]
  - install dune-configurator 3.22.0 [required by ctypes]
  - install integers          0.7.0  [required by quickjs]
  - install ocamlbuild        0.16.1 [required by uutf]
  - install ocamlfind         1.9.8  [required by uutf]
  - install quickjs           0.2.0
  - install stdlib-shims      0.3.0  [required by integers]
  - install topkg             1.1.1  [required by uutf]
  - install uutf              1.0.4  [required by quickjs]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved csexp.1.5.2  (cached)
-> retrieved ctypes.0.24.0  (cached)
-> retrieved dune.3.22.0, dune-configurator.3.22.0  (cached)
-> retrieved integers.0.7.0  (cached)
-> retrieved ocamlbuild.0.16.1  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved quickjs.0.2.0  (cached)
-> retrieved stdlib-shims.0.3.0  (cached)
-> retrieved topkg.1.1.1  (cached)
-> retrieved uutf.1.0.4  (cached)
-> installed ocamlfind.1.9.8
-> installed ocamlbuild.0.16.1
-> installed topkg.1.1.1
-> installed uutf.1.0.4
-> installed dune.3.22.0
-> installed csexp.1.5.2
-> installed stdlib-shims.0.3.0
-> installed integers.0.7.0
-> installed dune-configurator.3.22.0
-> installed ctypes.0.24.0
-> installed quickjs.0.2.0
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-25 18:30.12 ---> saved as "1320ab70e27cf1c9346d741bf6e31c4deabcf293722e82b8964b3f7012b3f925"

/home/opam: (run (network host)
                 (shell "(opam reinstall --with-test quickjs.0.2.0) || true"))
The following actions will be performed:
=== recompile 2 packages
  - recompile quickjs            0.2.0
  - recompile uutf               1.0.4  [uses cmdliner]
=== install 6 packages
  - install   alcotest           1.9.1  [required by quickjs]
  - install   astring            0.8.5  [required by alcotest]
  - install   cmdliner           2.1.0  [required by alcotest]
  - install   fmt                0.11.0 [required by alcotest]
  - install   ocaml-syntax-shims 1.0.0  [required by alcotest]
  - install   re                 1.14.0 [required by alcotest]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved alcotest.1.9.1  (https://opam.ocaml.org/cache)
-> retrieved astring.0.8.5  (https://opam.ocaml.org/cache)
-> retrieved cmdliner.2.1.0  (https://opam.ocaml.org/cache)
-> retrieved fmt.0.11.0  (https://opam.ocaml.org/cache)
-> retrieved ocaml-syntax-shims.1.0.0  (https://opam.ocaml.org/cache)
-> retrieved quickjs.0.2.0  (https://opam.ocaml.org/cache)
-> retrieved re.1.14.0  (https://opam.ocaml.org/cache)
-> retrieved uutf.1.0.4  (https://opam.ocaml.org/cache)
-> installed astring.0.8.5
-> installed ocaml-syntax-shims.1.0.0
-> installed re.1.14.0
-> removed   quickjs.0.2.0
-> removed   uutf.1.0.4
-> installed cmdliner.2.1.0
-> installed uutf.1.0.4
-> installed fmt.0.11.0
-> installed alcotest.1.9.1
-> installed quickjs.0.2.0
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-25 18:30.35 ---> saved as "6d7fe377c9823b2816248a97bf51913b312636bffb34e2bbdbe520112de87745"

/home/opam: (run (shell  "opam reinstall --with-test --verbose quickjs.0.2.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\" != 'quickjs.0.2.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 1 package
  - recompile quickjs 0.2.0

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Processing  1/4: [quickjs.0.2.0: extract]
-> retrieved quickjs.0.2.0  (cached)
Processing  2/4: [quickjs: dune build]
+ /home/opam/.opam/opam-init/hooks/sandbox.sh "build" "dune" "build" "-p" "quickjs" "-j" "71" "@install" "@runtest" (CWD=/home/opam/.opam/5.4/.opam-switch/build/quickjs.0.2.0)
- (cd _build/default/test && ./test.exe)
- Testing `quickjs'.
- This run has ID `GFXTV2WR'.
- 
-   [OK]          RegExp                                                                     0   flags....
-   [OK]          RegExp                                                                     1   test....
-   [OK]          RegExp                                                                     2   basic....
-   [OK]          RegExp                                                                     3   exec....
-   [OK]          RegExp                                                                     4   basic text....
-   [OK]          RegExp                                                                     5   with i (ignorecase)....
-   [OK]          RegExp                                                                     6   with m (multiline)....
-   [OK]          RegExp                                                                     7   with g (global)....
-   [OK]          RegExp                                                                     8   with y (sticky)....
-   [OK]          RegExp                                                                     9   sticky vs global....
-   [OK]          RegExp                                                                    10   groups....
-   [OK]          RegExp                                                                    11   named groups....
-   [OK]          RegExp                                                                    12   named groups with global flag....
-   [OK]          RegExp                                                                    13   mixed named and unnamed groups....
-   [OK]          RegExp                                                                    14   no named groups returns empty list....
-   [OK]          RegExp                                                                    15   no match returns empty groups....
-   [OK]          RegExp                                                                    16   index....
-   [OK]          RegExp                                                                    17   lastIndex and index....
-   [OK]          RegExp                                                                    18   groups with (?: )....
-   [OK]          RegExp                                                                    19   negative....
-   [OK]          RegExp                                                                    20   http/s....
-   [OK]          RegExp                                                                    21   unicode: [a-z] does not match unicode letters....
-   [OK]          RegExp                                                                    22   unicode: \p{L} matches unicode letters....
-   [OK]          Error                                                                      0   unexpected end....
-   [OK]          Error                                                                      1   expecting ')'....
-   [OK]          Error                                                                      2   nothing to repeat....
-   [OK]          Error in some engines, but not in JavaScript (neither in QuickJS)          0   a{,}....
-   [OK]          Error in some engines, but not in JavaScript (neither in QuickJS)          1   \1(a)....
-   [OK]          Error in some engines, but not in JavaScript (neither in QuickJS)          2   [a-z[]....
-   [OK]          Unicode.is_cased                                                           0   ASCII letters are cased....
-   [OK]          Unicode.is_cased                                                           1   digits and symbols are not cased....
-   [OK]          Unicode.is_cased                                                           2   accented letters are cased....
-   [OK]          Unicode.is_id_start                                                        0   letters can start identifiers....
-   [OK]          Unicode.is_id_start                                                        1   digits cannot start identifiers....
-   [OK]          Unicode.is_id_start                                                        2   underscore and dollar - Unicode ID_Start excludes them....
-   [OK]          Unicode.is_id_start                                                        3   unicode letters can start identifiers....
-   [OK]          Unicode.is_id_continue                                                     0   letters can continue identifiers....
-   [OK]          Unicode.is_id_continue                                                     1   digits can continue identifiers....
-   [OK]          Unicode.is_id_continue                                                     2   underscore in ID_Continue but dollar not....
-   [OK]          Unicode.is_whitespace                                                      0   ASCII whitespace....
-   [OK]          Unicode.is_whitespace                                                      1   letters are not whitespace....
-   [OK]          Unicode.is_whitespace                                                      2   unicode whitespace characters....
-   [OK]          Unicode.lowercase                                                          0   ASCII lowercase....
-   [OK]          Unicode.lowercase                                                          1   already lowercase unchanged....
-   [OK]          Unicode.lowercase                                                          2   unicode lowercase....
-   [OK]          Unicode.lowercase                                                          3   empty string....
-   [OK]          Unicode.uppercase                                                          0   ASCII uppercase....
-   [OK]          Unicode.uppercase                                                          1   already uppercase unchanged....
-   [OK]          Unicode.uppercase                                                          2   unicode uppercase....
-   [OK]          Unicode.uppercase                                                          3   German sharp s expands....
-   [OK]          Unicode.uppercase                                                          4   empty string....
-   [OK]          Unicode.lowercase_char                                                     0   ASCII letter....
-   [OK]          Unicode.lowercase_char                                                     1   already lowercase....
-   [OK]          Unicode.uppercase_char                                                     0   ASCII letter....
-   [OK]          Unicode.uppercase_char                                                     1   German sharp s expands to two chars....
-   [OK]          Unicode.canonicalize                                                       0   unicode mode: uppercase to lowercase....
-   [OK]          Unicode.canonicalize                                                       1   unicode mode: lowercase stays same....
-   [OK]          Unicode.canonicalize                                                       2   non-unicode mode: lowercase to uppercase (legacy behavior)....
-   [OK]          Unicode.normalize                                                          0   NFC: composed form....
-   [OK]          Unicode.normalize                                                          1   NFD: decomposed form....
-   [OK]          Unicode.normalize                                                          2   ASCII unchanged by NFC....
-   [OK]          Unicode.normalize                                                          3   empty string....
-   [OK]          Unicode.normalize                                                          4   NFKC compatibility decomposition....
-   [OK]          Dtoa.to_string                                                             0   basic integers....
-   [OK]          Dtoa.to_string                                                             1   decimals....
-   [OK]          Dtoa.to_string                                                             2   special values....
-   [OK]          Dtoa.to_string                                                             3   negative zero without flag....
-   [OK]          Dtoa.to_string                                                             4   negative zero with flag....
-   [OK]          Dtoa.to_string                                                             5   large numbers....
-   [OK]          Dtoa.to_string                                                             6   very large numbers use exponential....
-   [OK]          Dtoa.to_string                                                             7   small numbers....
-   [OK]          Dtoa.to_fixed                                                              0   basic....
-   [OK]          Dtoa.to_fixed                                                              1   rounding....
-   [OK]          Dtoa.to_fixed                                                              2   negative numbers....
-   [OK]          Dtoa.to_precision                                                          0   basic....
-   [OK]          Dtoa.to_precision                                                          1   small numbers....
-   [OK]          Dtoa.to_exponential                                                        0   basic....
-   [OK]          Dtoa.to_exponential                                                        1   small numbers....
-   [OK]          Dtoa.to_radix                                                              0   binary....
-   [OK]          Dtoa.to_radix                                                              1   octal....
-   [OK]          Dtoa.to_radix                                                              2   hexadecimal....
-   [OK]          Dtoa.to_radix                                                              3   base 36....
-   [OK]          Atod.parse                                                                 0   basic integers....
-   [OK]          Atod.parse                                                                 1   decimals....
-   [OK]          Atod.parse                                                                 2   exponential....
-   [OK]          Atod.parse                                                                 3   special values....
-   [OK]          Atod.parse                                                                 4   invalid strings return None....
-   [OK]          Atod.parse                                                                 5   hex with js_options....
-   [OK]          Atod.parse                                                                 6   underscores....
-   [OK]          IntToString                                                                0   of_int32....
-   [OK]          IntToString                                                                1   of_int64....
-   [OK]          IntToString                                                                2   of_int....
-   [OK]          IntToString                                                                3   of_int_radix binary....
-   [OK]          IntToString                                                                4   of_int_radix hex....
-   [OK]          IntToString                                                                5   of_int64_radix....
- 
- Full test results in `~/.opam/5.4/.opam-switch/build/quickjs.0.2.0/_build/default/test/_build/_tests/quickjs'.
- Test Successful in 0.008s. 95 tests run.
- (cd _build/default/test262 && ./test262.exe)
- Testing `test262'.
- This run has ID `3WK5J81F'.
- 
-   [OK]          RegExp.compile                 0   compile: simple patterns.
-   [OK]          RegExp.compile                 1   compile: empty pattern.
-   [OK]          RegExp.compile                 2   compile: all flags.
-   [OK]          RegExp.compile                 3   compile: complex patterns.
-   [OK]          RegExp.compile                 4   error: unmatched paren.
-   [OK]          RegExp.compile                 5   error: unmatched bracket.
-   [OK]          RegExp.compile                 6   error: invalid quantifier.
-   [OK]          RegExp.compile                 7   error: invalid escape.
-   [OK]          RegExp.compile                 8   error: invalid group.
-   [OK]          RegExp.compile                 9   error: empty alternation (...
-   [OK]          RegExp.compile                10   error: invalid range.
-   [OK]          RegExp.compile                11   error: invalid backreference.
-   [OK]          RegExp.compile                12   edge: nested groups.
-   [OK]          RegExp.compile                13   edge: many alternatives.
-   [OK]          RegExp.compile                14   edge: long pattern.
-   [OK]          RegExp.compile                15   edge: unicode pattern.
-   [OK]          RegExp.compile                16   edge: escape sequences.
-   [OK]          RegExp.compile                17   edge: character class esca...
-   [OK]          RegExp.compile                18   edge: quantifier variations.
-   [OK]          RegExp.compile                19   edge: lookaround.
-   [OK]          RegExp.compile                20   edge: non-capturing group.
-   [OK]          RegExp.compile                21   edge: named groups.
-   [OK]          RegExp.compile                22   edge: word boundaries.
-   [OK]          RegExp.compile                23   edge: anchors.
-   [OK]          RegExp.prototype.test          0   S15.10.6.3_A1_T1: simple m...
-   [OK]          RegExp.prototype.test          1   S15.10.6.3_A1_T2: no match.
-   [OK]          RegExp.prototype.test          2   S15.10.6.3_A1_T3: empty pa...
-   [OK]          RegExp.prototype.test          3   S15.10.6.3_A1_T4: characte...
-   [OK]          RegExp.prototype.test          4   S15.10.6.3_A1_T5: digit pa...
-   [OK]          RegExp.prototype.test          5   S15.10.6.3_A1_T6: word bou...
-   [OK]          RegExp.prototype.test          6   S15.10.6.3_A1_T7: start an...
-   [OK]          RegExp.prototype.test          7   S15.10.6.3_A1_T8: end anchor.
-   [OK]          RegExp.prototype.test          8   S15.10.6.3_A1_T9: both anc...
-   [OK]          RegExp.prototype.test          9   S15.10.6.3_A1_T10: alterna...
-   [OK]          RegExp.prototype.test         10   S15.10.6.3_A1_T11: quantif...
-   [OK]          RegExp.prototype.test         11   S15.10.6.3_A1_T12: groups.
-   [OK]          RegExp.prototype.test         12   S15.10.6.3_A1_T13: optiona...
-   [OK]          RegExp.prototype.test         13   S15.10.6.3_A1_T14: escape ...
-   [OK]          RegExp.prototype.test         14   S15.10.6.3_A1_T15: whitesp...
-   [OK]          RegExp.prototype.test         15   flag_i: case insensitive.
-   [OK]          RegExp.prototype.test         16   flag_g: global.
-   [OK]          RegExp.prototype.test         17   flag_m: multiline.
-   [OK]          RegExp.prototype.test         18   flag_s: dotall.
-   [OK]          RegExp.prototype.test         19   flag_y: sticky.
-   [OK]          RegExp.prototype.test         20   flag_y_lastindex: sticky w...
-   [OK]          RegExp.prototype.test         21   special_chars: regex metac...
-   [OK]          RegExp.prototype.test         22   unicode_basic: unicode mat...
-   [OK]          RegExp.prototype.test         23   empty_string_match: empty ...
-   [OK]          RegExp.prototype.test         24   lookahead: positive and ne...
-   [OK]          RegExp.prototype.test         25   lookbehind: positive and n...
-   [OK]          RegExp.prototype.test         26   backreference: backreference.
-   [OK]          RegExp.prototype.test         27   repetition_bounds: bounded...
-   [OK]          RegExp.prototype.exec          0   S15.10.6.2_A1_T1: simple m...
-   [OK]          RegExp.prototype.exec          1   S15.10.6.2_A1_T2: match wi...
-   [OK]          RegExp.prototype.exec          2   S15.10.6.2_A1_T3: no match.
-   [OK]          RegExp.prototype.exec          3   S15.10.6.2_A1_T4: returns ...
-   [OK]          RegExp.prototype.exec          4   S15.10.6.2_A1_T5: digit pa...
-   [OK]          RegExp.prototype.exec          5   S15.10.6.2_A1_T6: word pat...
-   [OK]          RegExp.prototype.exec          6   S15.10.6.2_A1_T7: empty in...
-   [OK]          RegExp.prototype.exec          7   S15.10.6.2_A1_T8: empty pa...
-   [OK]          RegExp.prototype.exec          8   S15.10.6.2_A1_T9: case sen...
-   [OK]          RegExp.prototype.exec          9   S15.10.6.2_A1_T10: special...
-   [OK]          RegExp.prototype.exec         10   S15.10.6.2_A2_T1: single g...
-   [OK]          RegExp.prototype.exec         11   S15.10.6.2_A2_T2: multiple...
-   [OK]          RegExp.prototype.exec         12   S15.10.6.2_A2_T3: nested g...
-   [OK]          RegExp.prototype.exec         13   S15.10.6.2_A2_T4: optional...
-   [OK]          RegExp.prototype.exec         14   S15.10.6.2_A2_T5: groups i...
-   [OK]          RegExp.prototype.exec         15   S15.10.6.2_A2_T6: quantifi...
-   [OK]          RegExp.prototype.exec         16   S15.10.6.2_A2_T7: group wi...
-   [OK]          RegExp.prototype.exec         17   S15.10.6.2_A2_T8: non-capt...
-   [OK]          RegExp.prototype.exec         18   S15.10.6.2_A2_T9: date pat...
-   [OK]          RegExp.prototype.exec         19   S15.10.6.2_A2_T10: email p...
-   [OK]          RegExp.prototype.exec         20   S15.10.6.2_A3_T1: global i...
-   [OK]          RegExp.prototype.exec         21   S15.10.6.2_A3_T2: without ...
-   [OK]          RegExp.prototype.exec         22   S15.10.6.2_A3_T3: manual l...
-   [OK]          RegExp.prototype.exec         23   S15.10.6.2_A3_T4: lastInde...
-   [OK]          RegExp.prototype.exec         24   S15.10.6.2_A3_T5: iterate ...
-   [OK]          RegExp.prototype.exec         25   S15.10.6.2_A3_T6: sticky f...
-   [OK]          RegExp.prototype.exec         26   S15.10.6.2_A3_T7: sticky a...
-   [OK]          RegExp.prototype.exec         27   S15.10.6.2_A4_T1: basic na...
-   [OK]          RegExp.prototype.exec         28   S15.10.6.2_A4_T2: multiple...
-   [OK]          RegExp.prototype.exec         29   S15.10.6.2_A4_T3: named da...
-   [OK]          RegExp.prototype.exec         30   S15.10.6.2_A4_T4: nonexist...
-   [OK]          RegExp.prototype.exec         31   S15.10.6.2_A4_T5: unmatche...
-   [OK]          RegExp.prototype.exec         32   S15.10.6.2_A4_T6: mixed gr...
-   [OK]          RegExp.prototype.exec         33   S15.10.6.2_A5_T1: start an...
-   [OK]          RegExp.prototype.exec         34   S15.10.6.2_A5_T2: end anchor.
-   [OK]          RegExp.prototype.exec         35   S15.10.6.2_A5_T3: multilin...
-   [OK]          RegExp.prototype.exec         36   edge: empty match.
-   [OK]          RegExp.prototype.exec         37   edge: unicode.
-   [OK]          RegExp.prototype.exec         38   edge: newlines.
-   [OK]          RegExp.prototype.exec         39   edge: lookahead.
-   [OK]          RegExp.prototype.exec         40   edge: lookbehind.
-   [OK]          RegExp.prototype.exec         41   edge: backreference.
-   [OK]          RegExp.prototype.exec         42   edge: greedy vs lazy.
-   [OK]          RegExp.prototype.exec         43   edge: alternation.
-   [OK]          RegExp.prototype.exec         44   edge: word boundary.
-   [OK]          RegExp.prototype.exec         45   edge: dotall.
-   [OK]          RegExp.flags                   0   flags: empty.
-   [OK]          RegExp.flags                   1   flags: single.
-   [OK]          RegExp.flags                   2   flags: multiple.
-   [OK]          RegExp.flags                   3   flags: all.
-   [OK]          RegExp.flags                   4   global: true.
-   [OK]          RegExp.flags                   5   global: false.
-   [OK]          RegExp.flags                   6   global: with others.
-   [OK]          RegExp.flags                   7   ignoreCase: true.
-   [OK]          RegExp.flags                   8   ignoreCase: false.
-   [OK]          RegExp.flags                   9   ignoreCase: with others.
-   [OK]          RegExp.flags                  10   multiline: true.
-   [OK]          RegExp.flags                  11   multiline: false.
-   [OK]          RegExp.flags                  12   multiline: with others.
-   [OK]          RegExp.flags                  13   dotAll: true.
-   [OK]          RegExp.flags                  14   dotAll: false.
-   [OK]          RegExp.flags                  15   dotAll: behavior.
-   [OK]          RegExp.flags                  16   sticky: true.
-   [OK]          RegExp.flags                  17   sticky: false.
-   [OK]          RegExp.flags                  18   sticky: behavior.
-   [OK]          RegExp.flags                  19   unicode: true.
-   [OK]          RegExp.flags                  20   unicode: false.
-   [OK]          RegExp.flags                  21   combined: gi.
-   [OK]          RegExp.flags                  22   combined: gm.
-   [OK]          RegExp.flags                  23   combined: gy.
-   [OK]          RegExp.flags                  24   combined: consistency.
-   [OK]          RegExp.source                  0   source: simple pattern.
-   [OK]          RegExp.source                  1   source: empty pattern.
-   [OK]          RegExp.source                  2   source: independent of flags.
-   [OK]          RegExp.source                  3   source: special chars.
-   [OK]          RegExp.source                  4   source: escape sequences.
-   [OK]          RegExp.source                  5   source: character class.
-   [OK]          RegExp.source                  6   source: groups.
-   [OK]          RegExp.source                  7   source: alternation.
-   [OK]          RegExp.source                  8   source: quantifiers.
-   [OK]          RegExp.source                  9   source: lookaround.
-   [OK]          RegExp.source                 10   source: unicode.
-   [OK]          RegExp.source                 11   source: complex.
-   [OK]          RegExp.source                 12   source: forward slash.
-   [OK]          RegExp.source                 13   source: backslash.
- 
- Full test results in `~/.opam/5.4/.opam-switch/build/quickjs.0.2.0/_build/default/test262/_build/_tests/test262'.
- Test Successful in 0.011s. 137 tests run.
-> compiled  quickjs.0.2.0
-> removed   quickjs.0.2.0
-> installed quickjs.0.2.0
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-25 18:30.44 ---> saved as "c9bf540798b1387cbc1927564ba8720ed8bf3684f461904db91f5b5542682647"
Job succeeded
2026-03-25 18:30.54: Job succeeded