- github
- ocaml
- opam-repository
- 3e0c39
- compilers,5.4,dune.3.22.2,revdeps,saturn.0.5.0
(not at the head of any monitored branch or PR)
2026-04-10 17:47.49: New job: test saturn.0.5.0 with dune.3.22.2, using opam dev
from https://github.com/ocaml/opam-repository.git#refs/pull/29704/head (3e0c395e7b1393a792367f8edca3654dac71e6fd)
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/29704/head" && git reset --hard 3e0c395e
git fetch origin master
git merge --no-edit 9d8ceab8e9f49f5671cf459997c8a47cf0e675ca
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-13-ocaml-5.4@sha256:a32e708a4134e2a41db640ce8876b2475794c7cd5c0ce822b17aeaf65592bf03
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 dune.3.22.2 3.22.2
RUN opam reinstall dune.3.22.2; \
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" != 'dune.3.22.2' && partial_fails="$partial_fails $pkg"; \
done; \
test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
exit 1
RUN opam reinstall saturn.0.5.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" != 'saturn.0.5.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 saturn.0.5.0) || true
RUN opam reinstall --with-test --verbose saturn.0.5.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" != 'saturn.0.5.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-04-10 17:47.49: Using cache hint "ocaml/opam:debian-13-ocaml-5.4@sha256:a32e708a4134e2a41db640ce8876b2475794c7cd5c0ce822b17aeaf65592bf03-dune.3.22.2-saturn.0.5.0-3e0c395e7b1393a792367f8edca3654dac71e6fd"
2026-04-10 17:47.49: Using OBuilder spec:
((from ocaml/opam:debian-13-ocaml-5.4@sha256:a32e708a4134e2a41db640ce8876b2475794c7cd5c0ce822b17aeaf65592bf03)
(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 dune.3.22.2 3.22.2"))
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall dune.3.22.2;\
\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\" != 'dune.3.22.2' && 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 saturn.0.5.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\" != 'saturn.0.5.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 saturn.0.5.0) || true"))
(run (shell "opam reinstall --with-test --verbose saturn.0.5.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\" != 'saturn.0.5.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-04-10 17:47.49: Waiting for resource in pool OCluster
2026-04-11 00:47.51: Waiting for worker…
2026-04-11 00:49.41: Got resource from pool OCluster
Building on bremusa.ocamllabs.io
All commits already cached
Updating files: 62% (11648/18686)
Updating files: 63% (11773/18686)
Updating files: 64% (11960/18686)
Updating files: 65% (12146/18686)
Updating files: 66% (12333/18686)
Updating files: 67% (12520/18686)
Updating files: 68% (12707/18686)
Updating files: 69% (12894/18686)
Updating files: 70% (13081/18686)
Updating files: 71% (13268/18686)
Updating files: 72% (13454/18686)
Updating files: 73% (13641/18686)
Updating files: 74% (13828/18686)
Updating files: 75% (14015/18686)
Updating files: 76% (14202/18686)
Updating files: 77% (14389/18686)
Updating files: 78% (14576/18686)
Updating files: 79% (14762/18686)
Updating files: 80% (14949/18686)
Updating files: 81% (15136/18686)
Updating files: 82% (15323/18686)
Updating files: 83% (15510/18686)
Updating files: 84% (15697/18686)
Updating files: 85% (15884/18686)
Updating files: 86% (16070/18686)
Updating files: 87% (16257/18686)
Updating files: 88% (16444/18686)
Updating files: 89% (16631/18686)
Updating files: 90% (16818/18686)
Updating files: 91% (17005/18686)
Updating files: 92% (17192/18686)
Updating files: 93% (17378/18686)
Updating files: 94% (17565/18686)
Updating files: 95% (17752/18686)
Updating files: 96% (17939/18686)
Updating files: 97% (18126/18686)
Updating files: 98% (18313/18686)
Updating files: 99% (18500/18686)
Updating files: 100% (18686/18686)
Updating files: 100% (18686/18686), done.
HEAD is now at 9d8ceab8e9 Merge pull request #29697 from filipeom/opam-publish-smtml.0.25.0
Updating 9d8ceab8e9..3e0c395e7b
Fast-forward
packages/chrome-trace/chrome-trace.3.22.2/opam | 39 +++++++++++
.../dune-action-plugin.3.22.2/opam | 52 +++++++++++++++
.../dune-action-trace.3.22.2/opam | 39 +++++++++++
.../dune-build-info/dune-build-info.3.22.2/opam | 45 +++++++++++++
.../dune-configurator.3.22.2/opam | 49 ++++++++++++++
packages/dune-glob/dune-glob.3.22.2/opam | 42 ++++++++++++
.../dune-private-libs.3.22.2/opam | 50 +++++++++++++++
packages/dune-rpc-lwt/dune-rpc-lwt.3.22.2/opam | 41 ++++++++++++
packages/dune-rpc/dune-rpc.3.22.2/opam | 44 +++++++++++++
packages/dune-site/dune-site.3.22.2/opam | 37 +++++++++++
packages/dune/dune.3.22.2/opam | 75 ++++++++++++++++++++++
packages/dyn/dyn.3.22.2/opam | 40 ++++++++++++
packages/fs-io/fs-io.3.22.2/opam | 39 +++++++++++
packages/ocamlc-loc/ocamlc-loc.3.22.2/opam | 43 +++++++++++++
packages/ordering/ordering.3.22.2/opam | 38 +++++++++++
packages/stdune/stdune.3.22.2/opam | 46 +++++++++++++
packages/top-closure/top-closure.3.22.2/opam | 38 +++++++++++
packages/xdg/xdg.3.22.2/opam | 39 +++++++++++
18 files changed, 796 insertions(+)
create mode 100644 packages/chrome-trace/chrome-trace.3.22.2/opam
create mode 100644 packages/dune-action-plugin/dune-action-plugin.3.22.2/opam
create mode 100644 packages/dune-action-trace/dune-action-trace.3.22.2/opam
create mode 100644 packages/dune-build-info/dune-build-info.3.22.2/opam
create mode 100644 packages/dune-configurator/dune-configurator.3.22.2/opam
create mode 100644 packages/dune-glob/dune-glob.3.22.2/opam
create mode 100644 packages/dune-private-libs/dune-private-libs.3.22.2/opam
create mode 100644 packages/dune-rpc-lwt/dune-rpc-lwt.3.22.2/opam
create mode 100644 packages/dune-rpc/dune-rpc.3.22.2/opam
create mode 100644 packages/dune-site/dune-site.3.22.2/opam
create mode 100644 packages/dune/dune.3.22.2/opam
create mode 100644 packages/dyn/dyn.3.22.2/opam
create mode 100644 packages/fs-io/fs-io.3.22.2/opam
create mode 100644 packages/ocamlc-loc/ocamlc-loc.3.22.2/opam
create mode 100644 packages/ordering/ordering.3.22.2/opam
create mode 100644 packages/stdune/stdune.3.22.2/opam
create mode 100644 packages/top-closure/top-closure.3.22.2/opam
create mode 100644 packages/xdg/xdg.3.22.2/opam
(from ocaml/opam:debian-13-ocaml-5.4@sha256:a32e708a4134e2a41db640ce8876b2475794c7cd5c0ce822b17aeaf65592bf03)
2026-04-11 00:49.45 ---> using "4e852d2e6c9ac39a43c0cb8d1ef92ecff46d16da630bff560bb4811e0bb278c3" 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-04-11 00:49.45 ---> using "c82a131037ae9ff29ac79f02306f126bd36264ccb683d2324f553289b0d4a496" 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-04-11 00:49.45 ---> using "983e4dc58d26f7046c0fe6fbe642bc66995d2abecd6409a14b0c538d3f1a7bd2" 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.1"}]
# compiler-packages ocaml-base-compiler.5.4.1, ocaml-compiler.5.4.1, 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.1
2026-04-11 00:49.45 ---> using "8b346866360ce3a934df95a88d3a1520ccbf589f659a7e26aa97be0b96b1083a" 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-04-11 00:49.45 ---> using "8be7be6786c965fdad4454d936ba98cc5fa516f8de8fee90f280618661533faa" from cache
/home/opam: (copy (src .) (dst opam-repository/))
2026-04-11 00:49.47 ---> using "c0553ba1781e82471f38f012874b6b7341f662c325cc75285bfd7972f7a6ff87" from cache
/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2026-04-11 00:49.47 ---> using "e05b19873f9cb2918bf114246a81e8bf23cb51c80d627ed2b044915e44a942dd" from cache
/home/opam: (run (network host)
(shell "opam update --depexts || true"))
+ /usr/bin/sudo "apt-get" "update"
- Hit:1 http://deb.debian.org/debian trixie InRelease
- 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-security trixie-security/main amd64 Packages [121 kB]
- Fetched 211 kB in 0s (1725 kB/s)
- Reading package lists...
-
2026-04-11 00:49.47 ---> using "dc69cd977951bdc4dffcc68622bf3ea65b4d02db568ca1f8bd5ab395f414a24f" from cache
/home/opam: (run (shell "opam pin add -k version -yn dune.3.22.2 3.22.2"))
dune is now pinned to version 3.22.2
2026-04-11 00:49.47 ---> using "d2dbab2e673d61aa25772ad855c91b371a83246b8bcc8859d8fc280f9fcf9826" from cache
/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall dune.3.22.2;\
\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\" != 'dune.3.22.2' && partial_fails=\"$partial_fails $pkg\";\
\n done;\
\n test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
\n exit 1"))
dune.3.22.2 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 1 package
- install dune 3.22.2 (pinned)
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved dune.3.22.2 (cached)
-> installed dune.3.22.2
Done.
# To update the current shell environment, run: eval $(opam env)
2026-04-11 00:49.47 ---> using "6f94ccb4a18327fa9742ec042c4183209005d455af95ec03af9e9453c8a8c9d1" from cache
/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall saturn.0.5.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\" != 'saturn.0.5.0' && partial_fails=\"$partial_fails $pkg\";\
\n done;\
\n test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
\n exit 1"))
saturn.0.5.0 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 4 packages
- install backoff 0.1.1 [required by saturn_lockfree]
- install multicore-magic 2.3.2 [required by saturn_lockfree]
- install saturn 0.5.0
- install saturn_lockfree 0.5.0 [required by saturn]
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved backoff.0.1.1 (cached)
-> retrieved multicore-magic.2.3.2 (cached)
-> retrieved saturn.0.5.0, saturn_lockfree.0.5.0 (https://opam.ocaml.org/cache)
-> installed backoff.0.1.1
-> installed multicore-magic.2.3.2
-> installed saturn_lockfree.0.5.0
-> installed saturn.0.5.0
Done.
# To update the current shell environment, run: eval $(opam env)
2026-04-11 00:50.00 ---> saved as "f74a0777e3f3d2b706463cccd8097f81ca316e71a28361ce1e0e494eab002d2e"
/home/opam: (run (network host)
(shell "(opam reinstall --with-test saturn.0.5.0) || true"))
The following actions will be performed:
=== recompile 1 package
- recompile saturn 0.5.0
=== install 33 packages
- install alcotest 1.9.1 [required by saturn]
- install astring 0.8.5 [required by alcotest]
- install cmdliner 2.1.0 [required by alcotest, dscheck]
- install containers 3.18 [required by dscheck]
- install csexp 1.5.2 [required by dune-configurator]
- install domain-local-await 1.0.1 [required by multicore-bench]
- install domain_shims 0.1.0 [required by saturn]
- install dscheck 0.5.0 [required by saturn]
- install dune-configurator 3.22.2 [required by containers]
- install either 1.0.0 [required by containers]
- install fmt 0.11.0 [required by alcotest]
- install mtime 2.1.0 [required by multicore-bench]
- install multicore-bench 0.1.7 [required by saturn]
- install multicore-magic-dscheck 2.3.2 [required by saturn]
- install ocaml-syntax-shims 1.0.0 [required by alcotest]
- install ocamlbuild 0.16.1 [required by uutf, astring, fmt, mtime]
- install ocamlfind 1.9.8 [required by uutf, astring, fmt, mtime]
- install oseq 0.5.1 [required by dscheck]
- install ounit2 2.2.7 [required by qcheck-ounit]
- install qcheck 0.91 [required by saturn]
- install qcheck-alcotest 0.91 [required by saturn]
- install qcheck-core 0.91 [required by qcheck-alcotest, qcheck, qcheck-stm]
- install qcheck-multicoretests-util 0.10 [required by qcheck-stm]
- install qcheck-ounit 0.91 [required by qcheck]
- install qcheck-stm 0.10 [required by saturn]
- install re 1.14.0 [required by alcotest]
- install seq base [required by ounit2]
- install stdlib-shims 0.3.0 [required by alcotest]
- install thread-table 1.0.0 [required by domain-local-await]
- install topkg 1.1.1 [required by uutf, astring, fmt, mtime]
- install tsort 2.2.0 [required by dscheck]
- install uutf 1.0.4 [required by alcotest]
- install yojson 3.0.0 [required by saturn]
<><> 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 containers.3.18 (https://opam.ocaml.org/cache)
-> retrieved csexp.1.5.2 (https://opam.ocaml.org/cache)
-> retrieved domain-local-await.1.0.1 (https://opam.ocaml.org/cache)
-> retrieved domain_shims.0.1.0 (https://opam.ocaml.org/cache)
-> retrieved dscheck.0.5.0 (https://opam.ocaml.org/cache)
-> installed domain_shims.0.1.0
-> installed csexp.1.5.2
-> retrieved dune-configurator.3.22.2 (https://github.com/ocaml/dune/releases/download/3.22.2/dune-3.22.2.tbz)
-> retrieved either.1.0.0 (https://opam.ocaml.org/cache)
-> retrieved fmt.0.11.0 (https://opam.ocaml.org/cache)
-> retrieved mtime.2.1.0 (https://opam.ocaml.org/cache)
-> installed either.1.0.0
-> retrieved multicore-bench.0.1.7 (https://opam.ocaml.org/cache)
-> retrieved multicore-magic-dscheck.2.3.2 (https://opam.ocaml.org/cache)
-> retrieved ocaml-syntax-shims.1.0.0 (https://opam.ocaml.org/cache)
-> retrieved ocamlbuild.0.16.1 (https://opam.ocaml.org/cache)
-> retrieved ocamlfind.1.9.8 (https://opam.ocaml.org/cache)
-> retrieved oseq.0.5.1 (https://opam.ocaml.org/cache)
-> retrieved ounit2.2.2.7 (https://opam.ocaml.org/cache)
-> retrieved qcheck.0.91, qcheck-alcotest.0.91, qcheck-core.0.91, qcheck-ounit.0.91 (https://opam.ocaml.org/cache)
-> retrieved qcheck-multicoretests-util.0.10, qcheck-stm.0.10 (https://opam.ocaml.org/cache)
-> installed cmdliner.2.1.0
-> installed dune-configurator.3.22.2
-> installed ocaml-syntax-shims.1.0.0
-> installed oseq.0.5.1
-> retrieved re.1.14.0 (https://opam.ocaml.org/cache)
-> retrieved saturn.0.5.0 (https://opam.ocaml.org/cache)
-> retrieved seq.base (2 extra sources)
-> retrieved seq.base (2 extra sources)
-> installed seq.base
-> retrieved stdlib-shims.0.3.0 (https://opam.ocaml.org/cache)
-> retrieved thread-table.1.0.0 (https://opam.ocaml.org/cache)
-> retrieved topkg.1.1.1 (https://opam.ocaml.org/cache)
-> retrieved tsort.2.2.0 (https://opam.ocaml.org/cache)
-> installed stdlib-shims.0.3.0
-> installed qcheck-core.0.91
-> installed thread-table.1.0.0
-> retrieved uutf.1.0.4 (https://opam.ocaml.org/cache)
-> retrieved yojson.3.0.0 (https://opam.ocaml.org/cache)
-> installed tsort.2.2.0
-> installed domain-local-await.1.0.1
-> installed qcheck-multicoretests-util.0.10
-> installed re.1.14.0
-> installed ounit2.2.2.7
-> installed qcheck-stm.0.10
-> installed containers.3.18
-> installed qcheck-ounit.0.91
-> installed yojson.3.0.0
-> installed qcheck.0.91
-> installed dscheck.0.5.0
-> installed ocamlfind.1.9.8
-> installed multicore-magic-dscheck.2.3.2
-> removed saturn.0.5.0
-> installed ocamlbuild.0.16.1
-> installed topkg.1.1.1
-> installed mtime.2.1.0
-> installed uutf.1.0.4
-> installed fmt.0.11.0
-> installed astring.0.8.5
-> installed multicore-bench.0.1.7
-> installed alcotest.1.9.1
-> installed qcheck-alcotest.0.91
-> installed saturn.0.5.0
Done.
# To update the current shell environment, run: eval $(opam env)
2026-04-11 00:50.50 ---> saved as "4f7457b0c8114fd4fcc2e5792dc43a993625c82289763511c19a9f8c181fca7f"
/home/opam: (run (shell "opam reinstall --with-test --verbose saturn.0.5.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\" != 'saturn.0.5.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 saturn 0.5.0
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Processing 1/4: [saturn.0.5.0: extract]
-> retrieved saturn.0.5.0 (cached)
Processing 2/4: [saturn: dune build]
+ /home/opam/.opam/opam-init/hooks/sandbox.sh "build" "dune" "build" "-p" "saturn" "-j" "71" "@install" "@runtest" (CWD=/home/opam/.opam/5.4/.opam-switch/build/saturn.0.5.0)
- (cd _build/default/bench && ./main.exe -brief)
- Saturn Relaxed_queue:
- messages over time/1 adder, 1 taker (cas):
- 7.00 M/s
- messages over time/1 adder, 1 taker (not lf):
- 3.51 M/s
- messages over time/1 adder, 1 taker (spin):
- 6.83 M/s
- messages over time/1 adder, 2 takers (cas):
- 1.90 M/s
- messages over time/1 adder, 2 takers (not lf):
- 6.58 M/s
- messages over time/1 adder, 2 takers (spin):
- 1.55 M/s
- messages over time/2 adders, 1 taker (cas):
- 3.26 M/s
- messages over time/2 adders, 1 taker (not lf):
- 4.77 M/s
- messages over time/2 adders, 1 taker (spin):
- 4.33 M/s
- messages over time/2 adders, 2 takers (cas):
- 1.82 M/s
- messages over time/2 adders, 2 takers (not lf):
- 3.13 M/s
- messages over time/2 adders, 2 takers (spin):
- 4.60 M/s
- time per message/1 adder, 1 taker (cas):
- 285.66 ns
- time per message/1 adder, 1 taker (not lf):
- 569.65 ns
- time per message/1 adder, 1 taker (spin):
- 292.84 ns
- time per message/1 adder, 2 takers (cas):
- 1580.56 ns
- time per message/1 adder, 2 takers (not lf):
- 455.71 ns
- time per message/1 adder, 2 takers (spin):
- 1938.73 ns
- time per message/2 adders, 1 taker (cas):
- 919.41 ns
- time per message/2 adders, 1 taker (not lf):
- 628.74 ns
- time per message/2 adders, 1 taker (spin):
- 693.31 ns
- time per message/2 adders, 2 takers (cas):
- 2199.47 ns
- time per message/2 adders, 2 takers (not lf):
- 1276.75 ns
- time per message/2 adders, 2 takers (spin):
- 868.64 ns
- Saturn_lockfree Queue:
- messages over time/1 nb adder, 1 nb taker:
- 10.11 M/s
- messages over time/1 nb adder, 2 nb takers:
- 10.35 M/s
- messages over time/2 nb adders, 1 nb taker:
- 8.70 M/s
- messages over time/2 nb adders, 2 nb takers:
- 10.08 M/s
- messages over time/one domain:
- 4.93 M/s
- time per message/1 nb adder, 1 nb taker:
- 197.81 ns
- time per message/1 nb adder, 2 nb takers:
- 289.97 ns
- time per message/2 nb adders, 1 nb taker:
- 344.68 ns
- time per message/2 nb adders, 2 nb takers:
- 396.67 ns
- time per message/one domain:
- 202.92 ns
- Saturn_lockfree Single_prod_single_cons_queue:
- messages over time/2 workers, capacity 1:
- 2.02 M/s
- messages over time/2 workers, capacity 1 (unsafe):
- 1.84 M/s
- messages over time/2 workers, capacity 32768:
- 10.96 M/s
- messages over time/2 workers, capacity 32768 (unsafe):
- 10.80 M/s
- messages over time/2 workers, capacity 4096:
- 8.42 M/s
- messages over time/2 workers, capacity 4096 (unsafe):
- 13.42 M/s
- messages over time/2 workers, capacity 512:
- 10.05 M/s
- messages over time/2 workers, capacity 512 (unsafe):
- 11.85 M/s
- messages over time/2 workers, capacity 64:
- 5.28 M/s
- messages over time/2 workers, capacity 64 (unsafe):
- 8.04 M/s
- messages over time/2 workers, capacity 8:
- 4.43 M/s
- messages over time/2 workers, capacity 8 (unsafe):
- 5.01 M/s
- time per message/2 workers, capacity 1:
- 987.88 ns
- time per message/2 workers, capacity 1 (unsafe):
- 1087.07 ns
- time per message/2 workers, capacity 32768:
- 182.50 ns
- time per message/2 workers, capacity 32768 (unsafe):
- 185.19 ns
- time per message/2 workers, capacity 4096:
- 237.47 ns
- time per message/2 workers, capacity 4096 (unsafe):
- 149.03 ns
- time per message/2 workers, capacity 512:
- 198.94 ns
- time per message/2 workers, capacity 512 (unsafe):
- 168.80 ns
- time per message/2 workers, capacity 64:
- 378.70 ns
- time per message/2 workers, capacity 64 (unsafe):
- 248.83 ns
- time per message/2 workers, capacity 8:
- 451.63 ns
- time per message/2 workers, capacity 8 (unsafe):
- 398.99 ns
- Saturn_lockfree Size:
- operations over time/1 worker:
- 38.01 M/s
- operations over time/2 workers:
- 69.15 M/s
- operations over time/4 workers:
- 136.48 M/s
- time per operation/1 worker:
- 26.31 ns
- time per operation/2 workers:
- 28.92 ns
- time per operation/4 workers:
- 29.31 ns
- Saturn_lockfree Skiplist:
- operations over time/1 workers, 10% mem 45% add 45% rem:
- 1.07 M/s
- operations over time/1 workers, 50% mem 25% add 25% rem:
- 1.25 M/s
- operations over time/1 workers, 90% mem 5% add 5% rem:
- 1.33 M/s
- operations over time/2 workers, 10% mem 45% add 45% rem:
- 2.28 M/s
- operations over time/2 workers, 50% mem 25% add 25% rem:
- 1.33 M/s
- operations over time/2 workers, 90% mem 5% add 5% rem:
- 1.72 M/s
- operations over time/4 workers, 10% mem 45% add 45% rem:
- 3.58 M/s
- operations over time/4 workers, 50% mem 25% add 25% rem:
- 3.17 M/s
- operations over time/4 workers, 90% mem 5% add 5% rem:
- 3.47 M/s
- time per operation/1 workers, 10% mem 45% add 45% rem:
- 932.86 ns
- time per operation/1 workers, 50% mem 25% add 25% rem:
- 801.76 ns
- time per operation/1 workers, 90% mem 5% add 5% rem:
- 753.54 ns
- time per operation/2 workers, 10% mem 45% add 45% rem:
- 875.75 ns
- time per operation/2 workers, 50% mem 25% add 25% rem:
- 1509.25 ns
- time per operation/2 workers, 90% mem 5% add 5% rem:
- 1166.18 ns
- time per operation/4 workers, 10% mem 45% add 45% rem:
- 1117.08 ns
- time per operation/4 workers, 50% mem 25% add 25% rem:
- 1263.61 ns
- time per operation/4 workers, 90% mem 5% add 5% rem:
- 1153.52 ns
- Saturn_lockfree Stack:
- messages over time/1 adder, 1 taker:
- 33.52 M/s
- messages over time/1 adder, 2 takers:
- 25.98 M/s
- messages over time/2 adders, 1 taker:
- 25.66 M/s
- messages over time/2 adders, 2 takers:
- 19.60 M/s
- messages over time/one domain:
- 23.37 M/s
- time per message/1 adder, 1 taker:
- 59.68 ns
- time per message/1 adder, 2 takers:
- 115.46 ns
- time per message/2 adders, 1 taker:
- 116.90 ns
- time per message/2 adders, 2 takers:
- 204.04 ns
- time per message/one domain:
- 42.79 ns
- Saturn_lockfree Work_stealing_deque:
- messages over time/1 adder, 1 taker:
- 4.59 M/s
- messages over time/1 adder, 2 takers:
- 7.28 M/s
- messages over time/1 adder, 4 takers:
- 4.56 M/s
- messages over time/one domain (FIFO):
- 10.77 M/s
- messages over time/one domain (LIFO):
- 15.73 M/s
- spawns over time/1 worker:
- 6.85 M/s
- spawns over time/2 workers:
- 11.73 M/s
- spawns over time/4 workers:
- 11.43 M/s
- spawns over time/8 workers:
- 40.40 M/s
- time per message/1 adder, 1 taker:
- 435.33 ns
- time per message/1 adder, 2 takers:
- 411.89 ns
- time per message/1 adder, 4 takers:
- 1097.08 ns
- time per message/one domain (FIFO):
- 92.88 ns
- time per message/one domain (LIFO):
- 63.59 ns
- time per spawn/1 worker:
- 146.02 ns
- time per spawn/2 workers:
- 170.52 ns
- time per spawn/4 workers:
- 350.09 ns
- time per spawn/8 workers:
- 198.00 ns
- (cd _build/default/test/mpmc_relaxed_queue && ./test_mpmc_relaxed_queue.exe)
- Testing `Mpmc_queue'.
- This run has ID `0NWC0KV8'.
-
- [OK] single-thread 0 is it a queue.
- [OK] validate items 0 1 prod. 1 cons.
- [OK] validate indices under load 0 4 prod. 4 cons.
- [OK] validate indices under load 1 8 prod. 1 cons.
- [OK] validate indices under load 2 1 prod. 8 cons.
- [OK] single-thread-CAS-intf 0 is it a queue.
- [OK] validate items-CAS-intf 0 1 prod. 1 cons.
- [OK] single-thread-spinning 0 is it a queue.
- [OK] validate-items-spinning 0 1 prod. 1 cons.
-
- Full test results in `~/.opam/5.4/.opam-switch/build/saturn.0.5.0/_build/default/test/mpmc_relaxed_queue/_build/_tests/Mpmc_queue'.
- Test Successful in 20.735s. 9 tests run.
-> compiled saturn.0.5.0
-> removed saturn.0.5.0
-> installed saturn.0.5.0
Done.
# To update the current shell environment, run: eval $(opam env)
2026-04-11 00:51.18 ---> saved as "49e1a474e8421c281501f32d41e82608db4d241b31931d0f733e82b436524618"
Job succeeded
2026-04-11 00:51.26: Job succeeded