- github
- ocaml
- opam-repository
- 19c70f
- compilers,5.4,dune.3.22.0~alpha2,revdeps,serde_derive.0.0.2
(not at the head of any monitored branch or PR)
2026-03-16 19:16.01: New job: test serde_derive.0.0.2 with dune.3.22.0~alpha2, using opam dev
from https://github.com/ocaml/opam-repository.git#refs/pull/29547/head (19c70fd6a788b154ec5e9fe26bca1d12fb2519be)
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/29547/head" && git reset --hard 19c70fd6
git fetch origin master
git merge --no-edit 4f056bfedf536e66065c3783e694e6aa0b38261a
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6
USER 1000:1000
WORKDIR /home/opam
RUN sudo ln -f /usr/bin/opam-dev /usr/bin/opam
RUN opam init --reinit -ni
RUN opam option solver=builtin-0install && opam config report
ENV OPAMDOWNLOADJOBS="1"
ENV OPAMERRLOGLEN="0"
ENV OPAMPRECISETRACKING="1"
ENV CI="true"
ENV OPAM_REPO_CI="true"
RUN rm -rf opam-repository/
COPY --chown=1000:1000 . opam-repository/
RUN opam repository set-url --strict default opam-repository/
RUN opam update --depexts || true
RUN opam pin add -k version -yn dune.3.22.0~alpha2 3.22.0~alpha2
RUN opam reinstall dune.3.22.0~alpha2; \
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.0~alpha2' && 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-03-16 19:16.01: Using cache hint "ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6-dune.3.22.0~alpha2-serde_derive.0.0.2-19c70fd6a788b154ec5e9fe26bca1d12fb2519be"
2026-03-16 19:16.01: Using OBuilder spec:
((from ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6)
(user (uid 1000) (gid 1000))
(workdir /home/opam)
(run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
(run (network host)
(shell "opam init --reinit --config .opamrc-sandbox -ni"))
(run (shell "opam option solver=builtin-0install && opam config report"))
(env OPAMDOWNLOADJOBS 1)
(env OPAMERRLOGLEN 0)
(env OPAMPRECISETRACKING 1)
(env CI true)
(env OPAM_REPO_CI true)
(run (shell "rm -rf opam-repository/"))
(copy (src .) (dst opam-repository/))
(run (shell "opam repository set-url --strict default opam-repository/"))
(run (network host)
(shell "opam update --depexts || true"))
(run (shell "opam pin add -k version -yn dune.3.22.0~alpha2 3.22.0~alpha2"))
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall dune.3.22.0~alpha2;\
\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.0~alpha2' && 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-03-16 19:16.01: Waiting for resource in pool OCluster
2026-03-17 02:21.58: Waiting for worker…
2026-03-17 02:24.19: Got resource from pool OCluster
Building on bremusa.ocamllabs.io
All commits already cached
Updating files: 95% (17600/18461)
Updating files: 96% (17723/18461)
Updating files: 97% (17908/18461)
Updating files: 98% (18092/18461)
Updating files: 99% (18277/18461)
Updating files: 100% (18461/18461)
Updating files: 100% (18461/18461), done.
HEAD is now at 4f056bfedf Merge pull request #29543 from Zaneham/add-olint-0.1.0
Updating 4f056bfedf..19c70fd6a7
Fast-forward
.../chrome-trace/chrome-trace.3.22.0~alpha2/opam | 39 +++++++++++
.../dune-action-plugin.3.22.0~alpha2/opam | 52 +++++++++++++++
.../dune-action-trace.3.22.0~alpha2/opam | 39 +++++++++++
.../dune-build-info.3.22.0~alpha2/opam | 45 +++++++++++++
.../dune-configurator.3.22.0~alpha2/opam | 49 ++++++++++++++
packages/dune-glob/dune-glob.3.22.0~alpha2/opam | 42 ++++++++++++
.../dune-private-libs.3.22.0~alpha2/opam | 50 +++++++++++++++
.../dune-rpc-lwt/dune-rpc-lwt.3.22.0~alpha2/opam | 41 ++++++++++++
packages/dune-rpc/dune-rpc.3.22.0~alpha2/opam | 44 +++++++++++++
packages/dune-site/dune-site.3.22.0~alpha2/opam | 37 +++++++++++
packages/dune/dune.3.22.0~alpha2/opam | 75 ++++++++++++++++++++++
packages/dyn/dyn.3.22.0~alpha2/opam | 40 ++++++++++++
packages/fs-io/fs-io.3.22.0~alpha2/opam | 39 +++++++++++
packages/ocamlc-loc/ocamlc-loc.3.22.0~alpha2/opam | 43 +++++++++++++
packages/ordering/ordering.3.22.0~alpha2/opam | 38 +++++++++++
packages/stdune/stdune.3.22.0~alpha2/opam | 46 +++++++++++++
.../top-closure/top-closure.3.22.0~alpha2/opam | 38 +++++++++++
packages/xdg/xdg.3.22.0~alpha2/opam | 39 +++++++++++
18 files changed, 796 insertions(+)
create mode 100644 packages/chrome-trace/chrome-trace.3.22.0~alpha2/opam
create mode 100644 packages/dune-action-plugin/dune-action-plugin.3.22.0~alpha2/opam
create mode 100644 packages/dune-action-trace/dune-action-trace.3.22.0~alpha2/opam
create mode 100644 packages/dune-build-info/dune-build-info.3.22.0~alpha2/opam
create mode 100644 packages/dune-configurator/dune-configurator.3.22.0~alpha2/opam
create mode 100644 packages/dune-glob/dune-glob.3.22.0~alpha2/opam
create mode 100644 packages/dune-private-libs/dune-private-libs.3.22.0~alpha2/opam
create mode 100644 packages/dune-rpc-lwt/dune-rpc-lwt.3.22.0~alpha2/opam
create mode 100644 packages/dune-rpc/dune-rpc.3.22.0~alpha2/opam
create mode 100644 packages/dune-site/dune-site.3.22.0~alpha2/opam
create mode 100644 packages/dune/dune.3.22.0~alpha2/opam
create mode 100644 packages/dyn/dyn.3.22.0~alpha2/opam
create mode 100644 packages/fs-io/fs-io.3.22.0~alpha2/opam
create mode 100644 packages/ocamlc-loc/ocamlc-loc.3.22.0~alpha2/opam
create mode 100644 packages/ordering/ordering.3.22.0~alpha2/opam
create mode 100644 packages/stdune/stdune.3.22.0~alpha2/opam
create mode 100644 packages/top-closure/top-closure.3.22.0~alpha2/opam
create mode 100644 packages/xdg/xdg.3.22.0~alpha2/opam
(from ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6)
2026-03-17 02:24.23 ---> using "41eea30e3f639c18d8cf57c309ec76919ec7b2398036f7e41744cbce59a133d3" from cache
/: (user (uid 1000) (gid 1000))
/: (workdir /home/opam)
/home/opam: (run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
2026-03-17 02:24.23 ---> using "4ad7f430d684c40cedc651267e0edf890c044fe4e624255de377c471b4526bac" from cache
/home/opam: (run (network host)
(shell "opam init --reinit --config .opamrc-sandbox -ni"))
Configuring from /home/opam/.opamrc-sandbox, then /home/opam/.opamrc, and finally from built-in defaults.
Checking for available remotes: rsync and local, git.
- you won't be able to use mercurial repositories unless you install the hg command on your system.
- you won't be able to use darcs repositories unless you install the darcs command on your system.
This version of opam requires an update to the layout of /home/opam/.opam from version 2.0 to version 2.2, which can't be reverted.
You may want to back it up before going further.
Continue? [Y/n] y
Format upgrade done.
<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2026-03-17 02:24.23 ---> using "71fa58e52457bf6a7eac317c6a6ef1e2bdf53e533a1e4fd04b90c9349347e038" from cache
/home/opam: (run (shell "opam option solver=builtin-0install && opam config report"))
Set to 'builtin-0install' the field solver in global configuration
# opam config report
# opam-version 2.5.0
# self-upgrade no
# system arch=x86_64 os=linux os-distribution=debian os-version=13
# solver builtin-0install
# install-criteria -changed,-count[avoid-version,solution]
# upgrade-criteria -count[avoid-version,solution]
# jobs 71
# repositories 1 (version-controlled)
# pinned 1 (version)
# current-switch 5.4
# invariant ["ocaml-base-compiler" {= "5.4.0"}]
# compiler-packages ocaml-base-compiler.5.4.0, ocaml-compiler.5.4.0, ocaml-options-vanilla.1
# ocaml:native true
# ocaml:native-tools true
# ocaml:native-dynlink true
# ocaml:stubsdir /home/opam/.opam/5.4/lib/ocaml/stublibs:/home/opam/.opam/5.4/lib/ocaml
# ocaml:preinstalled false
# ocaml:compiler 5.4.0
2026-03-17 02:24.23 ---> using "ed86081cb38ca125a920162bfe6a4bb7b1c27c6973c917551687c83cf44dbfdf" from cache
/home/opam: (env OPAMDOWNLOADJOBS 1)
/home/opam: (env OPAMERRLOGLEN 0)
/home/opam: (env OPAMPRECISETRACKING 1)
/home/opam: (env CI true)
/home/opam: (env OPAM_REPO_CI true)
/home/opam: (run (shell "rm -rf opam-repository/"))
2026-03-17 02:24.23 ---> using "04a48515eea40c32b96da0c71328b4bba0edb66eed83d4f78554b39097cf1f25" from cache
/home/opam: (copy (src .) (dst opam-repository/))
2026-03-17 02:24.25 ---> using "5aac9760b2a7888c5a0c51e12c4e2f8b78e92b665688f09ee1858f54c46e2fba" from cache
/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2026-03-17 02:24.25 ---> using "eb2bdb7d05f153d109c9af88f52221b082fcc4d1be6951027ec15e8041a9f010" from cache
/home/opam: (run (network host)
(shell "opam update --depexts || true"))
+ /usr/bin/sudo "apt-get" "update"
- Get:1 http://deb.debian.org/debian trixie InRelease [140 kB]
- Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.3 kB]
- Get:3 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
- Get:4 http://deb.debian.org/debian trixie/main amd64 Packages [9671 kB]
- Get:5 http://deb.debian.org/debian-security trixie-security/main amd64 Packages [111 kB]
- Fetched 10.0 MB in 1s (7606 kB/s)
- Reading package lists...
-
2026-03-17 02:24.25 ---> using "44c5375013a613ff9fdb37faa9a067ee60e0498629acd41e746d1271325aac5f" from cache
/home/opam: (run (shell "opam pin add -k version -yn dune.3.22.0~alpha2 3.22.0~alpha2"))
dune is now pinned to version 3.22.0~alpha2
2026-03-17 02:24.25 ---> using "c5266de2923995af5958824fa0bbd774e926b612e3108d8b694bf848e52cd8a4" from cache
/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall dune.3.22.0~alpha2;\
\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.0~alpha2' && 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.0~alpha2 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 1 package
- install dune 3.22.0~alpha2 (pinned)
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved dune.3.22.0~alpha2 (cached)
-> installed dune.3.22.0~alpha2
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-17 02:24.25 ---> using "594988136db5893b5885a5b5da12256dc2762c7912d3a5057429975bed9d7c1c" 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.37.0 [required by serde_derive]
- install rio 0.0.8 [required by serde]
- install serde 0.0.2 [required by serde_derive]
- install serde_derive 0.0.2
- install sexplib0 v0.17.0 [required by ppxlib]
- install stdlib-shims 0.3.0 [required by ppxlib]
- install topkg 1.1.1 [required by fmt]
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved cppo.1.8.0 (cached)
-> retrieved cstruct.6.2.0 (cached)
-> retrieved 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)
-> installed ppx_derivers.1.2.1
-> retrieved ppxlib.0.37.0 (cached)
-> retrieved rio.0.0.8 (cached)
-> retrieved serde.0.0.2, serde_derive.0.0.2 (cached)
-> retrieved sexplib0.v0.17.0 (cached)
-> retrieved stdlib-shims.0.3.0 (cached)
-> retrieved topkg.1.1.1 (cached)
-> installed stdlib-shims.0.3.0
-> installed cppo.1.8.0
-> installed sexplib0.v0.17.0
-> installed ocaml-compiler-libs.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.37.0
-> installed ppx_deriving.6.1.1
-> installed serde_derive.0.0.2
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-17 02:25.08 ---> saved as "14605449910829e6df7eda7533a6e71c11cfa49d43384f916582afc9c865b8dc"
/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.0~alpha2 [required by base]
- install jane-street-headers v0.17.0 [required by time_now]
- install jst-config v0.17.0 [required by time_now]
- install ocaml_intrinsics_kernel v0.17.1 [required by base]
- install ppx_assert v0.17.0 [required by jst-config]
- install ppx_base v0.17.0 [required by time_now]
- install ppx_cold v0.17.0 [required by ppx_base]
- install ppx_compare v0.17.0 [required by ppx_base]
- install ppx_enumerate v0.17.0 [required by ppx_base]
- install ppx_globalize v0.17.2 [required by ppx_base]
- install ppx_hash v0.17.0 [required by ppx_base]
- install ppx_here v0.17.0 [required by ppx_assert]
- install ppx_inline_test v0.17.1 [required by serde_json]
- install ppx_optcomp v0.17.1 [required by time_now]
- install ppx_sexp_conv v0.17.1 [required by ppx_base]
- install ppxlib_jane v0.17.4 [required by ppx_globalize, ppx_enumerate, ppx_hash]
- install serde_json 0.0.2 [required by serde_derive]
- install stdio v0.17.0 [required by ppx_optcomp]
- install time_now v0.17.0 [required by ppx_inline_test]
- install yojson 3.0.0 [required by serde_json]
The following system packages will first need to be installed:
jq
<><> Handling external dependencies <><><><><><><><><><><><><><><><><><><><><><>
opam believes some required external dependencies are missing. opam can:
> 1. Run apt-get to install them (may need root/sudo access)
2. Display the recommended apt-get command and wait while you run it manually (e.g. in another terminal)
3. Continue anyway, and, upon success, permanently register that this external dependency is present, but not detectable
4. Abort the installation
[1/2/3/4] 1
+ /usr/bin/sudo "apt-get" "install" "-qq" "-yy" "jq"
- Selecting previously unselected package libonig5:amd64.
- (Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 20654 files and directories currently installed.)
- Preparing to unpack .../libonig5_6.9.9-1+b1_amd64.deb ...
- Unpacking libonig5:amd64 (6.9.9-1+b1) ...
- Selecting previously unselected package libjq1:amd64.
- Preparing to unpack .../libjq1_1.7.1-6+deb13u1_amd64.deb ...
- Unpacking libjq1:amd64 (1.7.1-6+deb13u1) ...
- Selecting previously unselected package jq.
- Preparing to unpack .../jq_1.7.1-6+deb13u1_amd64.deb ...
- Unpacking jq (1.7.1-6+deb13u1) ...
- Setting up libonig5:amd64 (6.9.9-1+b1) ...
- Setting up libjq1:amd64 (1.7.1-6+deb13u1) ...
- Setting up jq (1.7.1-6+deb13u1) ...
- Processing triggers for libc-bin (2.41-12+deb13u1) ...
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved base.v0.17.3 (https://opam.ocaml.org/cache)
-> installed conf-jq.1
-> retrieved csexp.1.5.2 (https://opam.ocaml.org/cache)
-> installed csexp.1.5.2
-> retrieved dune-configurator.3.22.0~alpha2 (https://github.com/ocaml/dune/releases/download/3.22.0_alpha2/dune-3.22.0.alpha2.tbz)
-> retrieved jane-street-headers.v0.17.0 (https://opam.ocaml.org/cache)
-> retrieved jst-config.v0.17.0 (https://opam.ocaml.org/cache)
-> retrieved ocaml_intrinsics_kernel.v0.17.1 (https://opam.ocaml.org/cache)
-> installed jane-street-headers.v0.17.0
-> retrieved ppx_assert.v0.17.0 (https://opam.ocaml.org/cache)
-> retrieved ppx_base.v0.17.0 (https://opam.ocaml.org/cache)
-> retrieved ppx_cold.v0.17.0 (https://opam.ocaml.org/cache)
-> retrieved ppx_compare.v0.17.0 (https://opam.ocaml.org/cache)
-> retrieved ppx_enumerate.v0.17.0 (https://opam.ocaml.org/cache)
-> installed ocaml_intrinsics_kernel.v0.17.1
-> 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 dune-configurator.3.22.0~alpha2
-> 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_cold.v0.17.0
-> installed ppx_optcomp.v0.17.1
-> installed ppx_enumerate.v0.17.0
-> installed ppx_globalize.v0.17.2
-> installed ppx_here.v0.17.0
-> installed ppx_compare.v0.17.0
-> installed ppx_sexp_conv.v0.17.1
-> installed ppx_hash.v0.17.0
-> installed ppx_assert.v0.17.0
-> installed ppx_base.v0.17.0
-> installed jst-config.v0.17.0
-> installed time_now.v0.17.0
-> installed ppx_inline_test.v0.17.1
-> installed serde_json.0.0.2
[ERROR] The compilation of serde_derive.0.0.2 failed at "dune build -p serde_derive -j 71 @install @runtest".
#=== ERROR while compiling serde_derive.0.0.2 =================================#
# context 2.5.0 | linux/x86_64 | ocaml-base-compiler.5.4.0 | file:///home/opam/opam-repository
# path ~/.opam/5.4/.opam-switch/build/serde_derive.0.0.2
# command ~/.opam/opam-init/hooks/sandbox.sh build dune build -p serde_derive -j 71 @install @runtest
# exit-code 1
# env-file ~/.opam/log/serde_derive-7-a8bc1f.env
# output-file ~/.opam/log/serde_derive-7-a8bc1f.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.0~alpha2
| - 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-20260317022508.export"
Or you can retry to install your package selection with:
/usr/bin/opam install --restore
2026-03-17 02:26.06 ---> saved as "87712d127daa4155ada4686319f8e0f3db42b3152bd051f3bf82cf810634881e"
/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 =
[ERROR] The compilation of serde_derive.0.0.2 failed at "dune build -p serde_derive -j 71 @install @runtest".
#=== ERROR while compiling serde_derive.0.0.2 =================================#
# context 2.5.0 | linux/x86_64 | ocaml-base-compiler.5.4.0 | file:///home/opam/opam-repository
# path ~/.opam/5.4/.opam-switch/build/serde_derive.0.0.2
# command ~/.opam/opam-init/hooks/sandbox.sh build dune build -p serde_derive -j 71 @install @runtest
# exit-code 1
# env-file ~/.opam/log/serde_derive-8-661285.env
# output-file ~/.opam/log/serde_derive-8-661285.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
- - match element ctx float with
- - | Ok (Some v) -> Ok v
- - | Ok (None) -> Error `no_more_data
- - | Error reason -> Error reason
- - in Ok (Commander (v_1, v_2, v_3))))
- + (fun ~size ctx ->
- + ignore size;
- + (let* v_1 =
- + match element ctx string with
- + | Ok (Some v) -> Ok v
- + | Ok (None) -> Error `no_more_data
- + | Error reason -> Error reason
- + in
- + let* v_2 =
- + match element ctx int32 with
- + | Ok (Some v) -> Ok v
- + | Ok (None) -> Error `no_more_data
- + | Error reason -> Error reason
- + in
- + let* v_3 =
- + match element ctx float with
- + | Ok (Some v) -> Ok v
- + | Ok (None) -> Error `no_more_data
- + | Error reason -> Error reason
- + in Ok (Commander (v_1, v_2, v_3))))
- | "Lt" ->
- (deserialize ctx) @@
- ((fun ctx ->
- @@ -635,12 +625,11 @@ $ adjacently tagged variant
- let _ = ( let* )
- let serialize_ranks =
- let open Serde.Ser in
- - fun t ->
- - fun ctx ->
- - match t with
- - | Ranks v_1 ->
- - newtype_variant ctx "ranks" 0 "Ranks"
- - ((s (list (s serialize_rank))) v_1)
- + fun t ctx ->
- + match t with
- + | Ranks v_1 ->
- + newtype_variant ctx "ranks" 0 "Ranks"
- + ((s (list (s serialize_rank))) v_1)
- let _ = serialize_ranks
- open! Serde
- let ( let* ) = Result.bind
- @@ -651,11 +640,10 @@ $ adjacently tagged variant
- fun ctx ->
- let field_visitor =
- Visitor.make
- - ~visit_string:(fun _ctx ->
- - fun str ->
- - match str with
- - | "Ranks" -> Ok `Ranks
- - | _ -> Error `invalid_tag) () in
- + ~visit_string:(fun _ctx str ->
- + match str with
- + | "Ranks" -> Ok `Ranks
- + | _ -> Error `invalid_tag) () in
- (variant ctx "ranks" ["Ranks"]) @@
- (fun ctx ->
- let* tag = identifier ctx field_visitor
<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
+- The following actions failed
| - build serde_derive 0.0.2
+-
- No changes have been performed
# To update the current shell environment, run: eval $(opam env)
'opam reinstall --with-test --verbose serde_derive.0.0.2' failed.
[WARNING] OPAMCONFIRMLEVEL was ignored because CLI 2.0 was requested and it was introduced in 2.1.
[WARNING] OPAMCONFIRMLEVEL was ignored because CLI 2.0 was requested and it was introduced in 2.1.
"/usr/bin/env" "bash" "-c" "opam reinstall --with-test --verbose serde_derive.0.0.2;
res=$?;
test "$res" != 31 && exit "$res";
export OPAMCLI=2.0;
build_dir=$(opam var prefix)/.opam-switch/build;
failed=$(ls "$build_dir");
partial_fails="";
for pkg in $failed; do
if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then
echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.";
fi;
test "$pkg" != 'serde_derive.0.0.2' && partial_fails="$partial_fails $pkg";
done;
test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}";
exit 1" failed with exit status 1
2026-03-17 02:26.38: Job failed: Failed: Build failed
2026-03-17 02:26.38: Log analysis:
2026-03-17 02:26.38: >>>
[ERROR] The compilation of serde_derive.0.0.2 failed at "dune build -p serde_derive -j 71 @install @runtest".
(score = 20)
2026-03-17 02:26.38: >>>
[ERROR] The compilation of serde_derive.0.0.2 failed at "dune build -p serde_derive -j 71 @install @runtest".
(score = 20)
2026-03-17 02:26.38: The compilation of serde_derive.0.0.2 failed at "dune build -p serde_derive -j 71 @install @runtest".