Build:
- 0
2026-02-27 04:04.00: New job: test serde_derive.0.0.2 with ocamlbuild.0.14.3, using opam dev
from https://github.com/ocaml/opam-repository.git#refs/pull/29451/head (09d7830dd4a7cd4cfc1725bd69ec5b222eae677d)
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/29451/head" && git reset --hard 09d7830d
git fetch origin master
git merge --no-edit 5abb4f44e937819c2e438ab71bc23607a7cad3da
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-13-ocaml-5.4@sha256:4add1601135529e9f2e403a25c1c640231c0e871e87f88cf8feab4be5095104c
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 ocamlbuild.0.14.3 0.14.3
RUN opam reinstall ocamlbuild.0.14.3; \
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" != 'ocamlbuild.0.14.3' && partial_fails="$partial_fails $pkg"; \
done; \
test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
exit 1
RUN opam reinstall serde_derive.0.0.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" != 'serde_derive.0.0.2' && 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 serde_derive.0.0.2) || true
RUN opam reinstall --with-test --verbose serde_derive.0.0.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" != 'serde_derive.0.0.2' && 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-02-27 04:04.00: Using cache hint "ocaml/opam:debian-13-ocaml-5.4@sha256:4add1601135529e9f2e403a25c1c640231c0e871e87f88cf8feab4be5095104c-ocamlbuild.0.14.3-serde_derive.0.0.2-09d7830dd4a7cd4cfc1725bd69ec5b222eae677d"
2026-02-27 04:04.00: Using OBuilder spec:
((from ocaml/opam:debian-13-ocaml-5.4@sha256:4add1601135529e9f2e403a25c1c640231c0e871e87f88cf8feab4be5095104c)
(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 ocamlbuild.0.14.3 0.14.3"))
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall ocamlbuild.0.14.3;\
\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\" != 'ocamlbuild.0.14.3' && 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 serde_derive.0.0.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\" != 'serde_derive.0.0.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 (network host)
(shell "(opam reinstall --with-test serde_derive.0.0.2) || true"))
(run (shell "opam reinstall --with-test --verbose serde_derive.0.0.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\" != 'serde_derive.0.0.2' && partial_fails=\"$partial_fails $pkg\";\
\n done;\
\n test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
\n exit 1"))
)
2026-02-27 04:04.00: Waiting for resource in pool OCluster
2026-03-02 02:12.28: Waiting for worker…
2026-03-02 02:17.24: Got resource from pool OCluster
Building on clete
All commits already cached
Updating files: 68% (12503/18334)
Updating files: 69% (12651/18334)
Updating files: 70% (12834/18334)
Updating files: 71% (13018/18334)
Updating files: 72% (13201/18334)
Updating files: 73% (13384/18334)
Updating files: 74% (13568/18334)
Updating files: 75% (13751/18334)
Updating files: 76% (13934/18334)
Updating files: 77% (14118/18334)
Updating files: 78% (14301/18334)
Updating files: 79% (14484/18334)
Updating files: 80% (14668/18334)
Updating files: 81% (14851/18334)
Updating files: 82% (15034/18334)
Updating files: 83% (15218/18334)
Updating files: 84% (15401/18334)
Updating files: 85% (15584/18334)
Updating files: 86% (15768/18334)
Updating files: 87% (15951/18334)
Updating files: 88% (16134/18334)
Updating files: 89% (16318/18334)
Updating files: 90% (16501/18334)
Updating files: 91% (16684/18334)
Updating files: 92% (16868/18334)
Updating files: 93% (17051/18334)
Updating files: 94% (17234/18334)
Updating files: 95% (17418/18334)
Updating files: 96% (17601/18334)
Updating files: 97% (17784/18334)
Updating files: 98% (17968/18334)
Updating files: 99% (18151/18334)
Updating files: 100% (18334/18334)
Updating files: 100% (18334/18334), done.
HEAD is now at 5abb4f44e9 Merge pull request #29466 from mseri/release-doi2bib-0.9.1
Merge made by the 'ort' strategy.
.../ocaml-base-compiler.3.07+1/opam | 1 +
.../ocaml-base-compiler.3.07+2/opam | 1 +
.../ocaml-base-compiler/ocaml-base-compiler.3.07/opam | 1 +
.../ocaml-base-compiler.3.08.0/opam | 1 +
.../ocaml-base-compiler.3.08.1/opam | 1 +
.../ocaml-base-compiler.3.08.2/opam | 1 +
.../ocaml-base-compiler.3.08.3/opam | 1 +
.../ocaml-base-compiler.3.08.4/opam | 1 +
.../ocaml-base-compiler.3.09.0/opam | 1 +
.../ocaml-base-compiler.3.09.1/opam | 1 +
.../ocaml-base-compiler.3.09.2/opam | 1 +
.../ocaml-base-compiler.3.09.3/opam | 1 +
.../ocaml-base-compiler.3.10.0/opam | 1 +
.../ocaml-base-compiler.3.10.1/opam | 1 +
.../ocaml-base-compiler.3.10.2/opam | 1 +
.../ocaml-base-compiler.3.11.0/opam | 1 +
.../ocaml-base-compiler.3.11.1/opam | 1 +
.../ocaml-base-compiler.3.11.2/opam | 1 +
.../ocaml-base-compiler.3.12.0/opam | 1 +
.../ocaml-base-compiler.3.12.1/opam | 1 +
.../ocaml-base-compiler.4.00.0/opam | 1 +
.../ocaml-base-compiler.4.00.1/opam | 1 +
.../ocaml-base-compiler.4.01.0/opam | 1 +
.../ocaml-base-compiler.4.02.0/opam | 1 +
.../ocaml-base-compiler.4.02.1/opam | 1 +
.../ocaml-base-compiler.4.02.2/opam | 1 +
.../ocaml-base-compiler.4.02.3/opam | 1 +
.../ocaml-base-compiler.4.03.0/opam | 1 +
.../ocaml-base-compiler.4.04.0/opam | 1 +
.../ocaml-base-compiler.4.04.1/opam | 1 +
.../ocaml-base-compiler.4.04.2/opam | 1 +
.../ocaml-base-compiler.4.05.0/opam | 1 +
.../ocaml-base-compiler.4.06.0/opam | 1 +
.../ocaml-base-compiler.4.06.1/opam | 1 +
.../ocaml-base-compiler.4.07.0/opam | 1 +
.../ocaml-base-compiler.4.07.1/opam | 1 +
.../ocaml-base-compiler.4.08.0/opam | 1 +
.../ocaml-base-compiler.4.08.1/opam | 1 +
.../ocaml-base-compiler.4.09.0/opam | 1 +
.../ocaml-base-compiler.4.09.1/opam | 1 +
.../ocaml-base-compiler.4.10.0/opam | 1 +
.../ocaml-base-compiler.4.10.1/opam | 1 +
.../ocaml-base-compiler.4.10.2/opam | 1 +
.../ocaml-base-compiler.4.11.0/opam | 1 +
.../ocaml-base-compiler.4.11.1/opam | 1 +
.../ocaml-base-compiler.4.11.2/opam | 1 +
.../ocaml-base-compiler.4.12.0/opam | 1 +
.../ocaml-base-compiler.4.12.1/opam | 1 +
.../ocaml-base-compiler.4.13.0/opam | 1 +
.../ocaml-base-compiler.4.13.1/opam | 1 +
.../ocaml-base-compiler.4.14.0/opam | 1 +
.../ocaml-base-compiler.4.14.1/opam | 1 +
.../ocaml-base-compiler.4.14.2/opam | 1 +
.../ocaml-base-compiler.4.14.2~rc1/opam | 1 +
.../ocaml-base-compiler.4.14.3/opam | 1 +
.../ocaml-base-compiler/ocaml-base-compiler.5.0.0/opam | 5 ++++-
.../ocaml-base-compiler/ocaml-base-compiler.5.1.0/opam | 5 ++++-
.../ocaml-base-compiler/ocaml-base-compiler.5.1.1/opam | 5 ++++-
.../ocaml-base-compiler/ocaml-base-compiler.5.2.0/opam | 5 ++++-
.../ocaml-base-compiler/ocaml-base-compiler.5.2.1/opam | 5 ++++-
packages/ocaml-compiler/ocaml-compiler.5.3.0/opam | 1 +
packages/ocaml-compiler/ocaml-compiler.5.3/opam | 1 +
packages/ocaml-compiler/ocaml-compiler.5.4.0/opam | 1 +
.../ocaml-compiler/ocaml-compiler.5.4.0~alpha1/opam | 1 +
.../ocaml-compiler/ocaml-compiler.5.4.0~beta1/opam | 1 +
.../ocaml-compiler/ocaml-compiler.5.4.0~beta2/opam | 1 +
packages/ocaml-compiler/ocaml-compiler.5.4.0~rc1/opam | 1 +
packages/ocaml-compiler/ocaml-compiler.5.4.1/opam | 1 +
packages/ocaml-compiler/ocaml-compiler.5.4/opam | 1 +
.../ocaml-secondary-compiler.4.08.1-1/opam | 1 +
.../ocaml-secondary-compiler.4.08.1/opam | 1 +
.../ocaml-secondary-compiler.4.14.2/opam | 1 +
.../ocaml-variants.3.09.1+metaocaml/opam | 1 +
.../ocaml-variants.4.00.0+debug-runtime/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.00.1+BER/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.00.1+PIC/opam | 1 +
.../ocaml-variants.4.00.1+debug-runtime/opam | 1 +
.../ocaml-variants.4.00.1+open-types/opam | 1 +
.../ocaml-variants.4.00.1+raspberrypi/opam | 1 +
.../ocaml-variants.4.00.1+short-types/opam | 1 +
.../ocaml-variants/ocaml-variants.4.01.0+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.01.0+BER/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.01.0+PIC/opam | 1 +
.../ocaml-variants.4.01.0+armv6-freebsd/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.01.0+fp/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.01.0+lsb/opam | 1 +
.../ocaml-variants.4.01.0+musl+static/opam | 1 +
.../ocaml-variants/ocaml-variants.4.01.0+musl/opam | 1 +
.../ocaml-variants.4.01.0+open-types/opam | 1 +
.../ocaml-variants/ocaml-variants.4.01.0+profile/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.02.0+PIC/opam | 1 +
.../ocaml-variants.4.02.0+improved-errors/opam | 1 +
.../ocaml-variants/ocaml-variants.4.02.1+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.02.1+BER/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.02.1+PIC/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.02.1+fp/opam | 1 +
.../ocaml-variants.4.02.1+modular-implicits-ber/opam | 1 +
.../ocaml-variants.4.02.1+modular-implicits/opam | 1 +
.../ocaml-variants.4.02.1+musl+static/opam | 1 +
.../ocaml-variants/ocaml-variants.4.02.1+musl/opam | 1 +
.../ocaml-variants.4.02.2+improved-errors/opam | 1 +
.../ocaml-variants/ocaml-variants.4.02.3+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.02.3+PIC/opam | 1 +
.../ocaml-variants/ocaml-variants.4.02.3+buckle-1/opam | 1 +
.../ocaml-variants.4.02.3+buckle-master/opam | 1 +
.../ocaml-variants.4.02.3+bytecode-only/opam | 1 +
.../ocaml-variants.4.02.3+curried-constr/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.02.3+fp/opam | 1 +
.../ocaml-variants.4.02.3+musl+static/opam | 1 +
.../ocaml-variants/ocaml-variants.4.02.3+musl/opam | 1 +
.../ocaml-variants/ocaml-variants.4.02.4+trunk/opam | 1 +
.../ocaml-variants/ocaml-variants.4.03.0+32bit/opam | 1 +
.../ocaml-variants/ocaml-variants.4.03.0+fPIC/opam | 1 +
.../ocaml-variants/ocaml-variants.4.03.0+flambda/opam | 1 +
.../ocaml-variants.4.03.0+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.03.0+fp/opam | 1 +
.../ocaml-variants.4.03.0+statistical-memprof/opam | 1 +
.../ocaml-variants/ocaml-variants.4.03.1+trunk/opam | 1 +
.../ocaml-variants/ocaml-variants.4.04.0+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.04.0+BER/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.04.0+afl/opam | 1 +
.../ocaml-variants.4.04.0+bytecode-only/opam | 1 +
.../ocaml-variants/ocaml-variants.4.04.0+fPIC/opam | 1 +
.../ocaml-variants/ocaml-variants.4.04.0+flambda/opam | 1 +
.../ocaml-variants.4.04.0+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.04.0+fp/opam | 1 +
.../ocaml-variants.4.04.0+safe-string/opam | 1 +
.../ocaml-variants.4.04.0+spacetime/opam | 1 +
.../ocaml-variants.4.04.0+trunk+forced_lto/opam | 1 +
.../ocaml-variants/ocaml-variants.4.04.1+32bit/opam | 1 +
.../ocaml-variants.4.04.1+bytecode-only/opam | 1 +
.../ocaml-variants.4.04.1+copatterns/opam | 1 +
.../ocaml-variants/ocaml-variants.4.04.1+fPIC/opam | 1 +
.../ocaml-variants/ocaml-variants.4.04.1+flambda/opam | 1 +
.../ocaml-variants.4.04.1+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.04.1+fp/opam | 1 +
.../ocaml-variants.4.04.1+safe-string/opam | 1 +
.../ocaml-variants.4.04.1+spacetime/opam | 1 +
.../ocaml-variants/ocaml-variants.4.04.2+32bit/opam | 1 +
.../ocaml-variants.4.04.2+bytecode-only/opam | 1 +
.../ocaml-variants/ocaml-variants.4.04.2+fPIC/opam | 1 +
.../ocaml-variants/ocaml-variants.4.04.2+flambda/opam | 1 +
.../ocaml-variants.4.04.2+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.04.2+fp/opam | 1 +
.../ocaml-variants.4.04.2+safe-string/opam | 1 +
.../ocaml-variants.4.04.2+spacetime/opam | 1 +
.../ocaml-variants.4.04.2+statistical-memprof/opam | 1 +
.../ocaml-variants/ocaml-variants.4.04.3+trunk/opam | 1 +
.../ocaml-variants/ocaml-variants.4.05.0+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.05.0+afl/opam | 1 +
.../ocaml-variants.4.05.0+bytecode-only/opam | 1 +
.../ocaml-variants/ocaml-variants.4.05.0+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.05.0+lto/opam | 1 +
.../ocaml-variants.4.05.0+musl+flambda/opam | 1 +
.../ocaml-variants.4.05.0+musl+static+flambda/opam | 1 +
.../ocaml-variants.4.05.0+safe-string/opam | 1 +
.../ocaml-variants.4.05.0+spacetime/opam | 1 +
.../ocaml-variants.4.05.0+statistical-memprof/opam | 1 +
.../ocaml-variants.4.05.1+trunk+afl/opam | 1 +
.../ocaml-variants.4.05.1+trunk+flambda/opam | 1 +
.../ocaml-variants.4.05.1+trunk+fp+flambda/opam | 1 +
.../ocaml-variants/ocaml-variants.4.05.1+trunk+fp/opam | 1 +
.../ocaml-variants.4.05.1+trunk+safe-string/opam | 1 +
.../ocaml-variants/ocaml-variants.4.05.1+trunk/opam | 1 +
.../ocaml-variants/ocaml-variants.4.06.0+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.06.0+afl/opam | 1 +
.../ocaml-variants.4.06.0+bytecode-only/opam | 1 +
.../ocaml-variants.4.06.0+default-unsafe-string/opam | 1 +
.../opam | 1 +
.../ocaml-variants/ocaml-variants.4.06.0+flambda/opam | 1 +
.../ocaml-variants.4.06.0+force-safe-string/opam | 1 +
.../ocaml-variants.4.06.0+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.06.0+fp/opam | 1 +
.../ocaml-variants.4.06.0+musl+flambda/opam | 1 +
.../ocaml-variants.4.06.0+musl+static+flambda/opam | 1 +
.../ocaml-variants.4.06.0+no-flat-float-array/opam | 1 +
.../ocaml-variants.4.06.0+spacetime/opam | 1 +
.../ocaml-variants.4.06.0+statistical-memprof/opam | 1 +
.../ocaml-variants/ocaml-variants.4.06.1+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.06.1+afl/opam | 1 +
.../ocaml-variants.4.06.1+bytecode-only/opam | 1 +
.../ocaml-variants.4.06.1+default-unsafe-string/opam | 1 +
.../ocaml-variants/ocaml-variants.4.06.1+flambda/opam | 1 +
.../ocaml-variants.4.06.1+force-safe-string/opam | 1 +
.../ocaml-variants.4.06.1+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.06.1+fp/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.06.1+lto/opam | 1 +
.../ocaml-variants.4.06.1+musl+flambda/opam | 1 +
.../ocaml-variants.4.06.1+musl+static+flambda/opam | 1 +
.../ocaml-variants.4.06.1+no-flat-float-array/opam | 1 +
.../opam | 1 +
.../ocaml-variants/ocaml-variants.4.06.1+rescript/opam | 1 +
.../ocaml-variants.4.06.1+statistical-memprof/opam | 1 +
.../ocaml-variants/ocaml-variants.4.06.1+termux/opam | 1 +
.../ocaml-variants.4.06.2+trunk+afl/opam | 1 +
.../ocaml-variants.4.06.2+trunk+flambda/opam | 1 +
.../ocaml-variants.4.06.2+trunk+force-safe-string/opam | 1 +
.../ocaml-variants.4.06.2+trunk+fp+flambda/opam | 1 +
.../ocaml-variants/ocaml-variants.4.06.2+trunk+fp/opam | 1 +
.../ocaml-variants/ocaml-variants.4.06.2+trunk/opam | 1 +
.../ocaml-variants/ocaml-variants.4.07.0+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.07.0+afl/opam | 1 +
.../ocaml-variants.4.07.0+bytecode-only/opam | 1 +
.../ocaml-variants.4.07.0+default-unsafe-string/opam | 1 +
.../opam | 1 +
.../ocaml-variants/ocaml-variants.4.07.0+flambda/opam | 1 +
.../ocaml-variants.4.07.0+force-safe-string/opam | 1 +
.../ocaml-variants.4.07.0+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.07.0+fp/opam | 1 +
.../ocaml-variants.4.07.0+no-flat-float-array/opam | 1 +
.../ocaml-variants.4.07.0+spacetime/opam | 1 +
.../ocaml-variants/ocaml-variants.4.07.1+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.07.1+BER/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.07.1+afl/opam | 1 +
.../ocaml-variants.4.07.1+bytecode-only/opam | 1 +
.../ocaml-variants.4.07.1+default-unsafe-string/opam | 1 +
.../opam | 1 +
.../ocaml-variants/ocaml-variants.4.07.1+flambda/opam | 1 +
.../ocaml-variants.4.07.1+force-safe-string/opam | 1 +
.../ocaml-variants.4.07.1+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.07.1+fp/opam | 1 +
.../ocaml-variants.4.07.1+musl+flambda/opam | 1 +
.../ocaml-variants.4.07.1+musl+static+flambda/opam | 1 +
.../ocaml-variants.4.07.1+no-flat-float-array/opam | 1 +
.../ocaml-variants.4.07.1+spacetime/opam | 1 +
.../ocaml-variants.4.07.1+statistical-memprof/opam | 1 +
.../ocaml-variants.4.07.2+trunk+afl/opam | 1 +
.../opam | 1 +
.../ocaml-variants.4.07.2+trunk+flambda/opam | 1 +
.../ocaml-variants.4.07.2+trunk+fp+flambda/opam | 1 +
.../ocaml-variants/ocaml-variants.4.07.2+trunk+fp/opam | 1 +
.../ocaml-variants/ocaml-variants.4.07.2+trunk/opam | 1 +
.../ocaml-variants/ocaml-variants.4.08.0+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.08.0+afl/opam | 1 +
.../ocaml-variants.4.08.0+bytecode-only/opam | 1 +
.../ocaml-variants.4.08.0+default-unsafe-string/opam | 1 +
.../opam | 1 +
.../ocaml-variants/ocaml-variants.4.08.0+flambda/opam | 1 +
.../ocaml-variants.4.08.0+force-safe-string/opam | 1 +
.../ocaml-variants.4.08.0+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.08.0+fp/opam | 1 +
.../ocaml-variants.4.08.0+musl+flambda/opam | 1 +
.../ocaml-variants.4.08.0+musl+static+flambda/opam | 1 +
.../ocaml-variants.4.08.0+no-flat-float-array/opam | 1 +
.../ocaml-variants.4.08.0+spacetime/opam | 1 +
.../ocaml-variants/ocaml-variants.4.08.1+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.08.1+afl/opam | 1 +
.../ocaml-variants.4.08.1+bytecode-only/opam | 1 +
.../ocaml-variants.4.08.1+default-unsafe-string/opam | 1 +
.../opam | 1 +
.../ocaml-variants/ocaml-variants.4.08.1+flambda/opam | 1 +
.../ocaml-variants.4.08.1+force-safe-string/opam | 1 +
.../ocaml-variants.4.08.1+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.08.1+fp/opam | 1 +
.../ocaml-variants.4.08.1+musl+flambda/opam | 1 +
.../ocaml-variants.4.08.1+musl+static+flambda/opam | 1 +
.../ocaml-variants.4.08.1+spacetime/opam | 1 +
.../ocaml-variants.4.08.2+trunk+afl/opam | 1 +
.../opam | 1 +
.../ocaml-variants.4.08.2+trunk+flambda/opam | 1 +
.../ocaml-variants.4.08.2+trunk+force-safe-string/opam | 1 +
.../ocaml-variants.4.08.2+trunk+fp+flambda/opam | 1 +
.../ocaml-variants/ocaml-variants.4.08.2+trunk+fp/opam | 1 +
.../ocaml-variants/ocaml-variants.4.08.2+trunk/opam | 1 +
.../ocaml-variants/ocaml-variants.4.09.0+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.09.0+afl/opam | 1 +
.../ocaml-variants.4.09.0+bytecode-only/opam | 1 +
.../ocaml-variants.4.09.0+default-unsafe-string/opam | 1 +
.../opam | 1 +
.../ocaml-variants/ocaml-variants.4.09.0+flambda/opam | 1 +
.../ocaml-variants.4.09.0+force-safe-string/opam | 1 +
.../ocaml-variants.4.09.0+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.09.0+fp/opam | 1 +
.../ocaml-variants.4.09.0+musl+flambda/opam | 1 +
.../ocaml-variants.4.09.0+musl+static+flambda/opam | 1 +
.../ocaml-variants.4.09.0+no-flat-float-array/opam | 1 +
.../ocaml-variants.4.09.0+spacetime/opam | 1 +
.../ocaml-variants/ocaml-variants.4.09.1+32bit/opam | 1 +
.../ocaml-variants.4.09.1+afl+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.09.1+afl/opam | 1 +
.../ocaml-variants.4.09.1+bytecode-only/opam | 1 +
.../ocaml-variants.4.09.1+default-unsafe-string/opam | 1 +
.../opam | 1 +
.../ocaml-variants/ocaml-variants.4.09.1+flambda/opam | 1 +
.../ocaml-variants.4.09.1+force-safe-string/opam | 1 +
.../ocaml-variants.4.09.1+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.09.1+fp/opam | 1 +
.../ocaml-variants.4.09.1+musl+flambda/opam | 1 +
.../ocaml-variants.4.09.1+musl+static+flambda/opam | 1 +
.../ocaml-variants.4.09.1+no-flat-float-array/opam | 1 +
.../ocaml-variants.4.09.1+spacetime/opam | 1 +
.../ocaml-variants.4.09.2+trunk+afl/opam | 1 +
.../opam | 1 +
.../ocaml-variants.4.09.2+trunk+flambda/opam | 1 +
.../ocaml-variants.4.09.2+trunk+fp+flambda/opam | 1 +
.../ocaml-variants/ocaml-variants.4.09.2+trunk+fp/opam | 1 +
.../ocaml-variants/ocaml-variants.4.09.2+trunk/opam | 1 +
.../ocaml-variants/ocaml-variants.4.10.0+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.10.0+afl/opam | 1 +
.../ocaml-variants.4.10.0+bytecode-only/opam | 1 +
.../ocaml-variants.4.10.0+default-unsafe-string/opam | 1 +
.../opam | 1 +
.../ocaml-variants/ocaml-variants.4.10.0+flambda/opam | 1 +
.../ocaml-variants.4.10.0+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.10.0+fp/opam | 1 +
.../ocaml-variants.4.10.0+musl+flambda/opam | 1 +
.../ocaml-variants.4.10.0+musl+static+flambda/opam | 1 +
.../ocaml-variants/ocaml-variants.4.10.0+nnpcheck/opam | 1 +
.../ocaml-variants.4.10.0+no-flat-float-array/opam | 1 +
.../ocaml-variants.4.10.0+spacetime/opam | 1 +
.../ocaml-variants/ocaml-variants.4.10.1+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.10.1+afl/opam | 1 +
.../ocaml-variants.4.10.1+bytecode-only/opam | 1 +
.../ocaml-variants.4.10.1+default-unsafe-string/opam | 1 +
.../opam | 1 +
.../ocaml-variants/ocaml-variants.4.10.1+flambda/opam | 1 +
.../ocaml-variants.4.10.1+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.10.1+fp/opam | 1 +
.../ocaml-variants.4.10.1+musl+flambda/opam | 1 +
.../ocaml-variants.4.10.1+musl+static+flambda/opam | 1 +
.../ocaml-variants.4.10.1+no-flat-float-array/opam | 1 +
.../ocaml-variants/ocaml-variants.4.10.1+rc1+afl/opam | 1 +
.../ocaml-variants.4.10.1+spacetime/opam | 1 +
.../ocaml-variants/ocaml-variants.4.10.2+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.10.2+afl/opam | 1 +
.../ocaml-variants.4.10.2+bytecode-only/opam | 1 +
.../ocaml-variants.4.10.2+default-unsafe-string/opam | 1 +
.../opam | 1 +
.../ocaml-variants/ocaml-variants.4.10.2+flambda/opam | 1 +
.../ocaml-variants.4.10.2+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.10.2+fp/opam | 1 +
.../ocaml-variants.4.10.2+musl+flambda/opam | 1 +
.../ocaml-variants.4.10.2+musl+static+flambda/opam | 1 +
.../ocaml-variants.4.10.2+no-flat-float-array/opam | 1 +
.../ocaml-variants/ocaml-variants.4.10.2+rescript/opam | 1 +
.../ocaml-variants.4.10.2+spacetime/opam | 1 +
.../ocaml-variants.4.10.3+trunk+afl/opam | 1 +
.../ocaml-variants.4.10.3+trunk+flambda/opam | 1 +
.../ocaml-variants/ocaml-variants.4.10.3+trunk+fp/opam | 1 +
.../ocaml-variants/ocaml-variants.4.10.3+trunk/opam | 1 +
.../ocaml-variants/ocaml-variants.4.11.0+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.11.0+afl/opam | 1 +
.../ocaml-variants.4.11.0+bytecode-only/opam | 1 +
.../ocaml-variants.4.11.0+default-unsafe-string/opam | 1 +
.../opam | 1 +
.../ocaml-variants/ocaml-variants.4.11.0+flambda/opam | 1 +
.../ocaml-variants.4.11.0+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.11.0+fp/opam | 1 +
.../ocaml-variants.4.11.0+musl+flambda/opam | 1 +
.../ocaml-variants.4.11.0+musl+static+flambda/opam | 1 +
.../ocaml-variants.4.11.0+no-flat-float-array/opam | 1 +
.../ocaml-variants.4.11.0+spacetime/opam | 1 +
.../ocaml-variants/ocaml-variants.4.11.1+32bit/opam | 1 +
.../ocaml-variants.4.11.1+BER+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.11.1+BER/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.11.1+afl/opam | 1 +
.../ocaml-variants.4.11.1+bytecode-only/opam | 1 +
.../ocaml-variants.4.11.1+default-unsafe-string/opam | 1 +
.../opam | 1 +
.../ocaml-variants/ocaml-variants.4.11.1+flambda/opam | 1 +
.../ocaml-variants.4.11.1+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.11.1+fp/opam | 1 +
.../ocaml-variants.4.11.1+musl+flambda/opam | 1 +
.../ocaml-variants.4.11.1+musl+static+flambda/opam | 1 +
.../ocaml-variants.4.11.1+no-flat-float-array/opam | 1 +
.../ocaml-variants.4.11.1+spacetime/opam | 1 +
.../ocaml-variants/ocaml-variants.4.11.2+32bit/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.11.2+afl/opam | 1 +
.../ocaml-variants.4.11.2+bytecode-only/opam | 1 +
.../ocaml-variants.4.11.2+default-unsafe-string/opam | 1 +
.../opam | 1 +
.../ocaml-variants/ocaml-variants.4.11.2+flambda/opam | 1 +
.../ocaml-variants.4.11.2+fp+flambda/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.11.2+fp/opam | 1 +
.../ocaml-variants.4.11.2+musl+flambda/opam | 1 +
.../ocaml-variants.4.11.2+musl+static+flambda/opam | 1 +
.../ocaml-variants.4.11.2+no-flat-float-array/opam | 1 +
.../ocaml-variants.4.11.2+spacetime/opam | 1 +
.../ocaml-variants.4.11.3+trunk+afl/opam | 1 +
.../ocaml-variants.4.11.3+trunk+flambda/opam | 1 +
.../ocaml-variants/ocaml-variants.4.11.3+trunk+fp/opam | 1 +
.../ocaml-variants/ocaml-variants.4.11.3+trunk/opam | 1 +
.../ocaml-variants.4.12.0+domains+effects/opam | 1 +
.../ocaml-variants/ocaml-variants.4.12.0+domains/opam | 1 +
.../ocaml-variants/ocaml-variants.4.12.0+options/opam | 1 +
.../ocaml-variants/ocaml-variants.4.12.1+options/opam | 1 +
.../ocaml-variants/ocaml-variants.4.12.2+trunk/opam | 1 +
.../ocaml-variants/ocaml-variants.4.13.0+options/opam | 1 +
.../ocaml-variants/ocaml-variants.4.13.1+options/opam | 1 +
.../ocaml-variants/ocaml-variants.4.13.2+trunk/opam | 1 +
.../ocaml-variants/ocaml-variants.4.14.0+options/opam | 1 +
packages/ocaml-variants/ocaml-variants.4.14.1+BER/opam | 1 +
.../ocaml-variants/ocaml-variants.4.14.1+options/opam | 1 +
.../ocaml-variants/ocaml-variants.4.14.2+options/opam | 1 +
.../ocaml-variants.4.14.2~rc1+options/opam | 1 +
.../ocaml-variants/ocaml-variants.4.14.3+options/opam | 1 +
.../ocaml-variants/ocaml-variants.4.14.4+trunk/opam | 1 +
.../ocaml-variants/ocaml-variants.5.0.0+options/opam | 1 +
packages/ocaml-variants/ocaml-variants.5.0.0+tsan/opam | 1 +
.../ocaml-variants/ocaml-variants.5.0.1+trunk/opam | 1 +
.../ocaml-variants/ocaml-variants.5.1.0+options/opam | 1 +
packages/ocaml-variants/ocaml-variants.5.1.0+tsan/opam | 1 +
.../ocaml-variants.5.1.1+effect-syntax/opam | 1 +
.../ocaml-variants.5.1.1+flambda2+trunk/opam | 1 +
.../ocaml-variants/ocaml-variants.5.1.1+flambda2/opam | 1 +
.../ocaml-variants/ocaml-variants.5.1.1+options/opam | 1 +
packages/ocaml-variants/ocaml-variants.5.1.1+tsan/opam | 1 +
.../ocaml-variants/ocaml-variants.5.1.2+trunk/opam | 1 +
packages/ocaml-variants/ocaml-variants.5.2.0+msvc/opam | 1 +
.../ocaml-variants/ocaml-variants.5.2.0+options/opam | 1 +
.../ocaml-variants.5.2.0+statmemprof/opam | 1 +
.../ocaml-variants/ocaml-variants.5.2.1+options/opam | 1 +
.../ocaml-variants.5.2.1~rc1+options/opam | 1 +
.../ocaml-variants/ocaml-variants.5.2.2+trunk/opam | 1 +
packages/ocaml-variants/ocaml-variants.5.3.0+BER/opam | 1 +
packages/ocamlbuild/ocamlbuild.0.14.0/opam | 1 +
packages/ocamlbuild/ocamlbuild.0.14.1/opam | 1 +
packages/ocamlbuild/ocamlbuild.0.14.2+win/opam | 1 +
packages/ocamlbuild/ocamlbuild.0.14.2/opam | 1 +
packages/ocamlbuild/ocamlbuild.0.14.3+win/opam | 1 +
packages/ocamlbuild/ocamlbuild.0.14.3/opam | 1 +
packages/ocamlbuild/ocamlbuild.0.15.0/opam | 1 +
packages/ocamlbuild/ocamlbuild.0.16.1/opam | 1 +
packages/ocamlfind/ocamlfind.1.8.0/opam | 1 +
packages/ocamlfind/ocamlfind.1.8.1/opam | 1 +
packages/ocamlfind/ocamlfind.1.9.1/opam | 1 +
packages/ocamlfind/ocamlfind.1.9.2/opam | 1 +
packages/ocamlfind/ocamlfind.1.9.3/opam | 1 +
packages/ocamlfind/ocamlfind.1.9.5/opam | 1 +
packages/ocamlfind/ocamlfind.1.9.6/opam | 1 +
packages/ocamlfind/ocamlfind.1.9.8/opam | 1 +
packages/relocatable/relocatable.packages/opam | 18 ++++++++++++++++++
432 files changed, 464 insertions(+), 5 deletions(-)
create mode 100644 packages/relocatable/relocatable.packages/opam
(from ocaml/opam:debian-13-ocaml-5.4@sha256:4add1601135529e9f2e403a25c1c640231c0e871e87f88cf8feab4be5095104c)
2026-03-02 02:17.28 ---> using "3c18c9e472a4f76bc128dc0a5a1e21158ba3dbd0d6773ace6ec33f0cfe6fac9b" 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-02 02:17.28 ---> using "7a3442ad99cd957e3ce65df65cad40aee4354c6d524c7813b8b589bc410c187e" 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-02 02:17.28 ---> using "4214446d06a5b764dff5167574d07a5b4441731262795df63d7a3c5f64e1a189" 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-02 02:17.28 ---> using "8bf276ecf196c09ac4fb294f887dce47d9744c212aabbbad5d313f0a4179272a" 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-02 02:17.28 ---> using "c04e3f046c8eaf07d3d8f4b30debe47a6f7742bcdbfbfeb4d464149613cd35cd" from cache
/home/opam: (copy (src .) (dst opam-repository/))
2026-03-02 02:17.30 ---> using "f28d2d55603b70a3956974bde95e68526d52d43abb5c3f086de712d28b994566" from cache
/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2026-03-02 02:17.30 ---> using "3775e9b8ca53e7a42e175e2f214e7d345a02bf22f9dd6d271ae720654f277192" 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 [113 kB]
- Fetched 203 kB in 0s (988 kB/s)
- Reading package lists...
-
2026-03-02 02:17.30 ---> using "a6fcf1eb697bb2cbcd49a3ac591b228ed4dfb5d9211b39971561804e137638fa" from cache
/home/opam: (run (shell "opam pin add -k version -yn ocamlbuild.0.14.3 0.14.3"))
ocamlbuild is now pinned to version 0.14.3
2026-03-02 02:17.30 ---> using "963b801ba969ccb345fb2b0091d5b3fbc23c4ef4d4607da09cd43d88d10ecff1" from cache
/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall ocamlbuild.0.14.3;\
\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\" != 'ocamlbuild.0.14.3' && partial_fails=\"$partial_fails $pkg\";\
\n done;\
\n test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
\n exit 1"))
ocamlbuild.0.14.3 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 1 package
- install ocamlbuild 0.14.3 (pinned)
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved ocamlbuild.0.14.3 (cached)
-> installed ocamlbuild.0.14.3
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-02 02:17.30 ---> using "4a148b5f24637bcde3a11bf41664920358bff04e05d35133cadbaf90cc750096" from cache
/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall serde_derive.0.0.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\" != 'serde_derive.0.0.2' && partial_fails=\"$partial_fails $pkg\";\
\n done;\
\n test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
\n exit 1"))
serde_derive.0.0.2 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 15 packages
- install cppo 1.8.0 [required by ppx_deriving]
- install cstruct 6.2.0 [required by rio]
- install dune 3.21.1 [required by serde_derive]
- install fmt 0.11.0 [required by cstruct]
- install ocaml-compiler-libs v0.17.0 [required by ppxlib]
- install ocamlfind 1.9.8 [required by ppx_deriving]
- install ppx_derivers 1.2.1 [required by ppx_deriving]
- install ppx_deriving 6.1.1 [required by serde_derive]
- install ppxlib 0.37.0 [required by serde_derive]
- install rio 0.0.8 [required by serde]
- install serde 0.0.2 [required by serde_derive]
- install serde_derive 0.0.2
- install sexplib0 v0.17.0 [required by ppxlib]
- install stdlib-shims 0.3.0 [required by ppxlib]
- install topkg 1.1.1 [required by fmt]
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved cppo.1.8.0 (cached)
-> retrieved cstruct.6.2.0 (cached)
-> retrieved dune.3.21.1 (cached)
-> retrieved fmt.0.11.0 (cached)
-> retrieved ocaml-compiler-libs.v0.17.0 (cached)
-> retrieved ocamlfind.1.9.8 (cached)
-> retrieved ppx_derivers.1.2.1 (cached)
-> retrieved ppx_deriving.6.1.1 (cached)
-> retrieved ppxlib.0.37.0 (cached)
-> retrieved rio.0.0.8 (cached)
-> retrieved serde.0.0.2, serde_derive.0.0.2 (cached)
-> retrieved sexplib0.v0.17.0 (cached)
-> retrieved stdlib-shims.0.3.0 (cached)
-> retrieved topkg.1.1.1 (cached)
-> installed ocamlfind.1.9.8
-> installed topkg.1.1.1
-> installed fmt.0.11.0
-> installed dune.3.21.1
-> installed ppx_derivers.1.2.1
-> installed stdlib-shims.0.3.0
-> installed cstruct.6.2.0
-> installed sexplib0.v0.17.0
-> installed rio.0.0.8
-> installed cppo.1.8.0
-> installed serde.0.0.2
-> installed ocaml-compiler-libs.v0.17.0
-> installed ppxlib.0.37.0
-> installed ppx_deriving.6.1.1
-> installed serde_derive.0.0.2
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-02 02:20.21 ---> saved as "7496e9208ed2e146f62869629ffe86574cac3c11535e0ac977a2ebbf919192ab"
/home/opam: (run (network host)
(shell "(opam reinstall --with-test serde_derive.0.0.2) || true"))
The following actions will be performed:
=== recompile 1 package
- recompile serde_derive 0.0.2
=== install 23 packages
- install base v0.17.3 [required by ppx_inline_test]
- install conf-jq 1 [required by serde_derive]
- install csexp 1.5.2 [required by dune-configurator]
- install dune-configurator 3.21.1 [required by base]
- install jane-street-headers v0.17.0 [required by time_now]
- install jst-config v0.17.0 [required by time_now]
- install ocaml_intrinsics_kernel v0.17.1 [required by base]
- install ppx_assert v0.17.0 [required by jst-config]
- install ppx_base v0.17.0 [required by time_now]
- install ppx_cold v0.17.0 [required by ppx_base]
- install ppx_compare v0.17.0 [required by ppx_base]
- install ppx_enumerate v0.17.0 [required by ppx_base]
- install ppx_globalize v0.17.2 [required by ppx_base]
- install ppx_hash v0.17.0 [required by ppx_base]
- install ppx_here v0.17.0 [required by ppx_assert]
- install ppx_inline_test v0.17.1 [required by serde_json]
- install ppx_optcomp v0.17.1 [required by time_now]
- install ppx_sexp_conv v0.17.1 [required by ppx_base]
- install ppxlib_jane v0.17.4 [required by ppx_globalize, ppx_enumerate, ppx_hash]
- install serde_json 0.0.2 [required by serde_derive]
- install stdio v0.17.0 [required by ppx_optcomp]
- install time_now v0.17.0 [required by ppx_inline_test]
- install yojson 3.0.0 [required by serde_json]
The following system packages will first need to be installed:
jq
<><> Handling external dependencies <><><><><><><><><><><><><><><><><><><><><><>
opam believes some required external dependencies are missing. opam can:
> 1. Run apt-get to install them (may need root/sudo access)
2. Display the recommended apt-get command and wait while you run it manually (e.g. in another terminal)
3. Continue anyway, and, upon success, permanently register that this external dependency is present, but not detectable
4. Abort the installation
[1/2/3/4] 1
+ /usr/bin/sudo "apt-get" "install" "-qq" "-yy" "jq"
- Selecting previously unselected package libonig5:amd64.
- (Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 20654 files and directories currently installed.)
- Preparing to unpack .../libonig5_6.9.9-1+b1_amd64.deb ...
- Unpacking libonig5:amd64 (6.9.9-1+b1) ...
- Selecting previously unselected package libjq1:amd64.
- Preparing to unpack .../libjq1_1.7.1-6+deb13u1_amd64.deb ...
- Unpacking libjq1:amd64 (1.7.1-6+deb13u1) ...
- Selecting previously unselected package jq.
- Preparing to unpack .../jq_1.7.1-6+deb13u1_amd64.deb ...
- Unpacking jq (1.7.1-6+deb13u1) ...
- Setting up libonig5:amd64 (6.9.9-1+b1) ...
- Setting up libjq1:amd64 (1.7.1-6+deb13u1) ...
- Setting up jq (1.7.1-6+deb13u1) ...
- Processing triggers for libc-bin (2.41-12+deb13u1) ...
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved base.v0.17.3 (https://opam.ocaml.org/cache)
-> installed conf-jq.1
-> retrieved csexp.1.5.2 (https://opam.ocaml.org/cache)
-> installed csexp.1.5.2
-> retrieved dune-configurator.3.21.1 (https://opam.ocaml.org/cache)
-> retrieved jane-street-headers.v0.17.0 (https://opam.ocaml.org/cache)
-> retrieved jst-config.v0.17.0 (https://opam.ocaml.org/cache)
-> retrieved ocaml_intrinsics_kernel.v0.17.1 (https://opam.ocaml.org/cache)
-> retrieved ppx_assert.v0.17.0 (https://opam.ocaml.org/cache)
-> installed jane-street-headers.v0.17.0
-> retrieved ppx_base.v0.17.0 (https://opam.ocaml.org/cache)
-> retrieved ppx_cold.v0.17.0 (https://opam.ocaml.org/cache)
-> retrieved ppx_compare.v0.17.0 (https://opam.ocaml.org/cache)
-> retrieved ppx_enumerate.v0.17.0 (https://opam.ocaml.org/cache)
-> retrieved ppx_globalize.v0.17.2 (https://opam.ocaml.org/cache)
-> retrieved ppx_hash.v0.17.0 (https://opam.ocaml.org/cache)
-> retrieved ppx_here.v0.17.0 (https://opam.ocaml.org/cache)
-> installed ocaml_intrinsics_kernel.v0.17.1
-> retrieved ppx_inline_test.v0.17.1 (https://opam.ocaml.org/cache)
-> retrieved ppx_optcomp.v0.17.1 (https://opam.ocaml.org/cache)
-> retrieved ppx_sexp_conv.v0.17.1 (https://opam.ocaml.org/cache)
-> retrieved ppxlib_jane.v0.17.4 (https://opam.ocaml.org/cache)
-> retrieved serde_derive.0.0.2, serde_json.0.0.2 (https://opam.ocaml.org/cache)
-> retrieved stdio.v0.17.0 (https://opam.ocaml.org/cache)
-> retrieved time_now.v0.17.0 (https://opam.ocaml.org/cache)
-> retrieved yojson.3.0.0 (https://opam.ocaml.org/cache)
-> installed ppxlib_jane.v0.17.4
-> installed dune-configurator.3.21.1
-> removed serde_derive.0.0.2
-> installed yojson.3.0.0
-> installed base.v0.17.3
-> installed stdio.v0.17.0
-> installed ppx_here.v0.17.0
-> installed ppx_cold.v0.17.0
-> installed ppx_enumerate.v0.17.0
-> installed ppx_optcomp.v0.17.1
-> installed ppx_globalize.v0.17.2
-> installed ppx_compare.v0.17.0
-> installed ppx_sexp_conv.v0.17.1
-> installed ppx_hash.v0.17.0
-> installed ppx_assert.v0.17.0
-> installed ppx_base.v0.17.0
-> installed jst-config.v0.17.0
-> installed time_now.v0.17.0
-> installed ppx_inline_test.v0.17.1
-> installed serde_json.0.0.2
[ERROR] The compilation of serde_derive.0.0.2 failed at "dune build -p serde_derive -j 71 @install @runtest".
#=== ERROR while compiling serde_derive.0.0.2 =================================#
# context 2.5.0 | linux/x86_64 | ocaml-base-compiler.5.4.0 | file:///home/opam/opam-repository
# path ~/.opam/5.4/.opam-switch/build/serde_derive.0.0.2
# command ~/.opam/opam-init/hooks/sandbox.sh build dune build -p serde_derive -j 71 @install @runtest
# exit-code 1
# env-file ~/.opam/log/serde_derive-7-2baf39.env
# output-file ~/.opam/log/serde_derive-7-2baf39.out
### output ###
# (cd _build/default && /home/opam/.opam/5.4/bin/ocamlc.opt -w -40 -g -bin-annot -bin-annot-occurrences -I derive/.serde_derive.objs/byte -I /home/opam/.opam/5.4/lib/cstruct -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/rio -I /home/opam/.opam/5.4/lib/serde -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/stdlib-shims -no-alias-deps -open Serde_derive -o derive/.serde_derive.objs/byte/serde_derive__Ser.cmo -c -impl derive/ser.pp.ml)
# File "derive/ser.ml", lines 35-57, characters 2-28:
# 35 | ..match core_type.ptyp_desc with
# 36 | | Ptyp_constr (name, arg :: []) when is_primitive (Longident.name name.txt) ->
# 37 | let type_ser = serializer_for_type ~ctxt arg in
# 38 | let name = Ast.pexp_ident ~loc name in
# 39 | [%expr s ([%e name] [%e type_ser])]
# ...
# 54 | | Ptyp_variant (_, _, _)
# 55 | | Ptyp_poly (_, _)
# 56 | | Ptyp_package _ | Ptyp_extension _ ->
# 57 | failwith "unsupported"
# Warning 8 [partial-match]: this pattern-matching is not exhaustive.
# Here is an example of a case that is not matched: Ptyp_open (_, _)
# (cd _build/default && /home/opam/.opam/5.4/bin/ocamlc.opt -w -40 -g -bin-annot -bin-annot-occurrences -I derive/.serde_derive.objs/byte -I /home/opam/.opam/5.4/lib/cstruct -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/rio -I /home/opam/.opam/5.4/lib/serde -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/stdlib-shims -no-alias-deps -open Serde_derive -o derive/.serde_derive.objs/byte/serde_derive__De.cmo -c -impl derive/de.pp.ml)
# File "derive/de.ml", lines 43-65, characters 2-28:
# 43 | ..match core_type.ptyp_desc with
# 44 | | Ptyp_constr (name, arg :: []) when is_primitive (Longident.name name.txt) ->
# 45 | let type_ser = deserializer_for_type ~ctxt arg in
# 46 | let name = Ast.pexp_ident ~loc name in
# 47 | [%expr d ([%e name] [%e type_ser])]
# ...
# 62 | | Ptyp_variant (_, _, _)
# 63 | | Ptyp_poly (_, _)
# 64 | | Ptyp_package _ | Ptyp_extension _ ->
# 65 | failwith "unsupported"
# Warning 8 [partial-match]: this pattern-matching is not exhaustive.
# Here is an example of a case that is not matched: Ptyp_open (_, _)
# (cd _build/default && /home/opam/.opam/5.4/bin/ocamlopt.opt -w -40 -g -I derive/.serde_derive.objs/byte -I derive/.serde_derive.objs/native -I /home/opam/.opam/5.4/lib/cstruct -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/rio -I /home/opam/.opam/5.4/lib/serde -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/stdlib-shims -cmi-file derive/.serde_derive.objs/byte/serde_derive__Ser.cmi -no-alias-deps -open Serde_derive -o derive/.serde_derive.objs/native/serde_derive__Ser.cmx -c -impl derive/ser.pp.ml)
# File "derive/ser.ml", lines 35-57, characters 2-28:
# 35 | ..match core_type.ptyp_desc with
# 36 | | Ptyp_constr (name, arg :: []) when is_primitive (Longident.name name.txt) ->
# 37 | let type_ser = serializer_for_type ~ctxt arg in
# 38 | let name = Ast.pexp_ident ~loc name in
# 39 | [%expr s ([%e name] [%e type_ser])]
# ...
# 54 | | Ptyp_variant (_, _, _)
# 55 | | Ptyp_poly (_, _)
# 56 | | Ptyp_package _ | Ptyp_extension _ ->
# 57 | failwith "unsupported"
# Warning 8 [partial-match]: this pattern-matching is not exhaustive.
# Here is an example of a case that is not matched: Ptyp_open (_, _)
# (cd _build/default && /home/opam/.opam/5.4/bin/ocamlopt.opt -w -40 -g -I derive/.serde_derive.objs/byte -I derive/.serde_derive.objs/native -I /home/opam/.opam/5.4/lib/cstruct -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/rio -I /home/opam/.opam/5.4/lib/serde -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/stdlib-shims -cmi-file derive/.serde_derive.objs/byte/serde_derive__De.cmi -no-alias-deps -open Serde_derive -o derive/.serde_derive.objs/native/serde_derive__De.cmx -c -impl derive/de.pp.ml)
# File "derive/de.ml", lines 43-65, characters 2-28:
# 43 | ..match core_type.ptyp_desc with
# 44 | | Ptyp_constr (name, arg :: []) when is_primitive (Longident.name name.txt) ->
# 45 | let type_ser = deserializer_for_type ~ctxt arg in
# 46 | let name = Ast.pexp_ident ~loc name in
# 47 | [%expr d ([%e name] [%e type_ser])]
# ...
# 62 | | Ptyp_variant (_, _, _)
# 63 | | Ptyp_poly (_, _)
# 64 | | Ptyp_package _ | Ptyp_extension _ ->
# 65 | failwith "unsupported"
# Warning 8 [partial-match]: this pattern-matching is not exhaustive.
# Here is an example of a case that is not matched: Ptyp_open (_, _)
# File "derive/records.t/run.t", line 1, characters 0-0:
# /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/derive/records.t/run.t _build/default/derive/records.t/run.t.corrected
# diff --git a/_build/default/derive/records.t/run.t b/_build/default/derive/records.t/run.t.corrected
# index 217bc6d..01a7994 100644
# --- a/_build/default/derive/records.t/run.t
# +++ b/_build/default/derive/records.t/run.t.corrected
# @@ -79,7 +79,8 @@
# {
# tool_name = "ppx_driver";
# include_dirs = [];
# - load_path = [];
# + hidden_include_dirs = [];
# + load_path = ([], []);
# open_modules = [];
# for_package = None;
# debug = false;
# @@ -87,7 +88,7 @@
# use_vmthreads = false;
# recursive_types = false;
# principal = false;
# - transparent_modules = false;
# + no_alias_deps = false;
# unboxed_types = false;
# unsafe_string = false;
# cookies = []
# @@ -102,15 +103,14 @@
# let _ = ( let* )
# let serialize_rank =
# let open Serde.Ser in
# - fun t ->
# - fun ctx ->
# - record ctx "rank" 2
# - (fun ctx ->
# - let* () =
# - field ctx "rank_scores" ((s (list string)) t.rank_scores)
# - in
# - let* () = field ctx "rank_name" (string t.rank_name)
# - in Ok ())
# + fun t ctx ->
# + record ctx "rank" 2
# + (fun ctx ->
# + let* () =
# + field ctx "rank_scores" ((s (list string)) t.rank_scores)
# + in
# + let* () = field ctx "rank_name" (string t.rank_name)
# + in Ok ())
# let _ = serialize_rank
# open! Serde
# let ( let* ) = Result.bind
# @@ -182,26 +182,24 @@
# let _ = ( let* )
# let serialize_t =
# let open Serde.Ser in
# - fun t ->
# - fun ctx ->
# - record ctx "t" 8
# - (fun ctx ->
# - let* () = field ctx "name" (string t.name)
# - in
# - let* () = field ctx "commisioned" (bool t.commisioned)
# - in
# - let* () = field ctx "updated_at" (int64 t.updated_at)
# - in
# - let* () = field ctx "credits" ((s (option int32)) t.credits)
# - in
# - let* () =
# - field ctx "keywords" ((s (array string)) t.keywords)
# - in
# - let* () = field ctx "rank" ((s serialize_rank) t.rank)
# - in
# - let* () = field ctx "value" (float t.value)
# - in let* () = field ctx "type" (string t.type_)
# - in Ok ())
# + fun t ctx ->
# + record ctx "t" 8
# + (fun ctx ->
# + let* () = field ctx "name" (string t.name)
# + in
# + let* () = field ctx "commisioned" (bool t.commisioned)
# + in
# + let* () = field ctx "updated_at" (int64 t.updated_at)
# + in
# + let* () = field ctx "credits" ((s (option int32)) t.credits)
# + in
# + let* () = field ctx "keywords" ((s (array string)) t.keywords)
# + in
# + let* () = field ctx "rank" ((s serialize_rank) t.rank)
# + in
# + let* () = field ctx "value" (float t.value)
# + in let* () = field ctx "type" (string t.type_)
# + in Ok ())
# let _ = serialize_t
# open! Serde
# let ( let* ) = Result.bind
# @@ -339,13 +337,12 @@
# let _ = ( let* )
# let serialize_t_list =
# let open Serde.Ser in
# - fun t ->
# - fun ctx ->
# - record ctx "t_list" 1
# - (fun ctx ->
# - let* () =
# - field ctx "stuff" ((s (list (s serialize_t))) t.stuff)
# - in Ok ())
# + fun t ctx ->
# + record ctx "t_list" 1
# + (fun ctx ->
# + let* () =
# + field ctx "stuff" ((s (list (s serialize_t))) t.stuff)
# + in Ok ())
# let _ = serialize_t_list
# open! Serde
# let ( let* ) = Result.bind
# File "derive/variants.t/run.t", line 1, characters 0-0:
# /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/derive/variants.t/run.t _build/default/derive/variants.t/run.t.corrected
# diff --git a/_build/default/derive/variants.t/run.t b/_build/default/derive/variants.t/run.t.corrected
# index 676673d..f39e763 100644
# --- a/_build/default/derive/variants.t/run.t
# +++ b/_build/default/derive/variants.t/run.t.corrected
# @@ -63,7 +63,8 @@ $ externally tagged variant
# {
# tool_name = "ppx_driver";
# include_dirs = [];
# - load_path = [];
# + hidden_include_dirs = [];
# + load_path = ([], []);
# open_modules = [];
# for_package = None;
# debug = false;
# @@ -71,7 +72,7 @@ $ externally tagged variant
# use_vmthreads = false;
# recursive_types = false;
# principal = false;
# - transparent_modules = false;
# + no_alias_deps = false;
# unboxed_types = false;
# unsafe_string = false;
# cookies = []
# @@ -91,26 +92,25 @@ $ externally tagged variant
# let _ = ( let* )
# let serialize_rank =
# let open Serde.Ser in
# - fun t ->
# - fun ctx ->
# - match t with
# - | Captain r ->
# - record_variant ctx "rank" 0 "Captain" 2
# - (fun ctx ->
# - let* () = field ctx "name" (string r.name)
# - in let* () = field ctx "ship" (string r.ship)
# - in Ok ())
# - | Commander (v_1, v_2, v_3) ->
# - tuple_variant ctx "rank" 1 "Commander" 3
# - (fun ctx ->
# - let* () = element ctx (string v_1)
# - in
# - let* () = element ctx (int32 v_2)
# - in let* () = element ctx (float v_3)
# - in Ok ())
# - | Lt v_1 ->
# - newtype_variant ctx "rank" 2 "Lt" ((s (option bool)) v_1)
# - | Ensign -> unit_variant ctx "rank" 3 "Ensign"
# + fun t ctx ->
# + match t with
# + | Captain r ->
# + record_variant ctx "rank" 0 "Captain" 2
# + (fun ctx ->
# + let* () = field ctx "name" (string r.name)
# + in let* () = field ctx "ship" (string r.ship)
# + in Ok ())
# + | Commander (v_1, v_2, v_3) ->
# + tuple_variant ctx "rank" 1 "Commander" 3
# + (fun ctx ->
# + let* () = element ctx (string v_1)
# + in
# + let* () = element ctx (int32 v_2)
# + in let* () = element ctx (float v_3)
# + in Ok ())
# + | Lt v_1 ->
# + newtype_variant ctx "rank" 2 "Lt" ((s (option bool)) v_1)
# + | Ensign -> unit_variant ctx "rank" 3 "Ensign"
# let _ = serialize_rank
# open! Serde
# let ( let* ) = Result.bind
# @@ -121,14 +121,13 @@ $ externally tagged variant
# fun ctx ->
# let field_visitor =
# Visitor.make
# - ~visit_string:(fun _ctx ->
# - fun str ->
# - match str with
# - | "Captain" -> Ok `Captain
# - | "Commander" -> Ok `Commander
# - | "Lt" -> Ok `Lt
# - | "Ensign" -> Ok `Ensign
# - | _ -> Error `invalid_tag) () in
# + ~visit_string:(fun _ctx str ->
# + match str with
# + | "Captain" -> Ok `Captain
# + | "Commander" -> Ok `Commander
# + | "Lt" -> Ok `Lt
# + | "Ensign" -> Ok `Ensign
# + | _ -> Error `invalid_tag) () in
# (variant ctx "rank" ["Captain"; "Commander"; "Lt"; "Ensign"]) @@
# (fun ctx ->
# let* tag = identifier ctx field_visitor
# @@ -136,74 +135,70 @@ $ externally tagged variant
# match tag with
# | `Captain ->
# record_variant ctx 2
# - (fun ~size ->
# - fun ctx ->
# - ignore size;
# - (let field_visitor =
# - let visit_string _ctx str =
# - match str with
# - | "ship" -> Ok `ship
# - | "name" -> Ok `name
# - | _ -> Ok `invalid_tag in
# - let visit_int _ctx str =
# - match str with
# - | 0 -> Ok `ship
# - | 1 -> Ok `name
# - | _ -> Ok `invalid_tag in
# - Visitor.make ~visit_string ~visit_int () in
# - let name = ref None in
# - let ship = ref None in
# - let rec read_fields () =
# - let* tag = next_field ctx field_visitor
# - in
# - match tag with
# - | Some `ship ->
# - let* v = field ctx "ship" string
# - in (ship := (Some v); read_fields ())
# - | Some `name ->
# - let* v = field ctx "name" string
# - in (name := (Some v); read_fields ())
# - | Some `invalid_tag ->
# - let* () = ignore_any ctx
# - in read_fields ()
# - | None -> Ok () in
# - let* () = read_fields ()
# - in
# - let* name =
# - Option.to_result
# - ~none:(`Msg
# - "missing field \"name\" (\"name\")")
# - (!name)
# + (fun ~size ctx ->
# + ignore size;
# + (let field_visitor =
# + let visit_string _ctx str =
# + match str with
# + | "ship" -> Ok `ship
# + | "name" -> Ok `name
# + | _ -> Ok `invalid_tag in
# + let visit_int _ctx str =
# + match str with
# + | 0 -> Ok `ship
# + | 1 -> Ok `name
# + | _ -> Ok `invalid_tag in
# + Visitor.make ~visit_string ~visit_int () in
# + let name = ref None in
# + let ship = ref None in
# + let rec read_fields () =
# + let* tag = next_field ctx field_visitor
# in
# - let* ship =
# - Option.to_result
# - ~none:(`Msg
# - "missing field \"ship\" (\"ship\")")
# - (!ship)
# - in Ok (Captain { ship; name })))
# + match tag with
# + | Some `ship ->
# + let* v = field ctx "ship" string
# + in (ship := (Some v); read_fields ())
# + | Some `name ->
# + let* v = field ctx "name" string
# + in (name := (Some v); read_fields ())
# + | Some `invalid_tag ->
# + let* () = ignore_any ctx
# + in read_fields ()
# + | None -> Ok () in
# + let* () = read_fields ()
# + in
# + let* name =
# + Option.to_result
# + ~none:(`Msg "missing field \"name\" (\"name\")")
# + (!name)
# + in
# + let* ship =
# + Option.to_result
# + ~none:(`Msg "missing field \"ship\" (\"ship\")")
# + (!ship)
# + in Ok (Captain { ship; name })))
# | `Commander ->
# tuple_variant ctx 3
# - (fun ~size ->
# - fun ctx ->
# - ignore size;
# - (let* v_1 =
# - match element ctx string with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in
# - let* v_2 =
# - match element ctx int32 with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in
# - let* v_3 =
# - match element ctx float with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in Ok (Commander (v_1, v_2, v_3))))
# + (fun ~size ctx ->
# + ignore size;
# + (let* v_1 =
# + match element ctx string with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in
# + let* v_2 =
# + match element ctx int32 with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in
# + let* v_3 =
# + match element ctx float with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in Ok (Commander (v_1, v_2, v_3))))
# | `Lt ->
# (newtype_variant ctx) @@
# ((fun ctx ->
# @@ -222,12 +217,11 @@ $ externally tagged variant
# let _ = ( let* )
# let serialize_ranks =
# let open Serde.Ser in
# - fun t ->
# - fun ctx ->
# - match t with
# - | Ranks v_1 ->
# - newtype_variant ctx "ranks" 0 "Ranks"
# - ((s (list (s serialize_rank))) v_1)
# + fun t ctx ->
# + match t with
# + | Ranks v_1 ->
# + newtype_variant ctx "ranks" 0 "Ranks"
# + ((s (list (s serialize_rank))) v_1)
# let _ = serialize_ranks
# open! Serde
# let ( let* ) = Result.bind
# @@ -238,11 +232,10 @@ $ externally tagged variant
# fun ctx ->
# let field_visitor =
# Visitor.make
# - ~visit_string:(fun _ctx ->
# - fun str ->
# - match str with
# - | "Ranks" -> Ok `Ranks
# - | _ -> Error `invalid_tag) () in
# + ~visit_string:(fun _ctx str ->
# + match str with
# + | "Ranks" -> Ok `Ranks
# + | _ -> Error `invalid_tag) () in
# (variant ctx "ranks" ["Ranks"]) @@
# (fun ctx ->
# let* tag = identifier ctx field_visitor
# @@ -347,7 +340,8 @@ $ adjacently tagged variant
# {
# tool_name = "ppx_driver";
# include_dirs = [];
# - load_path = [];
# + hidden_include_dirs = [];
# + load_path = ([], []);
# open_modules = [];
# for_package = None;
# debug = false;
# @@ -355,7 +349,7 @@ $ adjacently tagged variant
# use_vmthreads = false;
# recursive_types = false;
# principal = false;
# - transparent_modules = false;
# + no_alias_deps = false;
# unboxed_types = false;
# unsafe_string = false;
# cookies = []
# @@ -377,43 +371,42 @@ $ adjacently tagged variant
# let _ = ( let* )
# let serialize_rank =
# let open Serde.Ser in
# - fun t ->
# - fun ctx ->
# - match t with
# - | Captain r ->
# - record ctx "" 2
# - (fun ctx ->
# - let* () = field ctx "t" (string "Captain")
# - in
# - field ctx "c"
# - (fun ctx ->
# - record ctx "rank" 2
# - (fun ctx ->
# - let* () = field ctx "name" (string r.name)
# - in
# - let* () = field ctx "ship" (string r.ship)
# - in Ok ())))
# - | Commander (v_1, v_2, v_3) ->
# - record ctx "" 2
# - (fun ctx ->
# - let* () = field ctx "t" (string "Commander")
# - in
# - field ctx "c"
# - (fun ctx ->
# - sequence ctx 3
# - (fun ctx ->
# - let* () = element ctx (string v_1)
# - in
# - let* () = element ctx (int32 v_2)
# - in let* () = element ctx (float v_3)
# - in Ok ())))
# - | Lt v_1 ->
# - record ctx "" 2
# - (fun ctx ->
# - let* () = field ctx "t" (string "Lt")
# - in field ctx "c" (fun ctx -> (s (option bool)) v_1 ctx))
# - | Ensign ->
# - record ctx "" 1 (fun ctx -> field ctx "t" (string "Ensign"))
# + fun t ctx ->
# + match t with
# + | Captain r ->
# + record ctx "" 2
# + (fun ctx ->
# + let* () = field ctx "t" (string "Captain")
# + in
# + field ctx "c"
# + (fun ctx ->
# + record ctx "rank" 2
# + (fun ctx ->
# + let* () = field ctx "name" (string r.name)
# + in
# + let* () = field ctx "ship" (string r.ship)
# + in Ok ())))
# + | Commander (v_1, v_2, v_3) ->
# + record ctx "" 2
# + (fun ctx ->
# + let* () = field ctx "t" (string "Commander")
# + in
# + field ctx "c"
# + (fun ctx ->
# + sequence ctx 3
# + (fun ctx ->
# + let* () = element ctx (string v_1)
# + in
# + let* () = element ctx (int32 v_2)
# + in let* () = element ctx (float v_3)
# + in Ok ())))
# + | Lt v_1 ->
# + record ctx "" 2
# + (fun ctx ->
# + let* () = field ctx "t" (string "Lt")
# + in field ctx "c" (fun ctx -> (s (option bool)) v_1 ctx))
# + | Ensign ->
# + record ctx "" 1 (fun ctx -> field ctx "t" (string "Ensign"))
# let _ = serialize_rank
# open! Serde
# let ( let* ) = Result.bind
# @@ -424,12 +417,11 @@ $ adjacently tagged variant
# fun ctx ->
# let tag_content_field_visitor =
# Visitor.make
# - ~visit_string:(fun _ctx ->
# - fun str ->
# - match str with
# - | "t" -> Ok `tag
# - | "c" -> Ok `content
# - | _ -> Error `invalid_tag) () in
# + ~visit_string:(fun _ctx str ->
# + match str with
# + | "t" -> Ok `tag
# + | "c" -> Ok `content
# + | _ -> Error `invalid_tag) () in
# record ctx "" 2
# (fun ctx ->
# let rec read_fields ctx =
# @@ -497,27 +489,26 @@ $ adjacently tagged variant
# in Ok (Captain { ship; name }))
# | "Commander" ->
# sequence ctx
# - (fun ~size ->
# - fun ctx ->
# - ignore size;
# - (let* v_1 =
# - match element ctx string with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in
# - let* v_2 =
# - match element ctx int32 with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in
# - let* v_3 =
# - match element ctx float with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in Ok (Commander (v_1, v_2, v_3))))
# + (fun ~size ctx ->
# + ignore size;
# + (let* v_1 =
# + match element ctx string with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in
# + let* v_2 =
# + match element ctx int32 with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in
# + let* v_3 =
# + match element ctx float with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in Ok (Commander (v_1, v_2, v_3))))
# | "Lt" ->
# (deserialize ctx) @@
# ((fun ctx ->
# @@ -584,27 +575,26 @@ $ adjacently tagged variant
# in Ok (Captain { ship; name }))
# | "Commander" ->
# sequence ctx
# - (fun ~size ->
# - fun ctx ->
# - ignore size;
# - (let* v_1 =
# - match element ctx string with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in
# - let* v_2 =
# - match element ctx int32 with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in
# - let* v_3 =
# - match element ctx float with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in Ok (Commander (v_1, v_2, v_3))))
# + (fun ~size ctx ->
# + ignore size;
# + (let* v_1 =
# + match element ctx string with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in
# + let* v_2 =
# + match element ctx int32 with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in
# + let* v_3 =
# + match element ctx float with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in Ok (Commander (v_1, v_2, v_3))))
# | "Lt" ->
# (deserialize ctx) @@
# ((fun ctx ->
# @@ -635,12 +625,11 @@ $ adjacently tagged variant
# let _ = ( let* )
# let serialize_ranks =
# let open Serde.Ser in
# - fun t ->
# - fun ctx ->
# - match t with
# - | Ranks v_1 ->
# - newtype_variant ctx "ranks" 0 "Ranks"
# - ((s (list (s serialize_rank))) v_1)
# + fun t ctx ->
# + match t with
# + | Ranks v_1 ->
# + newtype_variant ctx "ranks" 0 "Ranks"
# + ((s (list (s serialize_rank))) v_1)
# let _ = serialize_ranks
# open! Serde
# let ( let* ) = Result.bind
# @@ -651,11 +640,10 @@ $ adjacently tagged variant
# fun ctx ->
# let field_visitor =
# Visitor.make
# - ~visit_string:(fun _ctx ->
# - fun str ->
# - match str with
# - | "Ranks" -> Ok `Ranks
# - | _ -> Error `invalid_tag) () in
# + ~visit_string:(fun _ctx str ->
# + match str with
# + | "Ranks" -> Ok `Ranks
# + | _ -> Error `invalid_tag) () in
# (variant ctx "ranks" ["Ranks"]) @@
# (fun ctx ->
# let* tag = identifier ctx field_visitor
<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
+- The following actions failed
| - build serde_derive 0.0.2
+-
+- The following changes have been performed
| - remove serde_derive 0.0.2
| - install base v0.17.3
| - install conf-jq 1
| - install csexp 1.5.2
| - install dune-configurator 3.21.1
| - install jane-street-headers v0.17.0
| - install jst-config v0.17.0
| - install ocaml_intrinsics_kernel v0.17.1
| - install ppx_assert v0.17.0
| - install ppx_base v0.17.0
| - install ppx_cold v0.17.0
| - install ppx_compare v0.17.0
| - install ppx_enumerate v0.17.0
| - install ppx_globalize v0.17.2
| - install ppx_hash v0.17.0
| - install ppx_here v0.17.0
| - install ppx_inline_test v0.17.1
| - install ppx_optcomp v0.17.1
| - install ppx_sexp_conv v0.17.1
| - install ppxlib_jane v0.17.4
| - install serde_json 0.0.2
| - install stdio v0.17.0
| - install time_now v0.17.0
| - install yojson 3.0.0
+-
# To update the current shell environment, run: eval $(opam env)
The former state can be restored with:
/usr/bin/opam switch import "/home/opam/.opam/5.4/.opam-switch/backup/state-20260302022022.export"
Or you can retry to install your package selection with:
/usr/bin/opam install --restore
2026-03-02 02:22.19 ---> saved as "4d54987878a25c6197d89db0b9be79df1f1f0fad8c8abd9f026fd1709b496636"
/home/opam: (run (shell "opam reinstall --with-test --verbose serde_derive.0.0.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\" != 'serde_derive.0.0.2' && partial_fails=\"$partial_fails $pkg\";\
\n done;\
\n test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
\n exit 1"))
serde_derive.0.0.2 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 1 package
- install serde_derive 0.0.2
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Processing 1/3: [serde_derive.0.0.2: extract]
-> retrieved serde_derive.0.0.2 (cached)
Processing 2/3: [serde_derive: dune build]
+ /home/opam/.opam/opam-init/hooks/sandbox.sh "build" "dune" "build" "-p" "serde_derive" "-j" "71" "@install" "@runtest" (CWD=/home/opam/.opam/5.4/.opam-switch/build/serde_derive.0.0.2)
- (cd _build/default && /home/opam/.opam/5.4/bin/ocamlc.opt -w -40 -g -bin-annot -bin-annot-occurrences -I derive/.serde_derive.objs/byte -I /home/opam/.opam/5.4/lib/cstruct -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/rio -I /home/opam/.opam/5.4/lib/serde -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/stdlib-shims -no-alias-deps -open Serde_derive -o derive/.serde_derive.objs/byte/serde_derive__Ser.cmo -c -impl derive/ser.pp.ml)
- File "derive/ser.ml", lines 35-57, characters 2-28:
- 35 | ..match core_type.ptyp_desc with
- 36 | | Ptyp_constr (name, arg :: []) when is_primitive (Longident.name name.txt) ->
- 37 | let type_ser = serializer_for_type ~ctxt arg in
- 38 | let name = Ast.pexp_ident ~loc name in
- 39 | [%expr s ([%e name] [%e type_ser])]
- ...
- 54 | | Ptyp_variant (_, _, _)
- 55 | | Ptyp_poly (_, _)
- 56 | | Ptyp_package _ | Ptyp_extension _ ->
- 57 | failwith "unsupported"
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched: Ptyp_open (_, _)
- (cd _build/default && /home/opam/.opam/5.4/bin/ocamlc.opt -w -40 -g -bin-annot -bin-annot-occurrences -I derive/.serde_derive.objs/byte -I /home/opam/.opam/5.4/lib/cstruct -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/rio -I /home/opam/.opam/5.4/lib/serde -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/stdlib-shims -no-alias-deps -open Serde_derive -o derive/.serde_derive.objs/byte/serde_derive__De.cmo -c -impl derive/de.pp.ml)
- File "derive/de.ml", lines 43-65, characters 2-28:
- 43 | ..match core_type.ptyp_desc with
- 44 | | Ptyp_constr (name, arg :: []) when is_primitive (Longident.name name.txt) ->
- 45 | let type_ser = deserializer_for_type ~ctxt arg in
- 46 | let name = Ast.pexp_ident ~loc name in
- 47 | [%expr d ([%e name] [%e type_ser])]
- ...
- 62 | | Ptyp_variant (_, _, _)
- 63 | | Ptyp_poly (_, _)
- 64 | | Ptyp_package _ | Ptyp_extension _ ->
- 65 | failwith "unsupported"
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched: Ptyp_open (_, _)
- (cd _build/default && /home/opam/.opam/5.4/bin/ocamlopt.opt -w -40 -g -I derive/.serde_derive.objs/byte -I derive/.serde_derive.objs/native -I /home/opam/.opam/5.4/lib/cstruct -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/rio -I /home/opam/.opam/5.4/lib/serde -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/stdlib-shims -cmi-file derive/.serde_derive.objs/byte/serde_derive__Ser.cmi -no-alias-deps -open Serde_derive -o derive/.serde_derive.objs/native/serde_derive__Ser.cmx -c -impl derive/ser.pp.ml)
- File "derive/ser.ml", lines 35-57, characters 2-28:
- 35 | ..match core_type.ptyp_desc with
- 36 | | Ptyp_constr (name, arg :: []) when is_primitive (Longident.name name.txt) ->
- 37 | let type_ser = serializer_for_type ~ctxt arg in
- 38 | let name = Ast.pexp_ident ~loc name in
- 39 | [%expr s ([%e name] [%e type_ser])]
- ...
- 54 | | Ptyp_variant (_, _, _)
- 55 | | Ptyp_poly (_, _)
- 56 | | Ptyp_package _ | Ptyp_extension _ ->
- 57 | failwith "unsupported"
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched: Ptyp_open (_, _)
- (cd _build/default && /home/opam/.opam/5.4/bin/ocamlopt.opt -w -40 -g -I derive/.serde_derive.objs/byte -I derive/.serde_derive.objs/native -I /home/opam/.opam/5.4/lib/cstruct -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/rio -I /home/opam/.opam/5.4/lib/serde -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/stdlib-shims -cmi-file derive/.serde_derive.objs/byte/serde_derive__De.cmi -no-alias-deps -open Serde_derive -o derive/.serde_derive.objs/native/serde_derive__De.cmx -c -impl derive/de.pp.ml)
- File "derive/de.ml", lines 43-65, characters 2-28:
- 43 | ..match core_type.ptyp_desc with
- 44 | | Ptyp_constr (name, arg :: []) when is_primitive (Longident.name name.txt) ->
- 45 | let type_ser = deserializer_for_type ~ctxt arg in
- 46 | let name = Ast.pexp_ident ~loc name in
- 47 | [%expr d ([%e name] [%e type_ser])]
- ...
- 62 | | Ptyp_variant (_, _, _)
- 63 | | Ptyp_poly (_, _)
- 64 | | Ptyp_package _ | Ptyp_extension _ ->
- 65 | failwith "unsupported"
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched: Ptyp_open (_, _)
- File "derive/records.t/run.t", line 1, characters 0-0:
- /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/derive/records.t/run.t _build/default/derive/records.t/run.t.corrected
- diff --git a/_build/default/derive/records.t/run.t b/_build/default/derive/records.t/run.t.corrected
- index 217bc6d..01a7994 100644
- --- a/_build/default/derive/records.t/run.t
- +++ b/_build/default/derive/records.t/run.t.corrected
- @@ -79,7 +79,8 @@
- {
- tool_name = "ppx_driver";
- include_dirs = [];
- - load_path = [];
- + hidden_include_dirs = [];
- + load_path = ([], []);
- open_modules = [];
- for_package = None;
- debug = false;
- @@ -87,7 +88,7 @@
- use_vmthreads = false;
- recursive_types = false;
- principal = false;
- - transparent_modules = false;
- + no_alias_deps = false;
- unboxed_types = false;
- unsafe_string = false;
- cookies = []
- @@ -102,15 +103,14 @@
- let _ = ( let* )
- let serialize_rank =
- let open Serde.Ser in
- - fun t ->
- - fun ctx ->
- - record ctx "rank" 2
- - (fun ctx ->
- - let* () =
- - field ctx "rank_scores" ((s (list string)) t.rank_scores)
- - in
- - let* () = field ctx "rank_name" (string t.rank_name)
- - in Ok ())
- + fun t ctx ->
- + record ctx "rank" 2
- + (fun ctx ->
- + let* () =
- + field ctx "rank_scores" ((s (list string)) t.rank_scores)
- + in
- + let* () = field ctx "rank_name" (string t.rank_name)
- + in Ok ())
- let _ = serialize_rank
- open! Serde
- let ( let* ) = Result.bind
- @@ -182,26 +182,24 @@
- let _ = ( let* )
- let serialize_t =
- let open Serde.Ser in
- - fun t ->
- - fun ctx ->
- - record ctx "t" 8
- - (fun ctx ->
- - let* () = field ctx "name" (string t.name)
- - in
- - let* () = field ctx "commisioned" (bool t.commisioned)
- - in
- - let* () = field ctx "updated_at" (int64 t.updated_at)
- - in
- - let* () = field ctx "credits" ((s (option int32)) t.credits)
- - in
- - let* () =
- - field ctx "keywords" ((s (array string)) t.keywords)
- - in
- - let* () = field ctx "rank" ((s serialize_rank) t.rank)
- - in
- - let* () = field ctx "value" (float t.value)
- - in let* () = field ctx "type" (string t.type_)
- - in Ok ())
- + fun t ctx ->
- + record ctx "t" 8
- + (fun ctx ->
- + let* () = field ctx "name" (string t.name)
- + in
- + let* () = field ctx "commisioned" (bool t.commisioned)
- + in
- + let* () = field ctx "updated_at" (int64 t.updated_at)
- + in
- + let* () = field ctx "credits" ((s (option int32)) t.credits)
- + in
- + let* () = field ctx "keywords" ((s (array string)) t.keywords)
- + in
- + let* () = field ctx "rank" ((s serialize_rank) t.rank)
- + in
- + let* () = field ctx "value" (float t.value)
- + in let* () = field ctx "type" (string t.type_)
- + in Ok ())
- let _ = serialize_t
- open! Serde
- let ( let* ) = Result.bind
- @@ -339,13 +337,12 @@
- let _ = ( let* )
- let serialize_t_list =
- let open Serde.Ser in
- - fun t ->
- - fun ctx ->
- - record ctx "t_list" 1
- - (fun ctx ->
- - let* () =
- - field ctx "stuff" ((s (list (s serialize_t))) t.stuff)
- - in Ok ())
- + fun t ctx ->
- + record ctx "t_list" 1
- + (fun ctx ->
- + let* () =
- + field ctx "stuff" ((s (list (s serialize_t))) t.stuff)
- + in Ok ())
- let _ = serialize_t_list
- open! Serde
- let ( let* ) = Result.bind
- File "derive/variants.t/run.t", line 1, characters 0-0:
- /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/derive/variants.t/run.t _build/default/derive/variants.t/run.t.corrected
- diff --git a/_build/default/derive/variants.t/run.t b/_build/default/derive/variants.t/run.t.corrected
- index 676673d..f39e763 100644
- --- a/_build/default/derive/variants.t/run.t
- +++ b/_build/default/derive/variants.t/run.t.corrected
- @@ -63,7 +63,8 @@ $ externally tagged variant
- {
- tool_name = "ppx_driver";
- include_dirs = [];
- - load_path = [];
- + hidden_include_dirs = [];
- + load_path = ([], []);
- open_modules = [];
- for_package = None;
- debug = false;
- @@ -71,7 +72,7 @@ $ externally tagged variant
- use_vmthreads = false;
- recursive_types = false;
- principal = false;
- - transparent_modules = false;
- + no_alias_deps = false;
- unboxed_types = false;
- unsafe_string = false;
- cookies = []
- @@ -91,26 +92,25 @@ $ externally tagged variant
- let _ = ( let* )
- let serialize_rank =
- let open Serde.Ser in
- - fun t ->
- - fun ctx ->
- - match t with
- - | Captain r ->
- - record_variant ctx "rank" 0 "Captain" 2
- - (fun ctx ->
- - let* () = field ctx "name" (string r.name)
- - in let* () = field ctx "ship" (string r.ship)
- - in Ok ())
- - | Commander (v_1, v_2, v_3) ->
- - tuple_variant ctx "rank" 1 "Commander" 3
- - (fun ctx ->
- - let* () = element ctx (string v_1)
- - in
- - let* () = element ctx (int32 v_2)
- - in let* () = element ctx (float v_3)
- - in Ok ())
- - | Lt v_1 ->
- - newtype_variant ctx "rank" 2 "Lt" ((s (option bool)) v_1)
- - | Ensign -> unit_variant ctx "rank" 3 "Ensign"
- + fun t ctx ->
- + match t with
- + | Captain r ->
- + record_variant ctx "rank" 0 "Captain" 2
- + (fun ctx ->
- + let* () = field ctx "name" (string r.name)
- + in let* () = field ctx "ship" (string r.ship)
- + in Ok ())
- + | Commander (v_1, v_2, v_3) ->
- + tuple_variant ctx "rank" 1 "Commander" 3
- + (fun ctx ->
- + let* () = element ctx (string v_1)
- + in
- + let* () = element ctx (int32 v_2)
- + in let* () = element ctx (float v_3)
- + in Ok ())
- + | Lt v_1 ->
- + newtype_variant ctx "rank" 2 "Lt" ((s (option bool)) v_1)
- + | Ensign -> unit_variant ctx "rank" 3 "Ensign"
- let _ = serialize_rank
- open! Serde
- let ( let* ) = Result.bind
- @@ -121,14 +121,13 @@ $ externally tagged variant
- fun ctx ->
- let field_visitor =
- Visitor.make
- - ~visit_string:(fun _ctx ->
- - fun str ->
- - match str with
- - | "Captain" -> Ok `Captain
- - | "Commander" -> Ok `Commander
- - | "Lt" -> Ok `Lt
- - | "Ensign" -> Ok `Ensign
- - | _ -> Error `invalid_tag) () in
- + ~visit_string:(fun _ctx str ->
- + match str with
- + | "Captain" -> Ok `Captain
- + | "Commander" -> Ok `Commander
- + | "Lt" -> Ok `Lt
- + | "Ensign" -> Ok `Ensign
- + | _ -> Error `invalid_tag) () in
- (variant ctx "rank" ["Captain"; "Commander"; "Lt"; "Ensign"]) @@
- (fun ctx ->
- let* tag = identifier ctx field_visitor
- @@ -136,74 +135,70 @@ $ externally tagged variant
- match tag with
- | `Captain ->
- record_variant ctx 2
- - (fun ~size ->
- - fun ctx ->
- - ignore size;
- - (let field_visitor =
- - let visit_string _ctx str =
- - match str with
- - | "ship" -> Ok `ship
- - | "name" -> Ok `name
- - | _ -> Ok `invalid_tag in
- - let visit_int _ctx str =
- - match str with
- - | 0 -> Ok `ship
- - | 1 -> Ok `name
- - | _ -> Ok `invalid_tag in
- - Visitor.make ~visit_string ~visit_int () in
- - let name = ref None in
- - let ship = ref None in
- - let rec read_fields () =
- - let* tag = next_field ctx field_visitor
- - in
- - match tag with
- - | Some `ship ->
- - let* v = field ctx "ship" string
- - in (ship := (Some v); read_fields ())
- - | Some `name ->
- - let* v = field ctx "name" string
- - in (name := (Some v); read_fields ())
- - | Some `invalid_tag ->
- - let* () = ignore_any ctx
- - in read_fields ()
- - | None -> Ok () in
- - let* () = read_fields ()
- - in
- - let* name =
- - Option.to_result
- - ~none:(`Msg
- - "missing field \"name\" (\"name\")")
- - (!name)
- + (fun ~size ctx ->
- + ignore size;
- + (let field_visitor =
- + let visit_string _ctx str =
- + match str with
- + | "ship" -> Ok `ship
- + | "name" -> Ok `name
- + | _ -> Ok `invalid_tag in
- + let visit_int _ctx str =
- + match str with
- + | 0 -> Ok `ship
- + | 1 -> Ok `name
- + | _ -> Ok `invalid_tag in
- + Visitor.make ~visit_string ~visit_int () in
- + let name = ref None in
- + let ship = ref None in
- + let rec read_fields () =
- + let* tag = next_field ctx field_visitor
- in
- - let* ship =
- - Option.to_result
- - ~none:(`Msg
- - "missing field \"ship\" (\"ship\")")
- - (!ship)
- - in Ok (Captain { ship; name })))
- + match tag with
- + | Some `ship ->
- + let* v = field ctx "ship" string
- + in (ship := (Some v); read_fields ())
- + | Some `name ->
- + let* v = field ctx "name" string
- + in (name := (Some v); read_fields ())
- + | Some `invalid_tag ->
- + let* () = ignore_any ctx
- + in read_fields ()
- + | None -> Ok () in
- + let* () = read_fields ()
- + in
- + let* name =
- + Option.to_result
- + ~none:(`Msg "missing field \"name\" (\"name\")")
- + (!name)
- + in
- + let* ship =
- + Option.to_result
- + ~none:(`Msg "missing field \"ship\" (\"ship\")")
- + (!ship)
- + in Ok (Captain { ship; name })))
- | `Commander ->
- tuple_variant ctx 3
- - (fun ~size ->
- - fun ctx ->
- - ignore size;
- - (let* v_1 =
- - match element ctx string with
- - | Ok (Some v) -> Ok v
- - | Ok (None) -> Error `no_more_data
- - | Error reason -> Error reason
- - in
- - let* v_2 =
- - match element ctx int32 with
- - | Ok (Some v) -> Ok v
- - | Ok (None) -> Error `no_more_data
- - | Error reason -> Error reason
- - in
- - let* v_3 =
- - match element ctx float with
- - | Ok (Some v) -> Ok v
- - | Ok (None) -> Error `no_more_data
- - | Error reason -> Error reason
- - in Ok (Commander (v_1, v_2, v_3))))
- + (fun ~size ctx ->
- + ignore size;
- + (let* v_1 =
- + match element ctx string with
- + | Ok (Some v) -> Ok v
- + | Ok (None) -> Error `no_more_data
- + | Error reason -> Error reason
- + in
- + let* v_2 =
- + match element ctx int32 with
- + | Ok (Some v) -> Ok v
- + | Ok (None) -> Error `no_more_data
- + | Error reason -> Error reason
- + in
- + let* v_3 =
- + match element ctx float with
- + | Ok (Some v) -> Ok v
- + | Ok (None) -> Error `no_more_data
- + | Error reason -> Error reason
- + in Ok (Commander (v_1, v_2, v_3))))
- | `Lt ->
- (newtype_variant ctx) @@
- ((fun ctx ->
- @@ -222,12 +217,11 @@ $ externally tagged variant
- let _ = ( let* )
- let serialize_ranks =
- let open Serde.Ser in
- - fun t ->
- - fun ctx ->
- - match t with
- - | Ranks v_1 ->
- - newtype_variant ctx "ranks" 0 "Ranks"
- - ((s (list (s serialize_rank))) v_1)
- + fun t ctx ->
- + match t with
- + | Ranks v_1 ->
- + newtype_variant ctx "ranks" 0 "Ranks"
- + ((s (list (s serialize_rank))) v_1)
- let _ = serialize_ranks
- open! Serde
- let ( let* ) = Result.bind
- @@ -238,11 +232,10 @@ $ externally tagged variant
- fun ctx ->
- let field_visitor =
- Visitor.make
- - ~visit_string:(fun _ctx ->
- - fun str ->
- - match str with
- - | "Ranks" -> Ok `Ranks
- - | _ -> Error `invalid_tag) () in
- + ~visit_string:(fun _ctx str ->
- + match str with
- + | "Ranks" -> Ok `Ranks
- + | _ -> Error `invalid_tag) () in
- (variant ctx "ranks" ["Ranks"]) @@
- (fun ctx ->
- let* tag = identifier ctx field_visitor
- @@ -347,7 +340,8 @@ $ adjacently tagged variant
- {
- tool_name = "ppx_driver";
- include_dirs = [];
- - load_path = [];
- + hidden_include_dirs = [];
- + load_path = ([], []);
- open_modules = [];
- for_package = None;
- debug = false;
- @@ -355,7 +349,7 @@ $ adjacently tagged variant
- use_vmthreads = false;
- recursive_types = false;
- principal = false;
- - transparent_modules = false;
- + no_alias_deps = false;
- unboxed_types = false;
- unsafe_string = false;
- cookies = []
- @@ -377,43 +371,42 @@ $ adjacently tagged variant
- let _ = ( let* )
- let serialize_rank =
- let open Serde.Ser in
- - fun t ->
- - fun ctx ->
- - match t with
- - | Captain r ->
- - record ctx "" 2
- - (fun ctx ->
- - let* () = field ctx "t" (string "Captain")
- - in
- - field ctx "c"
- - (fun ctx ->
- - record ctx "rank" 2
- - (fun ctx ->
- - let* () = field ctx "name" (string r.name)
- - in
- - let* () = field ctx "ship" (string r.ship)
- - in Ok ())))
- - | Commander (v_1, v_2, v_3) ->
- - record ctx "" 2
- - (fun ctx ->
- - let* () = field ctx "t" (string "Commander")
- - in
- - field ctx "c"
- - (fun ctx ->
- - sequence ctx 3
- - (fun ctx ->
- - let* () = element ctx (string v_1)
- - in
- - let* () = element ctx (int32 v_2)
- - in let* () = element ctx (float v_3)
- - in Ok ())))
- - | Lt v_1 ->
- - record ctx "" 2
- - (fun ctx ->
- - let* () = field ctx "t" (string "Lt")
- - in field ctx "c" (fun ctx -> (s (option bool)) v_1 ctx))
- - | Ensign ->
- - record ctx "" 1 (fun ctx -> field ctx "t" (string "Ensign"))
- + fun t ctx ->
- + match t with
- + | Captain r ->
- + record ctx "" 2
- + (fun ctx ->
- + let* () = field ctx "t" (string "Captain")
- + in
- + field ctx "c"
- + (fun ctx ->
- + record ctx "rank" 2
- + (fun ctx ->
- + let* () = field ctx "name" (string r.name)
- + in
- + let* () = field ctx "ship" (string r.ship)
- + in Ok ())))
- + | Commander (v_1, v_2, v_3) ->
- + record ctx "" 2
- + (fun ctx ->
- + let* () = field ctx "t" (string "Commander")
- + in
- + field ctx "c"
- + (fun ctx ->
- + sequence ctx 3
- + (fun ctx ->
- + let* () = element ctx (string v_1)
- + in
- + let* () = element ctx (int32 v_2)
- + in let* () = element ctx (float v_3)
- + in Ok ())))
- + | Lt v_1 ->
- + record ctx "" 2
- + (fun ctx ->
- + let* () = field ctx "t" (string "Lt")
- + in field ctx "c" (fun ctx -> (s (option bool)) v_1 ctx))
- + | Ensign ->
- + record ctx "" 1 (fun ctx -> field ctx "t" (string "Ensign"))
- let _ = serialize_rank
- open! Serde
- let ( let* ) = Result.bind
- @@ -424,12 +417,11 @@ $ adjacently tagged variant
- fun ctx ->
- let tag_content_field_visitor =
- Visitor.make
- - ~visit_string:(fun _ctx ->
- - fun str ->
- - match str with
- - | "t" -> Ok `tag
- - | "c" -> Ok `content
- - | _ -> Error `invalid_tag) () in
- + ~visit_string:(fun _ctx str ->
- + match str with
- + | "t" -> Ok `tag
- + | "c" -> Ok `content
- + | _ -> Error `invalid_tag) () in
- record ctx "" 2
- (fun ctx ->
- let rec read_fields ctx =
- @@ -497,27 +489,26 @@ $ adjacently tagged variant
- in Ok (Captain { ship; name }))
- | "Commander" ->
- sequence ctx
- - (fun ~size ->
- - fun ctx ->
- - ignore size;
- - (let* v_1 =
- - match element ctx string with
- - | Ok (Some v) -> Ok v
- - | Ok (None) -> Error `no_more_data
- - | Error reason -> Error reason
- - in
- - let* v_2 =
- - match element ctx int32 with
- - | Ok (Some v) -> Ok v
- - | Ok (None) -> Error `no_more_data
- - | Error reason -> Error reason
- - in
- - let* v_3 =
- - match element ctx float with
- - | Ok (Some v) -> Ok v
- - | Ok (None) -> Error `no_more_data
- - | Error reason -> Error reason
- - in Ok (Commander (v_1, v_2, v_3))))
- + (fun ~size ctx ->
- + ignore size;
- + (let* v_1 =
- + match element ctx string with
- + | Ok (Some v) -> Ok v
- + | Ok (None) -> Error `no_more_data
- + | Error reason -> Error reason
- + in
- + let* v_2 =
- + match element ctx int32 with
- + | Ok (Some v) -> Ok v
- + | Ok (None) -> Error `no_more_data
- + | Error reason -> Error reason
- + in
- + let* v_3 =
- + match element ctx float with
- + | Ok (Some v) -> Ok v
- + | Ok (None) -> Error `no_more_data
- + | Error reason -> Error reason
- + in Ok (Commander (v_1, v_2, v_3))))
- | "Lt" ->
- (deserialize ctx) @@
- ((fun ctx ->
- @@ -584,27 +575,26 @@ $ adjacently tagged variant
- in Ok (Captain { ship; name }))
- | "Commander" ->
- sequence ctx
- - (fun ~size ->
- - fun ctx ->
- - ignore size;
- - (let* v_1 =
- - match element ctx string with
- - | Ok (Some v) -> Ok v
- - | Ok (None) -> Error `no_more_data
- - | Error reason -> Error reason
- - in
- - let* v_2 =
- - match element ctx int32 with
- - | Ok (Some v) -> Ok v
- - | Ok (None) -> Error `no_more_data
- - | Error reason -> Error reason
- - in
- - let* v_3 =
- - match element ctx float with
- - | Ok (Some v) -> Ok v
- - | Ok (None) -> Error `no_more_data
- - | Error reason -> Error reason
- - in Ok (Commander (v_1, v_2, v_3))))
- + (fun ~size ctx ->
- + ignore size;
- + (let* v_1 =
- + match element ctx string with
- + | Ok (Some v) -> Ok v
- + | Ok (None) -> Error `no_more_data
- + | Error reason -> Error reason
- + in
- + let* v_2 =
- + match element ctx int32 with
- + | Ok (Some v) -> Ok v
- + | Ok (None) -> Error `no_more_data
- + | Error reason -> Error reason
- + in
- + let* v_3 =
- + match element ctx float with
- + | Ok (Some v) -> Ok v
- + | Ok (None) -> Error `no_more_data
- + | Error reason -> Error reason
- + in Ok (Commander (v_1, v_2, v_3))))
- | "Lt" ->
- (deserialize ctx) @@
- ((fun ctx ->
- @@ -635,12 +625,11 @@ $ adjacently tagged variant
- let _ = ( let* )
- let serialize_ranks =
- let open Serde.Ser in
- - fun t ->
- - fun ctx ->
- - match t with
- - | Ranks v_1 ->
- - newtype_variant ctx "ranks" 0 "Ranks"
- - ((s (list (s serialize_rank))) v_1)
- + fun t ctx ->
- + match t with
- + | Ranks v_1 ->
- + newtype_variant ctx "ranks" 0 "Ranks"
- + ((s (list (s serialize_rank))) v_1)
- let _ = serialize_ranks
- open! Serde
- let ( let* ) = Result.bind
- @@ -651,11 +640,10 @@ $ adjacently tagged variant
- fun ctx ->
- let field_visitor =
- Visitor.make
- - ~visit_string:(fun _ctx ->
- - fun str ->
- - match str with
- - | "Ranks" -> Ok `Ranks
- - | _ -> Error `invalid_tag) () in
- + ~visit_string:(fun _ctx str ->
- + match str with
- + | "Ranks" -> Ok `Ranks
- + | _ -> Error `invalid_tag) () in
- (variant ctx "ranks" ["Ranks"]) @@
- (fun ctx ->
- let* tag = identifier ctx field_visitor
[ERROR] The compilation of serde_derive.0.0.2 failed at "dune build -p serde_derive -j 71 @install @runtest".
#=== ERROR while compiling serde_derive.0.0.2 =================================#
# context 2.5.0 | linux/x86_64 | ocaml-base-compiler.5.4.0 | file:///home/opam/opam-repository
# path ~/.opam/5.4/.opam-switch/build/serde_derive.0.0.2
# command ~/.opam/opam-init/hooks/sandbox.sh build dune build -p serde_derive -j 71 @install @runtest
# exit-code 1
# env-file ~/.opam/log/serde_derive-7-b61a4d.env
# output-file ~/.opam/log/serde_derive-7-b61a4d.out
### output ###
# (cd _build/default && /home/opam/.opam/5.4/bin/ocamlc.opt -w -40 -g -bin-annot -bin-annot-occurrences -I derive/.serde_derive.objs/byte -I /home/opam/.opam/5.4/lib/cstruct -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/rio -I /home/opam/.opam/5.4/lib/serde -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/stdlib-shims -no-alias-deps -open Serde_derive -o derive/.serde_derive.objs/byte/serde_derive__Ser.cmo -c -impl derive/ser.pp.ml)
# File "derive/ser.ml", lines 35-57, characters 2-28:
# 35 | ..match core_type.ptyp_desc with
# 36 | | Ptyp_constr (name, arg :: []) when is_primitive (Longident.name name.txt) ->
# 37 | let type_ser = serializer_for_type ~ctxt arg in
# 38 | let name = Ast.pexp_ident ~loc name in
# 39 | [%expr s ([%e name] [%e type_ser])]
# ...
# 54 | | Ptyp_variant (_, _, _)
# 55 | | Ptyp_poly (_, _)
# 56 | | Ptyp_package _ | Ptyp_extension _ ->
# 57 | failwith "unsupported"
# Warning 8 [partial-match]: this pattern-matching is not exhaustive.
# Here is an example of a case that is not matched: Ptyp_open (_, _)
# (cd _build/default && /home/opam/.opam/5.4/bin/ocamlc.opt -w -40 -g -bin-annot -bin-annot-occurrences -I derive/.serde_derive.objs/byte -I /home/opam/.opam/5.4/lib/cstruct -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/rio -I /home/opam/.opam/5.4/lib/serde -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/stdlib-shims -no-alias-deps -open Serde_derive -o derive/.serde_derive.objs/byte/serde_derive__De.cmo -c -impl derive/de.pp.ml)
# File "derive/de.ml", lines 43-65, characters 2-28:
# 43 | ..match core_type.ptyp_desc with
# 44 | | Ptyp_constr (name, arg :: []) when is_primitive (Longident.name name.txt) ->
# 45 | let type_ser = deserializer_for_type ~ctxt arg in
# 46 | let name = Ast.pexp_ident ~loc name in
# 47 | [%expr d ([%e name] [%e type_ser])]
# ...
# 62 | | Ptyp_variant (_, _, _)
# 63 | | Ptyp_poly (_, _)
# 64 | | Ptyp_package _ | Ptyp_extension _ ->
# 65 | failwith "unsupported"
# Warning 8 [partial-match]: this pattern-matching is not exhaustive.
# Here is an example of a case that is not matched: Ptyp_open (_, _)
# (cd _build/default && /home/opam/.opam/5.4/bin/ocamlopt.opt -w -40 -g -I derive/.serde_derive.objs/byte -I derive/.serde_derive.objs/native -I /home/opam/.opam/5.4/lib/cstruct -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/rio -I /home/opam/.opam/5.4/lib/serde -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/stdlib-shims -cmi-file derive/.serde_derive.objs/byte/serde_derive__Ser.cmi -no-alias-deps -open Serde_derive -o derive/.serde_derive.objs/native/serde_derive__Ser.cmx -c -impl derive/ser.pp.ml)
# File "derive/ser.ml", lines 35-57, characters 2-28:
# 35 | ..match core_type.ptyp_desc with
# 36 | | Ptyp_constr (name, arg :: []) when is_primitive (Longident.name name.txt) ->
# 37 | let type_ser = serializer_for_type ~ctxt arg in
# 38 | let name = Ast.pexp_ident ~loc name in
# 39 | [%expr s ([%e name] [%e type_ser])]
# ...
# 54 | | Ptyp_variant (_, _, _)
# 55 | | Ptyp_poly (_, _)
# 56 | | Ptyp_package _ | Ptyp_extension _ ->
# 57 | failwith "unsupported"
# Warning 8 [partial-match]: this pattern-matching is not exhaustive.
# Here is an example of a case that is not matched: Ptyp_open (_, _)
# (cd _build/default && /home/opam/.opam/5.4/bin/ocamlopt.opt -w -40 -g -I derive/.serde_derive.objs/byte -I derive/.serde_derive.objs/native -I /home/opam/.opam/5.4/lib/cstruct -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/rio -I /home/opam/.opam/5.4/lib/serde -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/stdlib-shims -cmi-file derive/.serde_derive.objs/byte/serde_derive__De.cmi -no-alias-deps -open Serde_derive -o derive/.serde_derive.objs/native/serde_derive__De.cmx -c -impl derive/de.pp.ml)
# File "derive/de.ml", lines 43-65, characters 2-28:
# 43 | ..match core_type.ptyp_desc with
# 44 | | Ptyp_constr (name, arg :: []) when is_primitive (Longident.name name.txt) ->
# 45 | let type_ser = deserializer_for_type ~ctxt arg in
# 46 | let name = Ast.pexp_ident ~loc name in
# 47 | [%expr d ([%e name] [%e type_ser])]
# ...
# 62 | | Ptyp_variant (_, _, _)
# 63 | | Ptyp_poly (_, _)
# 64 | | Ptyp_package _ | Ptyp_extension _ ->
# 65 | failwith "unsupported"
# Warning 8 [partial-match]: this pattern-matching is not exhaustive.
# Here is an example of a case that is not matched: Ptyp_open (_, _)
# File "derive/records.t/run.t", line 1, characters 0-0:
# /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/derive/records.t/run.t _build/default/derive/records.t/run.t.corrected
# diff --git a/_build/default/derive/records.t/run.t b/_build/default/derive/records.t/run.t.corrected
# index 217bc6d..01a7994 100644
# --- a/_build/default/derive/records.t/run.t
# +++ b/_build/default/derive/records.t/run.t.corrected
# @@ -79,7 +79,8 @@
# {
# tool_name = "ppx_driver";
# include_dirs = [];
# - load_path = [];
# + hidden_include_dirs = [];
# + load_path = ([], []);
# open_modules = [];
# for_package = None;
# debug = false;
# @@ -87,7 +88,7 @@
# use_vmthreads = false;
# recursive_types = false;
# principal = false;
# - transparent_modules = false;
# + no_alias_deps = false;
# unboxed_types = false;
# unsafe_string = false;
# cookies = []
# @@ -102,15 +103,14 @@
# let _ = ( let* )
# let serialize_rank =
# let open Serde.Ser in
# - fun t ->
# - fun ctx ->
# - record ctx "rank" 2
# - (fun ctx ->
# - let* () =
# - field ctx "rank_scores" ((s (list string)) t.rank_scores)
# - in
# - let* () = field ctx "rank_name" (string t.rank_name)
# - in Ok ())
# + fun t ctx ->
# + record ctx "rank" 2
# + (fun ctx ->
# + let* () =
# + field ctx "rank_scores" ((s (list string)) t.rank_scores)
# + in
# + let* () = field ctx "rank_name" (string t.rank_name)
# + in Ok ())
# let _ = serialize_rank
# open! Serde
# let ( let* ) = Result.bind
# @@ -182,26 +182,24 @@
# let _ = ( let* )
# let serialize_t =
# let open Serde.Ser in
# - fun t ->
# - fun ctx ->
# - record ctx "t" 8
# - (fun ctx ->
# - let* () = field ctx "name" (string t.name)
# - in
# - let* () = field ctx "commisioned" (bool t.commisioned)
# - in
# - let* () = field ctx "updated_at" (int64 t.updated_at)
# - in
# - let* () = field ctx "credits" ((s (option int32)) t.credits)
# - in
# - let* () =
# - field ctx "keywords" ((s (array string)) t.keywords)
# - in
# - let* () = field ctx "rank" ((s serialize_rank) t.rank)
# - in
# - let* () = field ctx "value" (float t.value)
# - in let* () = field ctx "type" (string t.type_)
# - in Ok ())
# + fun t ctx ->
# + record ctx "t" 8
# + (fun ctx ->
# + let* () = field ctx "name" (string t.name)
# + in
# + let* () = field ctx "commisioned" (bool t.commisioned)
# + in
# + let* () = field ctx "updated_at" (int64 t.updated_at)
# + in
# + let* () = field ctx "credits" ((s (option int32)) t.credits)
# + in
# + let* () = field ctx "keywords" ((s (array string)) t.keywords)
# + in
# + let* () = field ctx "rank" ((s serialize_rank) t.rank)
# + in
# + let* () = field ctx "value" (float t.value)
# + in let* () = field ctx "type" (string t.type_)
# + in Ok ())
# let _ = serialize_t
# open! Serde
# let ( let* ) = Result.bind
# @@ -339,13 +337,12 @@
# let _ = ( let* )
# let serialize_t_list =
# let open Serde.Ser in
# - fun t ->
# - fun ctx ->
# - record ctx "t_list" 1
# - (fun ctx ->
# - let* () =
# - field ctx "stuff" ((s (list (s serialize_t))) t.stuff)
# - in Ok ())
# + fun t ctx ->
# + record ctx "t_list" 1
# + (fun ctx ->
# + let* () =
# + field ctx "stuff" ((s (list (s serialize_t))) t.stuff)
# + in Ok ())
# let _ = serialize_t_list
# open! Serde
# let ( let* ) = Result.bind
# File "derive/variants.t/run.t", line 1, characters 0-0:
# /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/derive/variants.t/run.t _build/default/derive/variants.t/run.t.corrected
# diff --git a/_build/default/derive/variants.t/run.t b/_build/default/derive/variants.t/run.t.corrected
# index 676673d..f39e763 100644
# --- a/_build/default/derive/variants.t/run.t
# +++ b/_build/default/derive/variants.t/run.t.corrected
# @@ -63,7 +63,8 @@ $ externally tagged variant
# {
# tool_name = "ppx_driver";
# include_dirs = [];
# - load_path = [];
# + hidden_include_dirs = [];
# + load_path = ([], []);
# open_modules = [];
# for_package = None;
# debug = false;
# @@ -71,7 +72,7 @@ $ externally tagged variant
# use_vmthreads = false;
# recursive_types = false;
# principal = false;
# - transparent_modules = false;
# + no_alias_deps = false;
# unboxed_types = false;
# unsafe_string = false;
# cookies = []
# @@ -91,26 +92,25 @@ $ externally tagged variant
# let _ = ( let* )
# let serialize_rank =
# let open Serde.Ser in
# - fun t ->
# - fun ctx ->
# - match t with
# - | Captain r ->
# - record_variant ctx "rank" 0 "Captain" 2
# - (fun ctx ->
# - let* () = field ctx "name" (string r.name)
# - in let* () = field ctx "ship" (string r.ship)
# - in Ok ())
# - | Commander (v_1, v_2, v_3) ->
# - tuple_variant ctx "rank" 1 "Commander" 3
# - (fun ctx ->
# - let* () = element ctx (string v_1)
# - in
# - let* () = element ctx (int32 v_2)
# - in let* () = element ctx (float v_3)
# - in Ok ())
# - | Lt v_1 ->
# - newtype_variant ctx "rank" 2 "Lt" ((s (option bool)) v_1)
# - | Ensign -> unit_variant ctx "rank" 3 "Ensign"
# + fun t ctx ->
# + match t with
# + | Captain r ->
# + record_variant ctx "rank" 0 "Captain" 2
# + (fun ctx ->
# + let* () = field ctx "name" (string r.name)
# + in let* () = field ctx "ship" (string r.ship)
# + in Ok ())
# + | Commander (v_1, v_2, v_3) ->
# + tuple_variant ctx "rank" 1 "Commander" 3
# + (fun ctx ->
# + let* () = element ctx (string v_1)
# + in
# + let* () = element ctx (int32 v_2)
# + in let* () = element ctx (float v_3)
# + in Ok ())
# + | Lt v_1 ->
# + newtype_variant ctx "rank" 2 "Lt" ((s (option bool)) v_1)
# + | Ensign -> unit_variant ctx "rank" 3 "Ensign"
# let _ = serialize_rank
# open! Serde
# let ( let* ) = Result.bind
# @@ -121,14 +121,13 @@ $ externally tagged variant
# fun ctx ->
# let field_visitor =
# Visitor.make
# - ~visit_string:(fun _ctx ->
# - fun str ->
# - match str with
# - | "Captain" -> Ok `Captain
# - | "Commander" -> Ok `Commander
# - | "Lt" -> Ok `Lt
# - | "Ensign" -> Ok `Ensign
# - | _ -> Error `invalid_tag) () in
# + ~visit_string:(fun _ctx str ->
# + match str with
# + | "Captain" -> Ok `Captain
# + | "Commander" -> Ok `Commander
# + | "Lt" -> Ok `Lt
# + | "Ensign" -> Ok `Ensign
# + | _ -> Error `invalid_tag) () in
# (variant ctx "rank" ["Captain"; "Commander"; "Lt"; "Ensign"]) @@
# (fun ctx ->
# let* tag = identifier ctx field_visitor
# @@ -136,74 +135,70 @@ $ externally tagged variant
# match tag with
# | `Captain ->
# record_variant ctx 2
# - (fun ~size ->
# - fun ctx ->
# - ignore size;
# - (let field_visitor =
# - let visit_string _ctx str =
# - match str with
# - | "ship" -> Ok `ship
# - | "name" -> Ok `name
# - | _ -> Ok `invalid_tag in
# - let visit_int _ctx str =
# - match str with
# - | 0 -> Ok `ship
# - | 1 -> Ok `name
# - | _ -> Ok `invalid_tag in
# - Visitor.make ~visit_string ~visit_int () in
# - let name = ref None in
# - let ship = ref None in
# - let rec read_fields () =
# - let* tag = next_field ctx field_visitor
# - in
# - match tag with
# - | Some `ship ->
# - let* v = field ctx "ship" string
# - in (ship := (Some v); read_fields ())
# - | Some `name ->
# - let* v = field ctx "name" string
# - in (name := (Some v); read_fields ())
# - | Some `invalid_tag ->
# - let* () = ignore_any ctx
# - in read_fields ()
# - | None -> Ok () in
# - let* () = read_fields ()
# - in
# - let* name =
# - Option.to_result
# - ~none:(`Msg
# - "missing field \"name\" (\"name\")")
# - (!name)
# + (fun ~size ctx ->
# + ignore size;
# + (let field_visitor =
# + let visit_string _ctx str =
# + match str with
# + | "ship" -> Ok `ship
# + | "name" -> Ok `name
# + | _ -> Ok `invalid_tag in
# + let visit_int _ctx str =
# + match str with
# + | 0 -> Ok `ship
# + | 1 -> Ok `name
# + | _ -> Ok `invalid_tag in
# + Visitor.make ~visit_string ~visit_int () in
# + let name = ref None in
# + let ship = ref None in
# + let rec read_fields () =
# + let* tag = next_field ctx field_visitor
# in
# - let* ship =
# - Option.to_result
# - ~none:(`Msg
# - "missing field \"ship\" (\"ship\")")
# - (!ship)
# - in Ok (Captain { ship; name })))
# + match tag with
# + | Some `ship ->
# + let* v = field ctx "ship" string
# + in (ship := (Some v); read_fields ())
# + | Some `name ->
# + let* v = field ctx "name" string
# + in (name := (Some v); read_fields ())
# + | Some `invalid_tag ->
# + let* () = ignore_any ctx
# + in read_fields ()
# + | None -> Ok () in
# + let* () = read_fields ()
# + in
# + let* name =
# + Option.to_result
# + ~none:(`Msg "missing field \"name\" (\"name\")")
# + (!name)
# + in
# + let* ship =
# + Option.to_result
# + ~none:(`Msg "missing field \"ship\" (\"ship\")")
# + (!ship)
# + in Ok (Captain { ship; name })))
# | `Commander ->
# tuple_variant ctx 3
# - (fun ~size ->
# - fun ctx ->
# - ignore size;
# - (let* v_1 =
# - match element ctx string with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in
# - let* v_2 =
# - match element ctx int32 with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in
# - let* v_3 =
# - match element ctx float with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in Ok (Commander (v_1, v_2, v_3))))
# + (fun ~size ctx ->
# + ignore size;
# + (let* v_1 =
# + match element ctx string with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in
# + let* v_2 =
# + match element ctx int32 with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in
# + let* v_3 =
# + match element ctx float with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in Ok (Commander (v_1, v_2, v_3))))
# | `Lt ->
# (newtype_variant ctx) @@
# ((fun ctx ->
# @@ -222,12 +217,11 @@ $ externally tagged variant
# let _ = ( let* )
# let serialize_ranks =
# let open Serde.Ser in
# - fun t ->
# - fun ctx ->
# - match t with
# - | Ranks v_1 ->
# - newtype_variant ctx "ranks" 0 "Ranks"
# - ((s (list (s serialize_rank))) v_1)
# + fun t ctx ->
# + match t with
# + | Ranks v_1 ->
# + newtype_variant ctx "ranks" 0 "Ranks"
# + ((s (list (s serialize_rank))) v_1)
# let _ = serialize_ranks
# open! Serde
# let ( let* ) = Result.bind
# @@ -238,11 +232,10 @@ $ externally tagged variant
# fun ctx ->
# let field_visitor =
# Visitor.make
# - ~visit_string:(fun _ctx ->
# - fun str ->
# - match str with
# - | "Ranks" -> Ok `Ranks
# - | _ -> Error `invalid_tag) () in
# + ~visit_string:(fun _ctx str ->
# + match str with
# + | "Ranks" -> Ok `Ranks
# + | _ -> Error `invalid_tag) () in
# (variant ctx "ranks" ["Ranks"]) @@
# (fun ctx ->
# let* tag = identifier ctx field_visitor
# @@ -347,7 +340,8 @@ $ adjacently tagged variant
# {
# tool_name = "ppx_driver";
# include_dirs = [];
# - load_path = [];
# + hidden_include_dirs = [];
# + load_path = ([], []);
# open_modules = [];
# for_package = None;
# debug = false;
# @@ -355,7 +349,7 @@ $ adjacently tagged variant
# use_vmthreads = false;
# recursive_types = false;
# principal = false;
# - transparent_modules = false;
# + no_alias_deps = false;
# unboxed_types = false;
# unsafe_string = false;
# cookies = []
# @@ -377,43 +371,42 @@ $ adjacently tagged variant
# let _ = ( let* )
# let serialize_rank =
# let open Serde.Ser in
# - fun t ->
# - fun ctx ->
# - match t with
# - | Captain r ->
# - record ctx "" 2
# - (fun ctx ->
# - let* () = field ctx "t" (string "Captain")
# - in
# - field ctx "c"
# - (fun ctx ->
# - record ctx "rank" 2
# - (fun ctx ->
# - let* () = field ctx "name" (string r.name)
# - in
# - let* () = field ctx "ship" (string r.ship)
# - in Ok ())))
# - | Commander (v_1, v_2, v_3) ->
# - record ctx "" 2
# - (fun ctx ->
# - let* () = field ctx "t" (string "Commander")
# - in
# - field ctx "c"
# - (fun ctx ->
# - sequence ctx 3
# - (fun ctx ->
# - let* () = element ctx (string v_1)
# - in
# - let* () = element ctx (int32 v_2)
# - in let* () = element ctx (float v_3)
# - in Ok ())))
# - | Lt v_1 ->
# - record ctx "" 2
# - (fun ctx ->
# - let* () = field ctx "t" (string "Lt")
# - in field ctx "c" (fun ctx -> (s (option bool)) v_1 ctx))
# - | Ensign ->
# - record ctx "" 1 (fun ctx -> field ctx "t" (string "Ensign"))
# + fun t ctx ->
# + match t with
# + | Captain r ->
# + record ctx "" 2
# + (fun ctx ->
# + let* () = field ctx "t" (string "Captain")
# + in
# + field ctx "c"
# + (fun ctx ->
# + record ctx "rank" 2
# + (fun ctx ->
# + let* () = field ctx "name" (string r.name)
# + in
# + let* () = field ctx "ship" (string r.ship)
# + in Ok ())))
# + | Commander (v_1, v_2, v_3) ->
# + record ctx "" 2
# + (fun ctx ->
# + let* () = field ctx "t" (string "Commander")
# + in
# + field ctx "c"
# + (fun ctx ->
# + sequence ctx 3
# + (fun ctx ->
# + let* () = element ctx (string v_1)
# + in
# + let* () = element ctx (int32 v_2)
# + in let* () = element ctx (float v_3)
# + in Ok ())))
# + | Lt v_1 ->
# + record ctx "" 2
# + (fun ctx ->
# + let* () = field ctx "t" (string "Lt")
# + in field ctx "c" (fun ctx -> (s (option bool)) v_1 ctx))
# + | Ensign ->
# + record ctx "" 1 (fun ctx -> field ctx "t" (string "Ensign"))
# let _ = serialize_rank
# open! Serde
# let ( let* ) = Result.bind
# @@ -424,12 +417,11 @@ $ adjacently tagged variant
# fun ctx ->
# let tag_content_field_visitor =
# Visitor.make
# - ~visit_string:(fun _ctx ->
# - fun str ->
# - match str with
# - | "t" -> Ok `tag
# - | "c" -> Ok `content
# - | _ -> Error `invalid_tag) () in
# + ~visit_string:(fun _ctx str ->
# + match str with
# + | "t" -> Ok `tag
# + | "c" -> Ok `content
# + | _ -> Error `invalid_tag) () in
# record ctx "" 2
# (fun ctx ->
# let rec read_fields ctx =
# @@ -497,27 +489,26 @@ $ adjacently tagged variant
# in Ok (Captain { ship; name }))
# | "Commander" ->
# sequence ctx
# - (fun ~size ->
# - fun ctx ->
# - ignore size;
# - (let* v_1 =
# - match element ctx string with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in
# - let* v_2 =
# - match element ctx int32 with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in
# - let* v_3 =
# - match element ctx float with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in Ok (Commander (v_1, v_2, v_3))))
# + (fun ~size ctx ->
# + ignore size;
# + (let* v_1 =
# + match element ctx string with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in
# + let* v_2 =
# + match element ctx int32 with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in
# + let* v_3 =
# + match element ctx float with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in Ok (Commander (v_1, v_2, v_3))))
# | "Lt" ->
# (deserialize ctx) @@
# ((fun ctx ->
# @@ -584,27 +575,26 @@ $ adjacently tagged variant
# in Ok (Captain { ship; name }))
# | "Commander" ->
# sequence ctx
# - (fun ~size ->
# - fun ctx ->
# - ignore size;
# - (let* v_1 =
# - match element ctx string with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in
# - let* v_2 =
# - match element ctx int32 with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in
# - let* v_3 =
# - match element ctx float with
# - | Ok (Some v) -> Ok v
# - | Ok (None) -> Error `no_more_data
# - | Error reason -> Error reason
# - in Ok (Commander (v_1, v_2, v_3))))
# + (fun ~size ctx ->
# + ignore size;
# + (let* v_1 =
# + match element ctx string with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in
# + let* v_2 =
# + match element ctx int32 with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in
# + let* v_3 =
# + match element ctx float with
# + | Ok (Some v) -> Ok v
# + | Ok (None) -> Error `no_more_data
# + | Error reason -> Error reason
# + in Ok (Commander (v_1, v_2, v_3))))
# | "Lt" ->
# (deserialize ctx) @@
# ((fun ctx ->
# @@ -635,12 +625,11 @@ $ adjacently tagged variant
# let _ = ( let* )
# let serialize_ranks =
# let open Serde.Ser in
# - fun t ->
# - fun ctx ->
# - match t with
# - | Ranks v_1 ->
# - newtype_variant ctx "ranks" 0 "Ranks"
# - ((s (list (s serialize_rank))) v_1)
# + fun t ctx ->
# + match t with
# + | Ranks v_1 ->
# + newtype_variant ctx "ranks" 0 "Ranks"
# + ((s (list (s serialize_rank))) v_1)
# let _ = serialize_ranks
# open! Serde
# let ( let* ) = Result.bind
# @@ -651,11 +640,10 @@ $ adjacently tagged variant
# fun ctx ->
# let field_visitor =
# Visitor.make
# - ~visit_string:(fun _ctx ->
# - fun str ->
# - match str with
# - | "Ranks" -> Ok `Ranks
# - | _ -> Error `invalid_tag) () in
# + ~visit_string:(fun _ctx str ->
# + match str with
# + | "Ranks" -> Ok `Ranks
# + | _ -> Error `invalid_tag) () in
# (variant ctx "ranks" ["Ranks"]) @@
# (fun ctx ->
# let* tag = identifier ctx field_visitor
<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
+- The following actions failed
| - build serde_derive 0.0.2
+-
- No changes have been performed
# To update the current shell environment, run: eval $(opam env)
'opam reinstall --with-test --verbose serde_derive.0.0.2' failed.
[WARNING] OPAMCONFIRMLEVEL was ignored because CLI 2.0 was requested and it was introduced in 2.1.
[WARNING] OPAMCONFIRMLEVEL was ignored because CLI 2.0 was requested and it was introduced in 2.1.
"/usr/bin/env" "bash" "-c" "opam reinstall --with-test --verbose serde_derive.0.0.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" != 'serde_derive.0.0.2' && partial_fails="$partial_fails $pkg";
done;
test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}";
exit 1" failed with exit status 1
2026-03-02 02:23.06: Job failed: Failed: Build failed
2026-03-02 02:23.06: Log analysis:
2026-03-02 02:23.06: >>>
[ERROR] The compilation of serde_derive.0.0.2 failed at "dune build -p serde_derive -j 71 @install @runtest".
(score = 20)
2026-03-02 02:23.06: >>>
[ERROR] The compilation of serde_derive.0.0.2 failed at "dune build -p serde_derive -j 71 @install @runtest".
(score = 20)
2026-03-02 02:23.06: The compilation of serde_derive.0.0.2 failed at "dune build -p serde_derive -j 71 @install @runtest".