- github
- ocaml
- opam-repository
- 3e0c39
- compilers,5.4,dune.3.22.2,revdeps,serde_derive.0.0.2
(not at the head of any monitored branch or PR)
2026-04-13 14:42.42: New job: test serde_derive.0.0.2 with dune.3.22.2, using opam dev
from https://github.com/ocaml/opam-repository.git#refs/pull/29704/head (3e0c395e7b1393a792367f8edca3654dac71e6fd)
on debian-13-ocaml-5.4/amd64
To reproduce locally:
cd $(mktemp -d)
git clone --recursive "https://github.com/ocaml/opam-repository.git" && cd "opam-repository" && git fetch origin "refs/pull/29704/head" && git reset --hard 3e0c395e
git fetch origin master
git merge --no-edit ba4685aeec7b28fde6af30c7b83004704c68c86a
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-13-ocaml-5.4@sha256:a447b546feb1d9aedc90fda889d688eb9be4d3bdea086d5b2f4f59f38f224ef4
USER 1000:1000
WORKDIR /home/opam
RUN sudo ln -f /usr/bin/opam-dev /usr/bin/opam
RUN opam init --reinit -ni
RUN opam option solver=builtin-0install && opam config report
ENV OPAMDOWNLOADJOBS="1"
ENV OPAMERRLOGLEN="0"
ENV OPAMPRECISETRACKING="1"
ENV CI="true"
ENV OPAM_REPO_CI="true"
RUN rm -rf opam-repository/
COPY --chown=1000:1000 . opam-repository/
RUN opam repository set-url --strict default opam-repository/
RUN opam update --depexts || true
RUN opam pin add -k version -yn dune.3.22.2 3.22.2
RUN opam reinstall dune.3.22.2; \
res=$?; \
test "$res" != 31 && exit "$res"; \
export OPAMCLI=2.0; \
build_dir=$(opam var prefix)/.opam-switch/build; \
failed=$(ls "$build_dir"); \
partial_fails=""; \
for pkg in $failed; do \
if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then \
echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
fi; \
test "$pkg" != 'dune.3.22.2' && partial_fails="$partial_fails $pkg"; \
done; \
test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
exit 1
RUN opam reinstall 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-04-13 14:42.42: Using cache hint "ocaml/opam:debian-13-ocaml-5.4@sha256:a447b546feb1d9aedc90fda889d688eb9be4d3bdea086d5b2f4f59f38f224ef4-dune.3.22.2-serde_derive.0.0.2-3e0c395e7b1393a792367f8edca3654dac71e6fd"
2026-04-13 14:42.42: Using OBuilder spec:
((from ocaml/opam:debian-13-ocaml-5.4@sha256:a447b546feb1d9aedc90fda889d688eb9be4d3bdea086d5b2f4f59f38f224ef4)
(user (uid 1000) (gid 1000))
(workdir /home/opam)
(run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
(run (network host)
(shell "opam init --reinit --config .opamrc-sandbox -ni"))
(run (shell "opam option solver=builtin-0install && opam config report"))
(env OPAMDOWNLOADJOBS 1)
(env OPAMERRLOGLEN 0)
(env OPAMPRECISETRACKING 1)
(env CI true)
(env OPAM_REPO_CI true)
(run (shell "rm -rf opam-repository/"))
(copy (src .) (dst opam-repository/))
(run (shell "opam repository set-url --strict default opam-repository/"))
(run (network host)
(shell "opam update --depexts || true"))
(run (shell "opam pin add -k version -yn dune.3.22.2 3.22.2"))
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall dune.3.22.2;\
\n res=$?;\
\n test \"$res\" != 31 && exit \"$res\";\
\n export OPAMCLI=2.0;\
\n build_dir=$(opam var prefix)/.opam-switch/build;\
\n failed=$(ls \"$build_dir\");\
\n partial_fails=\"\";\
\n for pkg in $failed; do\
\n if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
\n echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
\n fi;\
\n test \"$pkg\" != 'dune.3.22.2' && partial_fails=\"$partial_fails $pkg\";\
\n done;\
\n test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
\n exit 1"))
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall 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-04-13 14:42.42: Waiting for resource in pool OCluster
2026-04-13 15:26.06: Waiting for worker…
2026-04-13 15:32.40: Got resource from pool OCluster
Building on clete.caelum.ci.dev
All commits already cached
Updating files: 68% (12830/18721)
Updating files: 69% (12918/18721)
Updating files: 70% (13105/18721)
Updating files: 71% (13292/18721)
Updating files: 72% (13480/18721)
Updating files: 73% (13667/18721)
Updating files: 74% (13854/18721)
Updating files: 75% (14041/18721)
Updating files: 76% (14228/18721)
Updating files: 77% (14416/18721)
Updating files: 78% (14603/18721)
Updating files: 79% (14790/18721)
Updating files: 80% (14977/18721)
Updating files: 81% (15165/18721)
Updating files: 82% (15352/18721)
Updating files: 83% (15539/18721)
Updating files: 84% (15726/18721)
Updating files: 85% (15913/18721)
Updating files: 86% (16101/18721)
Updating files: 87% (16288/18721)
Updating files: 88% (16475/18721)
Updating files: 89% (16662/18721)
Updating files: 90% (16849/18721)
Updating files: 91% (17037/18721)
Updating files: 92% (17224/18721)
Updating files: 93% (17411/18721)
Updating files: 94% (17598/18721)
Updating files: 95% (17785/18721)
Updating files: 96% (17973/18721)
Updating files: 97% (18160/18721)
Updating files: 98% (18347/18721)
Updating files: 99% (18534/18721)
Updating files: 100% (18721/18721)
Updating files: 100% (18721/18721), done.
HEAD is now at ba4685aeec Merge pull request #29653 from yakobowski/camlidl
Merge made by the 'ort' strategy.
packages/chrome-trace/chrome-trace.3.22.2/opam | 39 +++++++++++
.../dune-action-plugin.3.22.2/opam | 52 +++++++++++++++
.../dune-action-trace.3.22.2/opam | 39 +++++++++++
.../dune-build-info/dune-build-info.3.22.2/opam | 45 +++++++++++++
.../dune-configurator.3.22.2/opam | 49 ++++++++++++++
packages/dune-glob/dune-glob.3.22.2/opam | 42 ++++++++++++
.../dune-private-libs.3.22.2/opam | 50 +++++++++++++++
packages/dune-rpc-lwt/dune-rpc-lwt.3.22.2/opam | 41 ++++++++++++
packages/dune-rpc/dune-rpc.3.22.2/opam | 44 +++++++++++++
packages/dune-site/dune-site.3.22.2/opam | 37 +++++++++++
packages/dune/dune.3.22.2/opam | 75 ++++++++++++++++++++++
packages/dyn/dyn.3.22.2/opam | 40 ++++++++++++
packages/fs-io/fs-io.3.22.2/opam | 39 +++++++++++
packages/ocamlc-loc/ocamlc-loc.3.22.2/opam | 43 +++++++++++++
packages/ordering/ordering.3.22.2/opam | 38 +++++++++++
packages/stdune/stdune.3.22.2/opam | 46 +++++++++++++
packages/top-closure/top-closure.3.22.2/opam | 38 +++++++++++
packages/xdg/xdg.3.22.2/opam | 39 +++++++++++
18 files changed, 796 insertions(+)
create mode 100644 packages/chrome-trace/chrome-trace.3.22.2/opam
create mode 100644 packages/dune-action-plugin/dune-action-plugin.3.22.2/opam
create mode 100644 packages/dune-action-trace/dune-action-trace.3.22.2/opam
create mode 100644 packages/dune-build-info/dune-build-info.3.22.2/opam
create mode 100644 packages/dune-configurator/dune-configurator.3.22.2/opam
create mode 100644 packages/dune-glob/dune-glob.3.22.2/opam
create mode 100644 packages/dune-private-libs/dune-private-libs.3.22.2/opam
create mode 100644 packages/dune-rpc-lwt/dune-rpc-lwt.3.22.2/opam
create mode 100644 packages/dune-rpc/dune-rpc.3.22.2/opam
create mode 100644 packages/dune-site/dune-site.3.22.2/opam
create mode 100644 packages/dune/dune.3.22.2/opam
create mode 100644 packages/dyn/dyn.3.22.2/opam
create mode 100644 packages/fs-io/fs-io.3.22.2/opam
create mode 100644 packages/ocamlc-loc/ocamlc-loc.3.22.2/opam
create mode 100644 packages/ordering/ordering.3.22.2/opam
create mode 100644 packages/stdune/stdune.3.22.2/opam
create mode 100644 packages/top-closure/top-closure.3.22.2/opam
create mode 100644 packages/xdg/xdg.3.22.2/opam
(from ocaml/opam:debian-13-ocaml-5.4@sha256:a447b546feb1d9aedc90fda889d688eb9be4d3bdea086d5b2f4f59f38f224ef4)
Unable to find image 'ocaml/opam:debian-13-ocaml-5.4@sha256:a447b546feb1d9aedc90fda889d688eb9be4d3bdea086d5b2f4f59f38f224ef4' locally
docker.io/ocaml/opam@sha256:a447b546feb1d9aedc90fda889d688eb9be4d3bdea086d5b2f4f59f38f224ef4: Pulling from ocaml/opam
8f6ad858d0a4: Already exists
9cb5e198c8cf: Pulling fs layer
2d346d36dcf2: Pulling fs layer
cdc35e289b8d: Pulling fs layer
aeb7244bb580: Pulling fs layer
fc1943254a0d: Pulling fs layer
84238c416f8e: Pulling fs layer
fbbfe75d3112: Pulling fs layer
221fdc5d9929: Pulling fs layer
1fec9149b52a: Pulling fs layer
9c6e52557f24: Pulling fs layer
aeb7244bb580: Waiting
8737f5036aae: Pulling fs layer
fc1943254a0d: Waiting
84238c416f8e: Waiting
d69c4074de14: Pulling fs layer
fbbfe75d3112: Waiting
1fec9149b52a: Waiting
8737f5036aae: Waiting
9c6e52557f24: Waiting
7237152a5f04: Pulling fs layer
fba4b414d8a0: Pulling fs layer
d69c4074de14: Waiting
7237152a5f04: Waiting
40d552afb3ef: Pulling fs layer
fba4b414d8a0: Waiting
077cc17dc8e4: Pulling fs layer
40d552afb3ef: Waiting
077cc17dc8e4: Waiting
169e1be36a55: Pulling fs layer
0a8a005097ab: Pulling fs layer
169e1be36a55: Waiting
caba3ec4b361: Pulling fs layer
0a8a005097ab: Waiting
6a364dc641f8: Pulling fs layer
4f4fb700ef54: Pulling fs layer
caba3ec4b361: Waiting
ab8052928cdc: Pulling fs layer
4f4fb700ef54: Waiting
6a364dc641f8: Waiting
f5717a28dd6a: Pulling fs layer
79233a9b9bed: Pulling fs layer
ab8052928cdc: Waiting
d832d53e7392: Pulling fs layer
f5717a28dd6a: Waiting
79233a9b9bed: Waiting
1872dad82243: Pulling fs layer
bfd849b08ba7: Pulling fs layer
d832d53e7392: Waiting
834a8024ef15: Pulling fs layer
98ccec79258b: Pulling fs layer
bfd849b08ba7: Waiting
834a8024ef15: Waiting
fb48f36a0542: Pulling fs layer
3688b13db8e7: Pulling fs layer
98ccec79258b: Waiting
a5c099f5f72c: Pulling fs layer
3688b13db8e7: Waiting
fb48f36a0542: Waiting
1ff1760de5b0: Pulling fs layer
a5c099f5f72c: Waiting
98eec6764aa5: Pulling fs layer
aa22ae69debd: Pulling fs layer
1ff1760de5b0: Waiting
98eec6764aa5: Waiting
12bfb7b962a2: Pulling fs layer
ec25ce9bb816: Pulling fs layer
beadd3cf7357: Pulling fs layer
aa22ae69debd: Waiting
ec25ce9bb816: Waiting
12bfb7b962a2: Waiting
d0d0c65a426d: Pulling fs layer
beadd3cf7357: Waiting
3574d8cdbcc5: Pulling fs layer
d0d0c65a426d: Waiting
b74552b4db71: Pulling fs layer
3574d8cdbcc5: Waiting
b74552b4db71: Waiting
27b1c047e252: Pulling fs layer
26897dca61f0: Pulling fs layer
27b1c047e252: Waiting
8cb12431740e: Pulling fs layer
0dec740ecd51: Pulling fs layer
26897dca61f0: Waiting
79518206bd07: Pulling fs layer
8cb12431740e: Waiting
0dec740ecd51: Waiting
79518206bd07: Waiting
9cb5e198c8cf: Download complete
9cb5e198c8cf: Pull complete
2d346d36dcf2: Download complete
2d346d36dcf2: Pull complete
aeb7244bb580: Verifying Checksum
aeb7244bb580: Download complete
cdc35e289b8d: Verifying Checksum
cdc35e289b8d: Download complete
84238c416f8e: Verifying Checksum
84238c416f8e: Download complete
fbbfe75d3112: Verifying Checksum
fbbfe75d3112: Download complete
cdc35e289b8d: Pull complete
aeb7244bb580: Pull complete
221fdc5d9929: Verifying Checksum
221fdc5d9929: Download complete
1fec9149b52a: Verifying Checksum
1fec9149b52a: Download complete
9c6e52557f24: Verifying Checksum
9c6e52557f24: Download complete
8737f5036aae: Verifying Checksum
8737f5036aae: Download complete
d69c4074de14: Verifying Checksum
d69c4074de14: Download complete
7237152a5f04: Verifying Checksum
7237152a5f04: Download complete
fba4b414d8a0: Verifying Checksum
fba4b414d8a0: Download complete
40d552afb3ef: Verifying Checksum
40d552afb3ef: Download complete
077cc17dc8e4: Verifying Checksum
077cc17dc8e4: Download complete
169e1be36a55: Verifying Checksum
169e1be36a55: Download complete
0a8a005097ab: Download complete
caba3ec4b361: Verifying Checksum
6a364dc641f8: Download complete
4f4fb700ef54: Verifying Checksum
4f4fb700ef54: Download complete
ab8052928cdc: Verifying Checksum
ab8052928cdc: Download complete
f5717a28dd6a: Download complete
79233a9b9bed: Download complete
d832d53e7392: Verifying Checksum
d832d53e7392: Download complete
1872dad82243: Verifying Checksum
1872dad82243: Download complete
fc1943254a0d: Verifying Checksum
fc1943254a0d: Download complete
bfd849b08ba7: Download complete
834a8024ef15: Download complete
98ccec79258b: Verifying Checksum
98ccec79258b: Download complete
fb48f36a0542: Verifying Checksum
fb48f36a0542: Download complete
3688b13db8e7: Verifying Checksum
3688b13db8e7: Download complete
a5c099f5f72c: Verifying Checksum
a5c099f5f72c: Download complete
1ff1760de5b0: Download complete
aa22ae69debd: Download complete
ec25ce9bb816: Download complete
beadd3cf7357: Verifying Checksum
beadd3cf7357: Download complete
d0d0c65a426d: Download complete
3574d8cdbcc5: Verifying Checksum
3574d8cdbcc5: Download complete
b74552b4db71: Verifying Checksum
b74552b4db71: Download complete
27b1c047e252: Download complete
26897dca61f0: Verifying Checksum
26897dca61f0: Download complete
8cb12431740e: Verifying Checksum
8cb12431740e: Download complete
0dec740ecd51: Verifying Checksum
0dec740ecd51: Download complete
79518206bd07: Download complete
98eec6764aa5: Verifying Checksum
98eec6764aa5: Download complete
12bfb7b962a2: Verifying Checksum
12bfb7b962a2: Download complete
fc1943254a0d: Pull complete
84238c416f8e: Pull complete
fbbfe75d3112: Pull complete
221fdc5d9929: Pull complete
1fec9149b52a: Pull complete
9c6e52557f24: Pull complete
8737f5036aae: Pull complete
d69c4074de14: Pull complete
7237152a5f04: Pull complete
fba4b414d8a0: Pull complete
40d552afb3ef: Pull complete
077cc17dc8e4: Pull complete
169e1be36a55: Pull complete
0a8a005097ab: Pull complete
caba3ec4b361: Pull complete
6a364dc641f8: Pull complete
4f4fb700ef54: Pull complete
ab8052928cdc: Pull complete
f5717a28dd6a: Pull complete
79233a9b9bed: Pull complete
d832d53e7392: Pull complete
1872dad82243: Pull complete
bfd849b08ba7: Pull complete
834a8024ef15: Pull complete
98ccec79258b: Pull complete
fb48f36a0542: Pull complete
3688b13db8e7: Pull complete
a5c099f5f72c: Pull complete
1ff1760de5b0: Pull complete
98eec6764aa5: Pull complete
aa22ae69debd: Pull complete
12bfb7b962a2: Pull complete
ec25ce9bb816: Pull complete
beadd3cf7357: Pull complete
d0d0c65a426d: Pull complete
3574d8cdbcc5: Pull complete
b74552b4db71: Pull complete
27b1c047e252: Pull complete
26897dca61f0: Pull complete
8cb12431740e: Pull complete
0dec740ecd51: Pull complete
79518206bd07: Pull complete
Digest: sha256:a447b546feb1d9aedc90fda889d688eb9be4d3bdea086d5b2f4f59f38f224ef4
Status: Downloaded newer image for ocaml/opam@sha256:a447b546feb1d9aedc90fda889d688eb9be4d3bdea086d5b2f4f59f38f224ef4
2026-04-13 15:32.44 ---> using "650db199dd47c38a0926a758262f0be95fb78e2d9a79cbdc2809fa2b15683d52" from cache
/: (user (uid 1000) (gid 1000))
/: (workdir /home/opam)
/home/opam: (run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
2026-04-13 15:32.44 ---> using "1d82b13dae11ba0e4ae4c53498d44d66e368b802cfcb77b29900c3af7e2a1562" from cache
/home/opam: (run (network host)
(shell "opam init --reinit --config .opamrc-sandbox -ni"))
Configuring from /home/opam/.opamrc-sandbox, then /home/opam/.opamrc, and finally from built-in defaults.
Checking for available remotes: rsync and local, git.
- you won't be able to use mercurial repositories unless you install the hg command on your system.
- you won't be able to use darcs repositories unless you install the darcs command on your system.
This version of opam requires an update to the layout of /home/opam/.opam from version 2.0 to version 2.2, which can't be reverted.
You may want to back it up before going further.
Continue? [Y/n] y
Format upgrade done.
<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2026-04-13 15:32.44 ---> using "8fc56361284f52a58bad5297203dc12518b6d67d540112c1ecc4d982140daeca" from cache
/home/opam: (run (shell "opam option solver=builtin-0install && opam config report"))
Set to 'builtin-0install' the field solver in global configuration
# opam config report
# opam-version 2.5.0
# self-upgrade no
# system arch=x86_64 os=linux os-distribution=debian os-version=13
# solver builtin-0install
# install-criteria -changed,-count[avoid-version,solution]
# upgrade-criteria -count[avoid-version,solution]
# jobs 71
# repositories 1 (version-controlled)
# pinned 1 (version)
# current-switch 5.4
# invariant ["ocaml-base-compiler" {= "5.4.1"}]
# compiler-packages ocaml-base-compiler.5.4.1, ocaml-compiler.5.4.1, ocaml-options-vanilla.1
# ocaml:native true
# ocaml:native-tools true
# ocaml:native-dynlink true
# ocaml:stubsdir /home/opam/.opam/5.4/lib/ocaml/stublibs:/home/opam/.opam/5.4/lib/ocaml
# ocaml:preinstalled false
# ocaml:compiler 5.4.1
2026-04-13 15:32.44 ---> using "fe9db6e6aedfe8a888a2521b45017dcd4b4a70e85e324e4a3527adef84a23afd" from cache
/home/opam: (env OPAMDOWNLOADJOBS 1)
/home/opam: (env OPAMERRLOGLEN 0)
/home/opam: (env OPAMPRECISETRACKING 1)
/home/opam: (env CI true)
/home/opam: (env OPAM_REPO_CI true)
/home/opam: (run (shell "rm -rf opam-repository/"))
2026-04-13 15:32.44 ---> using "3a79be73bc2436b5aae3b84f3727fd2fe0209a9b7334e20aac2d10fcd0f26769" from cache
/home/opam: (copy (src .) (dst opam-repository/))
2026-04-13 15:32.46 ---> using "306e2765f803e9ac22f1023f023e8bba6e1f5296fc47a318acebb969ba1b1204" from cache
/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2026-04-13 15:32.46 ---> using "9e9b4bad2baa72b9fad539bf23d04eb0f2a72097c5685706fe162459f8a36f61" 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 [122 kB]
- Fetched 213 kB in 1s (202 kB/s)
- Reading package lists...
-
2026-04-13 15:32.46 ---> using "2fb1ac5ca6037947ba1884eb3a92b9454761e371e0b3c1955630d8faadedabed" from cache
/home/opam: (run (shell "opam pin add -k version -yn dune.3.22.2 3.22.2"))
dune is now pinned to version 3.22.2
2026-04-13 15:32.46 ---> using "44c7d7d7595c4a41e6aab53eb1a771058e5fb0ec8e90350b08cc9f23cb3d5ed9" from cache
/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall dune.3.22.2;\
\n res=$?;\
\n test \"$res\" != 31 && exit \"$res\";\
\n export OPAMCLI=2.0;\
\n build_dir=$(opam var prefix)/.opam-switch/build;\
\n failed=$(ls \"$build_dir\");\
\n partial_fails=\"\";\
\n for pkg in $failed; do\
\n if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
\n echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
\n fi;\
\n test \"$pkg\" != 'dune.3.22.2' && partial_fails=\"$partial_fails $pkg\";\
\n done;\
\n test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
\n exit 1"))
dune.3.22.2 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 1 package
- install dune 3.22.2 (pinned)
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved dune.3.22.2 (cached)
-> installed dune.3.22.2
Done.
# To update the current shell environment, run: eval $(opam env)
2026-04-13 15:32.46 ---> using "7aefc73d6425e27bc34bfbdb99d4d7e80ada815df45ed1df4e5c28f9ea60f0d6" 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 fmt 0.11.0 [required by cstruct]
- install ocaml-compiler-libs v0.17.0 [required by ppxlib]
- install ocamlbuild 0.16.1 [required by fmt]
- 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.38.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 fmt.0.11.0 (cached)
-> retrieved ocaml-compiler-libs.v0.17.0 (cached)
-> retrieved ocamlbuild.0.16.1 (cached)
-> retrieved ocamlfind.1.9.8 (cached)
-> retrieved ppx_derivers.1.2.1 (cached)
-> retrieved ppx_deriving.6.1.1 (cached)
-> retrieved ppxlib.0.38.0 (cached)
-> installed ppx_derivers.1.2.1
-> retrieved rio.0.0.8 (https://opam.ocaml.org/cache)
-> retrieved serde.0.0.2, serde_derive.0.0.2 (https://opam.ocaml.org/cache)
-> installed cppo.1.8.0
-> retrieved sexplib0.v0.17.0 (cached)
-> retrieved stdlib-shims.0.3.0 (cached)
-> retrieved topkg.1.1.1 (cached)
-> installed ocaml-compiler-libs.v0.17.0
-> installed stdlib-shims.0.3.0
-> installed sexplib0.v0.17.0
-> installed ocamlfind.1.9.8
-> installed ocamlbuild.0.16.1
-> installed topkg.1.1.1
-> installed fmt.0.11.0
-> installed cstruct.6.2.0
-> installed rio.0.0.8
-> installed serde.0.0.2
-> installed ppxlib.0.38.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-04-13 15:33.47 ---> saved as "bb0e66e8003c03cf7085805f8664dc44b99c8bc046c85ecfe518dbe5c38d6ca1"
/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.22.2 [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+deb13u2) ...
<><> 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.22.2 (https://github.com/ocaml/dune/releases/download/3.22.2/dune-3.22.2.tbz)
-> retrieved jane-street-headers.v0.17.0 (https://opam.ocaml.org/cache)
-> installed jane-street-headers.v0.17.0
-> 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 ocaml_intrinsics_kernel.v0.17.1
-> 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)
-> installed dune-configurator.3.22.2
-> 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)
-> 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
-> removed serde_derive.0.0.2
-> installed yojson.3.0.0
-> installed base.v0.17.3
-> installed stdio.v0.17.0
-> installed ppx_optcomp.v0.17.1
-> installed ppx_cold.v0.17.0
-> installed ppx_here.v0.17.0
-> installed ppx_enumerate.v0.17.0
-> 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.1 | 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-603161.env
# output-file ~/.opam/log/serde_derive-7-603161.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.22.2
| - 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-20260413153347.export"
Or you can retry to install your package selection with:
/usr/bin/opam install --restore
2026-04-13 15:35.09 ---> saved as "a3b030e1408882615d178d30bffbc531bd30f39503071b412a685b3e082ca6d0"
/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.1 | 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-5946d1.env
# output-file ~/.opam/log/serde_derive-7-5946d1.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-04-13 15:35.28: Job failed: Failed: Build failed
2026-04-13 15:35.28: Log analysis:
2026-04-13 15:35.28: >>>
[ERROR] The compilation of serde_derive.0.0.2 failed at "dune build -p serde_derive -j 71 @install @runtest".
(score = 20)
2026-04-13 15:35.28: >>>
[ERROR] The compilation of serde_derive.0.0.2 failed at "dune build -p serde_derive -j 71 @install @runtest".
(score = 20)
2026-04-13 15:35.28: The compilation of serde_derive.0.0.2 failed at "dune build -p serde_derive -j 71 @install @runtest".