- github
- ocaml
- opam-repository
- 618587
- compilers,4.14,ppxlib.0.38.0,revdeps,emile.0.3
(not at the head of any monitored branch or PR)
2026-03-20 10:16.52: New job: test emile.0.3 with ppxlib.0.38.0, using opam dev
from https://github.com/ocaml/opam-repository.git#refs/pull/29563/head (6185871ccd68c72dd8f6902c863f0554508a6764)
on debian-13-ocaml-4.14/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/29563/head" && git reset --hard 6185871c
git fetch origin master
git merge --no-edit 9f189ca4f94fbb5f0045820bf3c4ffafb21145ef
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-13-ocaml-4.14@sha256:37323dc71cac48a3e4688e16b45b95486f3cc440c55ab3f83114e8973362f41e
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 ppxlib.0.38.0 0.38.0
RUN opam reinstall ppxlib.0.38.0; \
res=$?; \
test "$res" != 31 && exit "$res"; \
export OPAMCLI=2.0; \
build_dir=$(opam var prefix)/.opam-switch/build; \
failed=$(ls "$build_dir"); \
partial_fails=""; \
for pkg in $failed; do \
if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then \
echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
fi; \
test "$pkg" != 'ppxlib.0.38.0' && partial_fails="$partial_fails $pkg"; \
done; \
test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
exit 1
RUN opam reinstall emile.0.3; \
res=$?; \
test "$res" != 31 && exit "$res"; \
export OPAMCLI=2.0; \
build_dir=$(opam var prefix)/.opam-switch/build; \
failed=$(ls "$build_dir"); \
partial_fails=""; \
for pkg in $failed; do \
if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then \
echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
fi; \
test "$pkg" != 'emile.0.3' && 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 emile.0.3) || true
RUN opam reinstall --with-test --verbose emile.0.3; \
res=$?; \
test "$res" != 31 && exit "$res"; \
export OPAMCLI=2.0; \
build_dir=$(opam var prefix)/.opam-switch/build; \
failed=$(ls "$build_dir"); \
partial_fails=""; \
for pkg in $failed; do \
if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then \
echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
fi; \
test "$pkg" != 'emile.0.3' && 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-20 10:16.52: Using cache hint "ocaml/opam:debian-13-ocaml-4.14@sha256:37323dc71cac48a3e4688e16b45b95486f3cc440c55ab3f83114e8973362f41e-ppxlib.0.38.0-emile.0.3-6185871ccd68c72dd8f6902c863f0554508a6764"
2026-03-20 10:16.52: Using OBuilder spec:
((from ocaml/opam:debian-13-ocaml-4.14@sha256:37323dc71cac48a3e4688e16b45b95486f3cc440c55ab3f83114e8973362f41e)
(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 ppxlib.0.38.0 0.38.0"))
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall ppxlib.0.38.0;\
\n res=$?;\
\n test \"$res\" != 31 && exit \"$res\";\
\n export OPAMCLI=2.0;\
\n build_dir=$(opam var prefix)/.opam-switch/build;\
\n failed=$(ls \"$build_dir\");\
\n partial_fails=\"\";\
\n for pkg in $failed; do\
\n if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
\n echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
\n fi;\
\n test \"$pkg\" != 'ppxlib.0.38.0' && partial_fails=\"$partial_fails $pkg\";\
\n done;\
\n test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
\n exit 1"))
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall emile.0.3;\
\n res=$?;\
\n test \"$res\" != 31 && exit \"$res\";\
\n export OPAMCLI=2.0;\
\n build_dir=$(opam var prefix)/.opam-switch/build;\
\n failed=$(ls \"$build_dir\");\
\n partial_fails=\"\";\
\n for pkg in $failed; do\
\n if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
\n echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
\n fi;\
\n test \"$pkg\" != 'emile.0.3' && partial_fails=\"$partial_fails $pkg\";\
\n done;\
\n test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
\n exit 1"))
(run (network host)
(shell "(opam reinstall --with-test emile.0.3) || true"))
(run (shell "opam reinstall --with-test --verbose emile.0.3;\
\n res=$?;\
\n test \"$res\" != 31 && exit \"$res\";\
\n export OPAMCLI=2.0;\
\n build_dir=$(opam var prefix)/.opam-switch/build;\
\n failed=$(ls \"$build_dir\");\
\n partial_fails=\"\";\
\n for pkg in $failed; do\
\n if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
\n echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
\n fi;\
\n test \"$pkg\" != 'emile.0.3' && 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-20 10:16.52: Waiting for resource in pool OCluster
2026-03-20 11:10.14: Waiting for worker…
2026-03-20 11:12.58: Got resource from pool OCluster
Building on toxis.caelum.ci.dev
All commits already cached
HEAD is now at 9f189ca4f9 Merge pull request #29562 from shonfeder/release-dune-3.22.0
Updating 9f189ca4f9..6185871ccd
Fast-forward
Auto packing the repository in the background for optimum performance.
See "git help gc" for manual housekeeping.
warning: The last gc run reported the following. Please correct the root cause
and remove .git/gc.log
Automatic cleanup will not be performed until the file is removed.
warning: There are too many unreachable loose objects; run 'git prune' to remove them.
packages/ppxlib-tools/ppxlib-tools.0.38.0/opam | 47 +++++++++++++++++++
packages/ppxlib/ppxlib.0.38.0/opam | 64 ++++++++++++++++++++++++++
2 files changed, 111 insertions(+)
create mode 100644 packages/ppxlib-tools/ppxlib-tools.0.38.0/opam
create mode 100644 packages/ppxlib/ppxlib.0.38.0/opam
(from ocaml/opam:debian-13-ocaml-4.14@sha256:37323dc71cac48a3e4688e16b45b95486f3cc440c55ab3f83114e8973362f41e)
2026-03-20 11:13.00 ---> using "32cd5b5baf995c02200cf270da597dbb25becd220af2c200c00b8b241a742195" 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-20 11:13.00 ---> using "f3ed7bdbef828c9c0b079b10505c5f05c3c9adcca11ce5bf2dac2a4183e099d8" 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-20 11:13.00 ---> using "5bf6adb7b45bb7e0c215b8f509c71a8dae73a9a2060efcc27df9d4ef6c6d3350" 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 4.14
# invariant ["ocaml-base-compiler" {= "4.14.2"}]
# compiler-packages ocaml-base-compiler.4.14.2, ocaml-options-vanilla.1
# ocaml:native true
# ocaml:native-tools true
# ocaml:native-dynlink true
# ocaml:stubsdir /home/opam/.opam/4.14/lib/ocaml/stublibs:/home/opam/.opam/4.14/lib/ocaml
# ocaml:preinstalled false
# ocaml:compiler 4.14.2
2026-03-20 11:13.00 ---> using "0546f18fa5979677ee22eb9f2fcf19ab371564e845d317c2c70e41dd97dc22dd" 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-20 11:13.00 ---> using "0a7188cbe95f4fe0ff26694977eb8794c975bdb534078da98a06d6c7373289b4" from cache
/home/opam: (copy (src .) (dst opam-repository/))
2026-03-20 11:13.01 ---> using "65f3cde022195404236e2872f9138421a9d94b4fb83edf4557bf50f839b1a1cb" from cache
/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2026-03-20 11:13.01 ---> using "4801a3cf903575d080a6fd0f2f9aa5180f424ea419b0e4449a3402d8e3e9c6b2" 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 [116 kB]
- Fetched 10.0 MB in 2s (6042 kB/s)
- Reading package lists...
-
2026-03-20 11:13.01 ---> using "3d6b7cfa95d93f91065e93aad5a6767610a7e6104ce449c1f9febbf3da6436c3" from cache
/home/opam: (run (shell "opam pin add -k version -yn ppxlib.0.38.0 0.38.0"))
ppxlib is now pinned to version 0.38.0
2026-03-20 11:13.01 ---> using "0210aae052ea6c63ed6e00734da52a1f07423ab074b840b70199e267e5040b28" from cache
/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall ppxlib.0.38.0;\
\n res=$?;\
\n test \"$res\" != 31 && exit \"$res\";\
\n export OPAMCLI=2.0;\
\n build_dir=$(opam var prefix)/.opam-switch/build;\
\n failed=$(ls \"$build_dir\");\
\n partial_fails=\"\";\
\n for pkg in $failed; do\
\n if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
\n echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
\n fi;\
\n test \"$pkg\" != 'ppxlib.0.38.0' && partial_fails=\"$partial_fails $pkg\";\
\n done;\
\n test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
\n exit 1"))
ppxlib.0.38.0 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 6 packages
- install dune 3.22.0 [required by ppxlib]
- install ocaml-compiler-libs v0.12.4 [required by ppxlib]
- install ppx_derivers 1.2.1 [required by ppxlib]
- install ppxlib 0.38.0 (pinned)
- install sexplib0 v0.17.0 [required by ppxlib]
- install stdlib-shims 0.3.0 [required by ppxlib]
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved dune.3.22.0 (cached)
-> retrieved ocaml-compiler-libs.v0.12.4 (cached)
-> retrieved ppx_derivers.1.2.1 (cached)
-> retrieved ppxlib.0.38.0 (cached)
-> retrieved sexplib0.v0.17.0 (cached)
-> retrieved stdlib-shims.0.3.0 (cached)
-> installed dune.3.22.0
-> installed ppx_derivers.1.2.1
-> installed stdlib-shims.0.3.0
-> installed sexplib0.v0.17.0
-> installed ocaml-compiler-libs.v0.12.4
-> installed ppxlib.0.38.0
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-20 11:13.01 ---> using "3a2d0f81da018540a62601cd929eaf6ce021a5b4614452bcb57dddabe5cbf957" from cache
/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam reinstall emile.0.3;\
\n res=$?;\
\n test \"$res\" != 31 && exit \"$res\";\
\n export OPAMCLI=2.0;\
\n build_dir=$(opam var prefix)/.opam-switch/build;\
\n failed=$(ls \"$build_dir\");\
\n partial_fails=\"\";\
\n for pkg in $failed; do\
\n if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
\n echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
\n fi;\
\n test \"$pkg\" != 'emile.0.3' && partial_fails=\"$partial_fails $pkg\";\
\n done;\
\n test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
\n exit 1"))
emile.0.3 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 15 packages
- install angstrom 0.13.0 [required by emile]
- install bigstringaf 0.10.0 [required by angstrom]
- install csexp 1.5.2 [required by dune-configurator]
- install domain-name 0.5.0 [required by ipaddr]
- install dune-configurator 3.22.0 [required by bigstringaf]
- install emile 0.3
- install fmt 0.11.0 [required by emile]
- install ipaddr 5.6.2 [required by emile]
- install jbuilder 1.0+beta20.2 (deprecated) [required by emile]
- install macaddr 5.6.2 [required by ipaddr]
- install ocamlbuild 0.16.1 [required by fmt, uutf]
- install ocamlfind 1.9.8 [required by fmt, uutf]
- install result 1.5 [required by angstrom]
- install topkg 1.1.1 [required by fmt, uutf]
- install uutf 1.0.4 [required by emile]
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved angstrom.0.13.0 (cached)
-> retrieved bigstringaf.0.10.0 (cached)
-> retrieved csexp.1.5.2 (cached)
-> retrieved domain-name.0.5.0 (cached)
-> installed csexp.1.5.2
-> installed domain-name.0.5.0
-> retrieved dune-configurator.3.22.0 (cached)
-> retrieved emile.0.3 (cached)
-> retrieved fmt.0.11.0 (cached)
-> retrieved ipaddr.5.6.2, macaddr.5.6.2 (cached)
-> retrieved jbuilder.1.0+beta20.2 (cached)
-> installed macaddr.5.6.2
-> retrieved ocamlbuild.0.16.1 (cached)
-> retrieved ocamlfind.1.9.8 (cached)
-> retrieved result.1.5 (cached)
-> retrieved topkg.1.1.1 (cached)
-> retrieved uutf.1.0.4 (cached)
-> installed result.1.5
-> installed ipaddr.5.6.2
-> installed dune-configurator.3.22.0
-> installed bigstringaf.0.10.0
-> installed angstrom.0.13.0
-> installed ocamlfind.1.9.8
-> installed ocamlbuild.0.16.1
-> installed jbuilder.1.0+beta20.2
-> installed topkg.1.1.1
-> installed uutf.1.0.4
-> installed fmt.0.11.0
-> installed emile.0.3
Done.
<><> jbuilder.1.0+beta20.2 installed successfully <><><><><><><><><><><><><><><>
=> Note: This package is deprecated.
# To update the current shell environment, run: eval $(opam env)
2026-03-20 11:13.31 ---> saved as "c070d92240180058ca11ac4fef36d9e1edd73bc85dfc29b6dba839058445a434"
/home/opam: (run (network host)
(shell "(opam reinstall --with-test emile.0.3) || true"))
The following actions will be performed:
=== recompile 3 packages
- recompile emile 0.3
- recompile fmt 0.11.0 [uses cmdliner]
- recompile uutf 1.0.4 [uses cmdliner]
=== install 5 packages
- install alcotest 1.9.1 [required by emile]
- install astring 0.8.5 [required by alcotest]
- install cmdliner 2.1.0 [required by alcotest]
- install ocaml-syntax-shims 1.0.0 [required by alcotest]
- install re 1.14.0 [required by alcotest]
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved alcotest.1.9.1 (https://opam.ocaml.org/cache)
-> retrieved astring.0.8.5 (https://opam.ocaml.org/cache)
-> retrieved cmdliner.2.1.0 (https://opam.ocaml.org/cache)
-> retrieved emile.0.3 (https://opam.ocaml.org/cache)
-> retrieved fmt.0.11.0 (https://opam.ocaml.org/cache)
-> retrieved ocaml-syntax-shims.1.0.0 (https://opam.ocaml.org/cache)
-> retrieved re.1.14.0 (https://opam.ocaml.org/cache)
-> retrieved uutf.1.0.4 (https://opam.ocaml.org/cache)
-> installed ocaml-syntax-shims.1.0.0
-> installed astring.0.8.5
-> installed re.1.14.0
-> removed emile.0.3
-> removed fmt.0.11.0
-> removed uutf.1.0.4
-> installed cmdliner.2.1.0
-> installed uutf.1.0.4
-> installed fmt.0.11.0
-> installed alcotest.1.9.1
-> installed emile.0.3
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-20 11:13.58 ---> saved as "e75ca4e2f0de5580e3ed1e8557d9db4b19251650e8402d14f538c40092afd4c8"
/home/opam: (run (shell "opam reinstall --with-test --verbose emile.0.3;\
\n res=$?;\
\n test \"$res\" != 31 && exit \"$res\";\
\n export OPAMCLI=2.0;\
\n build_dir=$(opam var prefix)/.opam-switch/build;\
\n failed=$(ls \"$build_dir\");\
\n partial_fails=\"\";\
\n for pkg in $failed; do\
\n if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
\n echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
\n fi;\
\n test \"$pkg\" != 'emile.0.3' && partial_fails=\"$partial_fails $pkg\";\
\n done;\
\n test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
\n exit 1"))
The following actions will be performed:
=== recompile 1 package
- recompile emile 0.3
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Processing 1/4: [emile.0.3: extract]
-> retrieved emile.0.3 (cached)
Processing 2/4: [emile: jbuilder build]
+ /home/opam/.opam/opam-init/hooks/sandbox.sh "build" "jbuilder" "build" "-p" "emile" "-j" "71" (CWD=/home/opam/.opam/4.14/.opam-switch/build/emile.0.3)
- ocamlopt lib/.Emile.objs/emile.{cmx,o}
- File "lib/emile.ml", line 145, characters 12-30:
- 145 | | a, b -> Pervasives.compare a b
- ^^^^^^^^^^^^^^^^^^
- Alert deprecated: module Stdlib.Pervasives
- Use Stdlib instead.
-
- If you need to stay compatible with OCaml < 4.07, you can use the
- stdlib-shims library: https://github.com/ocaml/stdlib-shims
- ocamlc lib/.Emile.objs/emile.{cmo,cmt}
- File "lib/emile.ml", line 145, characters 12-30:
- 145 | | a, b -> Pervasives.compare a b
- ^^^^^^^^^^^^^^^^^^
- Alert deprecated: module Stdlib.Pervasives
- Use Stdlib instead.
-
- If you need to stay compatible with OCaml < 4.07, you can use the
- stdlib-shims library: https://github.com/ocaml/stdlib-shims
Processing 2/4: [emile: jbuilder runtest]
+ /home/opam/.opam/opam-init/hooks/sandbox.sh "build" "jbuilder" "runtest" "-p" "emile" "-j" "71" (CWD=/home/opam/.opam/4.14/.opam-switch/build/emile.0.3)
- ocamldep test/test.ml.d
- File "test/test.ml", line 32, characters 17-19:
- 32 | ; "Pete(A nice \) chap) <pete(his account)@silly.test(his host)>"
- ^^
- Warning 14 [illegal-backslash]: illegal backslash escape in string.
- File "test/test.ml", line 43, characters 7-9:
- 43 | ; "\"\a\"@x.test"
- ^^
- Warning 14 [illegal-backslash]: illegal backslash escape in string.
- File "test/test.ml", line 211, characters 9-11:
- 211 | ; "mary\@jdoe@one.test"
- ^^
- Warning 14 [illegal-backslash]: illegal backslash escape in string.
- File "test/test.ml", line 291, characters 9-11:
- 291 | ; "()[]\;:,><@iana.
- ^^
- Warning 14 [illegal-backslash]: illegal backslash escape in string.
- ocamlc test/.test.eobjs/test.{cmi,cmo,cmt}
- File "test/test.ml", line 5, characters 50-58:
- 5 | | Error (`Invalid (err, path)) -> invalid_arg (Fmt.strf "%a: %s" Fmt.(list ~sep:(const string " > ") string) path err)
- ^^^^^^^^
- Alert deprecated: Fmt.strf
- use Fmt.str instead.
- File "test/test.ml", line 14, characters 14-22:
- 14 | Some (Fmt.strf "Expected error: %a" Fmt.(Dump.list Emile.pp_set) t)
- ^^^^^^^^
- Alert deprecated: Fmt.strf
- use Fmt.str instead.
- ocamlopt test/.test.eobjs/test.{cmx,o}
- File "test/test.ml", line 5, characters 50-58:
- 5 | | Error (`Invalid (err, path)) -> invalid_arg (Fmt.strf "%a: %s" Fmt.(list ~sep:(const string " > ") string) path err)
- ^^^^^^^^
- Alert deprecated: Fmt.strf
- use Fmt.str instead.
- File "test/test.ml", line 14, characters 14-22:
- 14 | Some (Fmt.strf "Expected error: %a" Fmt.(Dump.list Emile.pp_set) t)
- ^^^^^^^^
- Alert deprecated: Fmt.strf
- use Fmt.str instead.
- test alias test/runtest
- Testing `Address test'.
- This run has ID `K2T4J4IO'.
-
- [OK] good 0 "Mary Smith <mary@example.net>".
- [OK] good 1 "Mary Smith <mary@x.test>, jdoe@example.org...
- [OK] good 2 "A Group:Ed Jones <c@a.test>,joe@where.test...
- [OK] good 3 "Undisclosed recipients:;".
- [OK] good 4 "\"Mary Smith: Personal Account\" <smith@ho...
- [OK] good 5 "John Doe <jdoe@machine.example>".
- [OK] good 6 "Pete(A nice \\) chap) <pete(his account)@s...
- [OK] good 7 "A Group(Some people)\r\n :Chris Jones <...
- [OK] good 8 "(Empty list)(start)Hidden recipients :(no...
- [OK] good 9 "Mary Smith <@node.test:mary@example.net>, ...
- [OK] good 10 "Joe Q. Public <john.q.public@example.com>".
- [OK] good 11 "John Doe <jdoe@machine(comment). example>".
- [OK] good 12 "Mary Smith\r\n \r\n <mary@example.net>".
- [OK] good 13 "<boss@nil.test>, \"Giant; \\\"Big\\\" Box\...
- [OK] good 14 "!#$%&`*+/=?^`{|}~@iana.org".
- [OK] good 15 "(\007;)mary@example.net".
- [OK] good 16 "\"\\\n\"@x.test".
- [OK] good 17 "\"\\a\"@x.test".
- [OK] good 18 "\"\007\"@x.test".
- [OK] good 19 "\"\\\007\"@x.test".
- [OK] good 20 "pete@[255.255.255.255]".
- [OK] good 21 "\"mary\"@example.net".
- [OK] good 22 "\"\\\"\"@example.net".
- [OK] good 23 "\"john\".\"public\"@example.com".
- [OK] good 24 "\"mary smith\"@home.example".
- [OK] good 25 "\"mary\".smith@home.example".
- [OK] good 26 "\"mary\\\000\"@home.example".
- [OK] good 27 " richard @home.example".
- [OK] good 28 "richar@ home .example".
- [OK] good 29 "mary . smith@y.test".
- [OK] good 30 "\r\n jdoe@example.net".
- [OK] good 31 " \r\n \r\n jdoe@example.net".
- [OK] good 32 "(comment)smith@home.example".
- [OK] good 33 "(comment(comment))smith@home.example".
- [OK] good 34 "smith@(comment)home.example".
- [OK] good 35 "smith@(comment)[255.255.255.255]".
- [OK] good 36 "robert@xn--hxajbheg2az3al.xn--jxalpdlp".
- [OK] good 37 "xn--robert@x.test".
- [OK] good 38 "stephane+blog@bortzmeyer.org".
- [OK] good 39 "{tropdur}@example.org".
- [OK] good 40 "c&a@hotmail.com".
- [OK] good 41 "directeur@arts-premiers.museum".
- [OK] good 42 "\"Stephane[Bortzmeyer]\"@laposte.net".
- [OK] good 43 "first.last@iana.org".
- [OK] good 44 "123456789012345678901234567890123456789012...
- [OK] good 45 "\"first\\\"last\"@iana.org".
- [OK] good 46 "\"first@last\"@iana.org".
- [OK] good 47 "\"first\\last\"@iana.org".
- [OK] good 48 "first.last@[12.34.56.78]".
- [OK] good 49 "first.last@[IPv6:::12.34.56.78]".
- [OK] good 50 "first.last@[IPv6:1111:2222:3333::4444:12.3...
- [OK] good 51 "first.last@[IPv6:1111:2222:3333:4444:5555:...
- [OK] good 52 "first.last@[IPv6:::1111:2222:3333:4444:555...
- [OK] good 53 "first.last@[IPv6:1111:2222:3333::4444:5555...
- [OK] good 54 "first.last@[IPv6:1111:2222:3333:4444:5555:...
- [OK] good 55 "first.last@[IPv6:1111:2222:3333:4444:5555:...
- [OK] good 56 "first.last@x234567890123456789012345678901...
- [OK] good 57 "first.last@3com.com".
- [OK] good 58 "first.last@123.iana.org".
- [OK] good 59 "first.last@[IPv6:1111:2222:3333::4444:5555...
- [OK] good 60 "first.last@[IPv6:1111:2222:3333::4444:5555...
- [OK] good 61 "first.last@example.123".
- [OK] good 62 "first.last@com".
- [OK] good 63 "\"Abc\\@def\"@iana.org".
- [OK] good 64 "\"Fred\\ Bloggs\"@iana.org".
- [OK] good 65 "\"Joe.\\Blow\"@iana.org".
- [OK] good 66 "\"Abc@def\"@iana.org".
- [OK] good 67 "\"Fred Bloggs\"@iana.org".
- [OK] good 68 "user+mailbox@iana.org".
- [OK] good 69 "customer/department=shipping@iana.org".
- [OK] good 70 "$A12345@iana.org".
- [OK] good 71 "!def!xyz%abc@iana.org".
- [OK] good 72 "_somename@iana.org".
- [OK] good 73 "dclo@us.ibm.com".
- [OK] good 74 "peter.piper@iana.org".
- [OK] good 75 "\"Doug \\\"Ace\\\" L.\"@iana.org".
- [OK] good 76 "test@iana.org".
- [OK] good 77 "TEST@iana.org".
- [OK] good 78 "1234567890@iana.org".
- [OK] good 79 "test+test@iana.org".
- [OK] good 80 "test-test@iana.org".
- [OK] good 81 "t*est@iana.org".
- [OK] good 82 "+1~1+@iana.org".
- [OK] good 83 "{_test_}@iana.org".
- [OK] good 84 "\"[[ test ]]\"@iana.org".
- [OK] good 85 "test.test@iana.org".
- [OK] good 86 "\"test.test\"@iana.org".
- [OK] good 87 "test.\"test\"@iana.org".
- [OK] good 88 "\"test@test\"@iana.org".
- [OK] good 89 "test@123.123.123.x123".
- [OK] good 90 "test@123.123.123.123".
- [OK] good 91 "test@[123.123.123.123]".
- [OK] good 92 "test@example.iana.org".
- [OK] good 93 "test@example.example.iana.org".
- [OK] good 94 "\"test\\test\"@iana.org".
- [OK] good 95 "test@example".
- [OK] good 96 "\"test\\blah\"@iana.org".
- [OK] good 97 "\"test\\\"blah\"@iana.org".
- [OK] good 98 "customer/department@iana.org".
- [OK] good 99 "_Yosemite.Sam@iana.org".
- [OK] good 100 "~@iana.org".
- [OK] good 101 "\"Austin@Powers\"@iana.org".
- [OK] good 102 "Ima.Fool@iana.org".
- [OK] good 103 "\"Ima.Fool\"@iana.org".
- [OK] good 104 "\"Ima Fool\"@iana.org".
- [OK] good 105 "\"first\".\"last\"@iana.org".
- [OK] good 106 "\"first\".middle.\"last\"@iana.org".
- [OK] good 107 "\"first\".last@iana.org".
- [OK] good 108 "first.\"last\"@iana.org".
- [OK] good 109 "\"first\".\"middle\".\"last\"@iana.org".
- [OK] good 110 "\"first.middle\".\"last\"@iana.org".
- [OK] good 111 "\"first.middle.last\"@iana.org".
- [OK] good 112 "\"first..last\"@iana.org".
- [OK] good 113 "\"first\\\\\\\"last\"@iana.org".
- [OK] good 114 "first.\"mid\\dle\".\"last\"@iana.org".
- [OK] good 115 "\"test blah\"@iana.org".
- [OK] good 116 "(foo)cal(bar)@(baz)iamcal.com(quux)".
- [OK] good 117 "cal@iamcal(woo).(yay)com".
- [OK] good 118 "cal(woo(yay)hoopla)@iamcal.com".
- [OK] good 119 "cal(foo\\@bar)@iamcal.com".
- [OK] good 120 "cal(foo\\)bar)@iamcal.com".
- [OK] good 121 "first().last@iana.org".
- [OK] good 122 "pete(his account)@silly.test(his host)".
- [OK] good 123 "c@(Chris's host.)public.example".
- [OK] good 124 "jdoe@machine(comment). example".
- [OK] good 125 "1234 @ local(blah) .machine .example".
- [OK] good 126 "first(abc.def).last@iana.org".
- [OK] good 127 "first(a\"bc.def).last@iana.org".
- [OK] good 128 "first.(\")middle.last(\")@iana.org".
- [OK] good 129 "first(abc\\(def)@iana.org".
- [OK] good 130 "first.last@x(12345678901234567890123456789...
- [OK] good 131 "a(a(b(c)d(e(f))g)h(i)j)@iana.org".
- [OK] good 132 "name.lastname@domain.com".
- [OK] good 133 "a@b".
- [OK] good 134 "a@bar.com".
- [OK] good 135 "aaa@[123.123.123.123]".
- [OK] good 136 "a@bar".
- [OK] good 137 "a-b@bar.com".
- [OK] good 138 "+@b.c".
- [OK] good 139 "+@b.com".
- [OK] good 140 "a@b.co-foo.uk".
- [OK] good 141 "\"hello my name is\"@stutter.com".
- [OK] good 142 "\"Test \\\"Fail\\\" Ing\"@iana.org".
- [OK] good 143 "valid@about.museum".
- [OK] good 144 "shaitan@my-domain.thisisminekthx".
- [OK] good 145 "foobar@192.168.0.1".
- [OK] good 146 "\"Joe\\Blow\"@iana.org".
- [OK] good 147 "HM2Kinsists@(that comments are allowed)thi...
- [OK] good 148 "user%uucp!path@berkeley.edu".
- [OK] good 149 "first.last @iana.org".
- [OK] good 150 "cdburgess+!#$%&'*-/=?+_{}|~test@gmail.com".
- [OK] good 151 "first.last@[IPv6:a1:a2:a3:a4:b1:b2:b3::]".
- [OK] good 152 "first.last@[IPv6:::]".
- [OK] good 153 "first.last@[IPv6:::b4]".
- [OK] good 154 "first.last@[IPv6:::b3:b4]".
- [OK] good 155 "first.last@[IPv6:a1::b4]".
- [OK] good 156 "first.last@[IPv6:a1::]".
- [OK] good 157 "first.last@[IPv6:a1:a2::]".
- [OK] good 158 "first.last@[IPv6:0123:4567:89ab:cdef::]".
- [OK] good 159 "first.last@[IPv6:0123:4567:89ab:CDEF::]".
- [OK] good 160 "first.last@[IPv6:::a3:a4:b1:ffff:11.22.33....
- [OK] good 161 "first.last@[IPv6:a1:a2:a3:a4::11.22.33.44]".
- [OK] good 162 "first.last@[IPv6:a1:a2:a3:a4:b1::11.22.33....
- [OK] good 163 "first.last@[IPv6:a1::11.22.33.44]".
- [OK] good 164 "first.last@[IPv6:a1:a2::11.22.33.44]".
- [OK] good 165 "first.last@[IPv6:0123:4567:89ab:cdef::11.2...
- [OK] good 166 "first.last@[IPv6:0123:4567:89ab:CDEF::11.2...
- [OK] good 167 "first.last@[IPv6:a1::b2:11.22.33.44]".
- [OK] good 168 "first.last@[IPv6:::a2:a3:a4:b1:b2:b3:b4]".
- [OK] good 169 "first.last@[IPv6:::a2:a3:a4:b1:ffff:11.22....
- [OK] good 170 "test@test.com".
- [OK] good 171 "test@xn--example.com".
- [OK] good 172 "test@example.com".
- [OK] bad 0 "".
- [OK] bad 1 "mary".
- [OK] bad 2 "@".
- [OK] bad 3 "mary@".
- [OK] bad 4 "@io".
- [OK] bad 5 "@example.net".
- [OK] bad 6 ".mary@example.net".
- [OK] bad 7 "jdoe.@example.net".
- [OK] bad 8 "pete..silly.test".
- [OK] bad 9 "sm_i-th.com".
- [OK] bad 10 "mary\\@jdoe@one.test".
- [OK] bad 11 "jdoe@.one.test".
- [OK] bad 12 "jdon@one.test.".
- [OK] bad 13 "boss@nil..test".
- [OK] bad 14 "\"\"\"@example.net".
- [OK] bad 15 "\"\\\"@example.net".
- [OK] bad 16 "jdoe\"@machine.example".
- [OK] bad 17 "\"jdoe@machine.example".
- [OK] bad 18 "\"john\"public@example.com".
- [OK] bad 19 "john\"public\"@example.com".
- [OK] bad 20 "\"john\"\"public\"@example.com".
- [OK] bad 21 "\"mary\000\"@home.example".
- [OK] bad 22 "pete@a[255.255.255.255]".
- [OK] bad 23 "((comment)smith@home.example".
- [OK] bad 24 "smith(coment)doe@home.example".
- [OK] bad 25 "robert@henry.com\r".
- [OK] bad 26 "(smith@home.example".
- [OK] bad 27 "robert@[1.2.3.4".
- [OK] bad 28 "\"john\\\"@example.com".
- [OK] bad 29 "(comment\\)smith@home.example".
- [OK] bad 30 "smith@home.example(comment\\)".
- [OK] bad 31 "smith@home.example(comment\\".
- [OK] bad 32 "robert@[RFC5322-[domain-literal\\]".
- [OK] bad 33 "robert@[RFC5322-[domain-literal]".
- [OK] bad 34 "robert@[RFC5322-[domain-literal\\".
- [OK] bad 35 "marx@capitalism.ru\r".
- [OK] bad 36 "\rmarx@capitalism.ru".
- [OK] bad 37 "\"\rmarx\"@capitalism.ru".
- [OK] bad 38 "(\r)marx@capitalism.ru".
- [OK] bad 39 "marx@capitalism.ru(\r)".
- [OK] bad 40 "smith@communism.uk\n".
- [OK] bad 41 "\nsmith@communism.uk".
- [OK] bad 42 "\"\nsmith\"@communism.uk".
- [OK] bad 43 "(\n)smith@communism.uk".
- [OK] bad 44 "smith@communism.uk(\n)".
- [OK] bad 45 "first.last@sub.do,com".
- [OK] bad 46 "first\\@last@iana.org".
- [OK] bad 47 "first.last".
- [OK] bad 48 ".first.last@iana.org".
- [OK] bad 49 "first.last.@iana.org".
- [OK] bad 50 "first..last@iana.org".
- [OK] bad 51 "\"first\"last\"@iana.org".
- [OK] bad 52 "\"\"\"@iana.org".
- [OK] bad 53 "\"\\\"@iana.org".
- [OK] bad 54 "\"\"@iana.org".
- [OK] bad 55 "first\\@last@iana.org".
- [OK] bad 56 "first.last@".
- [OK] bad 57 "first.last@[.12.34.56.78]".
- [OK] bad 58 "first.last@[12.34.56.789]".
- [OK] bad 59 "first.last@[::12.34.56.78]".
- [OK] bad 60 "first.last@[IPv5:::12.34.56.78]".
- [OK] bad 61 "first.last@[IPv6:1111:2222:3333:4444:5555:...
- [OK] bad 62 "first.last@[IPv6:1111:2222:3333:4444:5555:...
- [OK] bad 63 "first.last@[IPv6:1111:2222:3333:4444:5555:...
- [OK] bad 64 "first.last@[IPv6:1111:2222:3333:4444:5555:...
- [OK] bad 65 "first.last@[IPv6:1111:2222::3333::4444:555...
- [OK] bad 66 "first.last@[IPv6:1111:2222:333x::4444:5555]".
- [OK] bad 67 "first.last@[IPv6:1111:2222:33333::4444:555...
- [OK] bad 68 "abc\\@def@iana.org".
- [OK] bad 69 "abc\\@iana.org".
- [OK] bad 70 "@iana.org".
- [OK] bad 71 "doug@".
- [OK] bad 72 "\"qu@iana.org".
- [OK] bad 73 "ote\"@iana.org".
- [OK] bad 74 ".dot@iana.org".
- [OK] bad 75 "dot.@iana.org".
- [OK] bad 76 "two..dot@iana.org".
- [OK] bad 77 "\"Doug \"Ace\" L.\"@iana.org".
- [OK] bad 78 "Doug\\ \\\"Ace\\\"\\ L\\.@iana.org".
- [OK] bad 79 "hello world@iana.org".
- [OK] bad 80 "gatsby@f.sc.ot.t.f.i.tzg.era.l.d.".
- [OK] bad 81 "test.iana.org".
- [OK] bad 82 "test.@iana.org".
- [OK] bad 83 "test..test@iana.org".
- [OK] bad 84 ".test@iana.org".
- [OK] bad 85 "test@test@iana.org".
- [OK] bad 86 "test@@iana.org".
- [OK] bad 87 "-- test --@iana.org".
- [OK] bad 88 "[test]@iana.org".
- [OK] bad 89 "\"test\"test\"@iana.org".
- [OK] bad 90 "()[]\\;:,><@iana.org".
- [OK] bad 91 "test@.".
- [OK] bad 92 "test@example.".
- [OK] bad 93 "test@.org".
- [OK] bad 94 "test@[123.123.123.123".
- [OK] bad 95 "test@123.123.123.123]".
- [OK] bad 96 "NotAnEmail".
- [OK] bad 97 "NotAnEmail".
- [OK] bad 98 "\"test\"blah\"@iana.org".
- [OK] bad 99 ".wooly@iana.org".
- [OK] bad 100 "wo..oly@iana.org".
- [OK] bad 101 "pootietang.@iana.org".
- [OK] bad 102 ".@iana.org".
- [OK] bad 103 "Ima Fool@iana.org".
- [OK] bad 104 "phil.h\\@\\@ck@haacked.com".
- [OK] bad 105 "first\\last@iana.org".
- [OK] bad 106 "Abc\\@def@iana.org".
- [OK] bad 107 "Fred\\ Bloggs@iana.org".
- [OK] bad 108 "Joe.\\Blow@iana.org".
- [OK] bad 109 "first.last@[IPv6:1111:2222:3333:4444:5555:...
- [OK] bad 110 "{^c\\@**Dog^}@cartoon.com".
- [OK] bad 111 "cal(foo(bar)@iamcal.com".
- [OK] bad 112 "cal(foo\\)@iamcal.com".
- [OK] bad 113 "cal(foo)bar)@iamcal.com".
- [OK] bad 114 "first(middle)last@iana.org".
- [OK] bad 115 "a(a(b(c)d(e(f))g)(h(i)j)@iana.org".
- [OK] bad 116 ".@".
- [OK] bad 117 "@bar.com".
- [OK] bad 118 "@@bar.com".
- [OK] bad 119 "aaa.com".
- [OK] bad 120 "aaa@.com".
- [OK] bad 121 "aaa@.com".
- [OK] bad 122 "aaa@.123".
- [OK] bad 123 "aaa@[123.123.123.123]a".
- [OK] bad 124 "aaa@[123.123.123.333]".
- [OK] bad 125 "a@bar.com.".
- [OK] bad 126 "-@..com".
- [OK] bad 127 "-@a..com".
- [OK] bad 128 "test@...........com".
- [OK] bad 129 "\"\000 \"@char.com".
- [OK] bad 130 "\000@char.com".
- [OK] bad 131 "first.last@[IPv6::]".
- [OK] bad 132 "first.last@[IPv6::::]".
- [OK] bad 133 "first.last@[IPv6::b4]".
- [OK] bad 134 "first.last@[IPv6::::b4]".
- [OK] bad 135 "first.last@[IPv6::b3:b4]".
- [OK] bad 136 "first.last@[IPv6::::b3:b4]".
- [OK] bad 137 "first.last@[IPv6:a1:::b4]".
- [OK] bad 138 "first.last@[IPv6:a1:]".
- [OK] bad 139 "first.last@[IPv6:a1:::]".
- [OK] bad 140 "first.last@[IPv6:a1:a2:]".
- [OK] bad 141 "first.last@[IPv6:a1:a2:::]".
- [OK] bad 142 "first.last@[IPv6::11.22.33.44]".
- [OK] bad 143 "first.last@[IPv6::::11.22.33.44]".
- [OK] bad 144 "first.last@[IPv6:a1:11.22.33.44]".
- [OK] bad 145 "first.last@[IPv6:a1:::11.22.33.44]".
- [OK] bad 146 "first.last@[IPv6:a1:a2:::11.22.33.44]".
- [OK] bad 147 "first.last@[IPv6:0123:4567:89ab:cdef::11.2...
- [OK] bad 148 "first.last@[IPv6:0123:4567:89ab:CDEFF::11....
- [OK] bad 149 "first.last@[IPv6:a1::a4:b1::b4:11.22.33.44]".
- [OK] bad 150 "first.last@[IPv6:a1::11.22.33]".
- [OK] bad 151 "first.last@[IPv6:a1::11.22.33.44.55]".
- [OK] bad 152 "first.last@[IPv6:a1::b211.22.33.44]".
- [OK] bad 153 "first.last@[IPv6:a1::11.22.33]".
- [OK] bad 154 "first.last@[IPv6:a1::11.22.33.44.55]".
- [OK] bad 155 "first.last@[IPv6:a1::b211.22.33.44]".
- [OK] bad 156 "first.last@[IPv6:a1::b2::11.22.33.44]".
- [OK] bad 157 "first.last@[IPv6:a1::b3:]".
- [OK] bad 158 "first.last@[IPv6::a2::b4]".
- [OK] bad 159 "first.last@[IPv6:a1:a2:a3:a4:b1:b2:b3:]".
- [OK] bad 160 "first.last@[IPv6::a2:a3:a4:b1:b2:b3:b4]".
- [OK] bad 161 "first.last@[IPv6:a1:a2:a3:a4::b1:b2:b3:b4]".
- [OK] bad 162 "=?us-ascii?Q?Chri's_Smith?= =?us-ascii?Q?H...
- [OK] bad 163 "jdoe@[RFC-5322-\\a-domain-literal]".
- [OK] bad 164 "jdoe@[RFC-5322-\\t-domain-literal]".
- [OK] bad 165 "jdoe@[RFC-5322-\\]-domain-literal]".
- [OK] bad 166 "jdoe@[RFC-5322-domain-literal] (comment)".
-
- Full test results in `~/.opam/4.14/.opam-switch/build/emile.0.3/_build/default/test/_build/_tests/Address test'.
- Test Successful in 0.085s. 340 tests run.
-> compiled emile.0.3
-> removed emile.0.3
-> installed emile.0.3
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-20 11:14.06 ---> saved as "613de446260bb5b9165319b6ec89e6d2ebf53909ea62f253dd32b42eb82074af"
Job succeeded
2026-03-20 11:14.15: Job succeeded