2025-05-01 13:48.56: New job: test ocaml/odoc https://github.com/ocaml/odoc.git#refs/pull/1341/head (faee0dcd2d471aaf9bd2991b907e7c7ce1720bce) (linux-s390x:debian-12-4.14_s390x_opam-2.3) Base: ocaml/opam:debian-12-ocaml-4.14@sha256:d2aefa78264607e5c9dd48539baf5160ee4a33efa7e4286f18b2d0f2e549c327 Opam project build To reproduce locally: git clone --recursive "https://github.com/ocaml/odoc.git" && cd "odoc" && git fetch origin "refs/pull/1341/head" && git reset --hard faee0dcd cat > Dockerfile <<'END-OF-DOCKERFILE' FROM ocaml/opam:debian-12-ocaml-4.14@sha256:d2aefa78264607e5c9dd48539baf5160ee4a33efa7e4286f18b2d0f2e549c327 # debian-12-4.14_s390x_opam-2.3 USER 1000:1000 ENV CLICOLOR_FORCE="1" ENV OPAMCOLOR="always" WORKDIR /src RUN sudo ln -f /usr/bin/opam-2.3 /usr/bin/opam RUN opam init --reinit -ni RUN uname -rs && opam exec -- ocaml -version && opam --version WORKDIR /src RUN sudo chown opam /src RUN cd ~/opam-repository && (git cat-file -e 442eddb8a363418dcb02e519972818da08bb7cd4 || git fetch origin master) && git reset -q --hard 442eddb8a363418dcb02e519972818da08bb7cd4 && git log --no-decorate -n1 --oneline && opam update -u COPY --chown=1000:1000 sherlodoc.opam odoc.opam odoc-parser.opam odoc-md.opam odoc-driver.opam odoc-bench.opam ./ RUN opam pin add -yn sherlodoc.dev './' && \ opam pin add -yn odoc.dev './' && \ opam pin add -yn odoc-parser.dev './' && \ opam pin add -yn odoc-md.dev './' && \ opam pin add -yn odoc-driver.dev './' && \ opam pin add -yn odoc-bench.dev './' RUN echo '(lang dune 3.0)' > './dune-project' ENV DEPS="alcotest.1.9.0 astring.0.8.5 b0.0.0.5 base.v0.16.3 base-bigarray.base base-bytes.base base-threads.base base-unix.base base64.3.5.1 base_bigstring.v0.16.0 base_quickcheck.v0.16.0 bigstringaf.0.10.0 bin_prot.v0.16.0 bisect_ppx.2.8.3 bos.0.2.1 brr.0.0.7 camlp-streams.5.0.1 checkseum.0.5.2 cmarkit.0.3.0 cmdliner.1.3.0 conf-bash.1 conf-jq.1 core.v0.16.2 core_kernel.v0.16.0 cppo.1.8.0 crunch.4.0.0 csexp.1.5.2 decompress.1.5.3 dune.3.18.1 dune-configurator.3.18.1 fieldslib.v0.16.0 fmt.0.10.0 fpath.0.7.3 gen.1.1 int_repr.v0.16.0 jane-street-headers.v0.16.0 js_of_ocaml.6.0.1 js_of_ocaml-compiler.6.0.1 js_of_ocaml-toplevel.6.0.1 jst-config.v0.16.0 logs.0.8.0 lwt.5.9.1 mdx.2.5.0 menhir.20240715 menhirCST.20240715 menhirLib.20240715 menhirSdk.20240715 num.1.5-1 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-compiler-libs.v0.12.4 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocplib-endian.1.2 odig.0.0.9 optint.0.3.0 parsexp.v0.16.0 ppx_assert.v0.16.0 ppx_base.v0.16.0 ppx_bench.v0.16.0 ppx_bin_prot.v0.16.0 ppx_blob.0.9.0 ppx_cold.v0.16.0 ppx_compare.v0.16.0 ppx_custom_printf.v0.16.0 ppx_derivers.1.2.1 ppx_disable_unused_warnings.v0.16.0 ppx_enumerate.v0.16.0 ppx_expect.v0.16.1 ppx_fields_conv.v0.16.0 ppx_fixed_literal.v0.16.0 ppx_globalize.v0.16.0 ppx_hash.v0.16.0 ppx_here.v0.16.0 ppx_ignore_instrumentation.v0.16.0 ppx_inline_test.v0.16.1 ppx_jane.v0.16.0 ppx_let.v0.16.0 ppx_log.v0.16.0 ppx_module_timer.v0.16.0 ppx_optcomp.v0.16.0 ppx_optional.v0.16.0 ppx_pipebang.v0.16.0 ppx_sexp_conv.v0.16.0 ppx_sexp_message.v0.16.0 ppx_sexp_value.v0.16.0 ppx_stable.v0.16.0 ppx_stable_witness.v0.16.0 ppx_string.v0.16.0 ppx_tydi.v0.16.0 ppx_typerep_conv.v0.16.0 ppx_variants_conv.v0.16.0 ppxlib.0.35.0 ptime.1.2.0 re.1.12.0 result.1.5 rresult.0.7.0 sedlex.3.4 seq.base sexplib.v0.16.0 sexplib0.v0.16.0 splittable_random.v0.16.0 stdio.v0.16.0 stdlib-shims.0.3.0 time_now.v0.16.0 topkg.1.0.8 typerep.v0.16.0 tyxml.4.6.0 uutf.1.0.4 variantslib.v0.16.0 yojson.2.2.2" ENV CI="true" ENV OCAMLCI="true" RUN opam update --depexts && opam install --cli=2.3 --depext-only -y sherlodoc.dev odoc.dev odoc-parser.dev odoc-md.dev odoc-bench.dev $DEPS RUN opam install $DEPS COPY --chown=1000:1000 . /src RUN opam exec -- dune build --only-packages=sherlodoc,odoc,odoc-parser,odoc-md,odoc-bench @install @check @runtest && rm -rf _build END-OF-DOCKERFILE docker build . END-REPRO-BLOCK 2025-05-01 13:48.56: Using cache hint "ocaml/odoc-ocaml/opam:debian-12-ocaml-4.14@sha256:d2aefa78264607e5c9dd48539baf5160ee4a33efa7e4286f18b2d0f2e549c327-debian-12-4.14_s390x_opam-2.3-b45c028d4999cfa8aa664d0101c64303" 2025-05-01 13:48.56: Using OBuilder spec: ((from ocaml/opam:debian-12-ocaml-4.14@sha256:d2aefa78264607e5c9dd48539baf5160ee4a33efa7e4286f18b2d0f2e549c327) (comment debian-12-4.14_s390x_opam-2.3) (user (uid 1000) (gid 1000)) (env CLICOLOR_FORCE 1) (env OPAMCOLOR always) (workdir /src) (run (shell "sudo ln -f /usr/bin/opam-2.3 /usr/bin/opam")) (run (shell "opam init --reinit -ni")) (run (shell "uname -rs && opam exec -- ocaml -version && opam --version")) (workdir /src) (run (shell "sudo chown opam /src")) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "cd ~/opam-repository && (git cat-file -e 442eddb8a363418dcb02e519972818da08bb7cd4 || git fetch origin master) && git reset -q --hard 442eddb8a363418dcb02e519972818da08bb7cd4 && git log --no-decorate -n1 --oneline && opam update -u")) (copy (src sherlodoc.opam odoc.opam odoc-parser.opam odoc-md.opam odoc-driver.opam odoc-bench.opam) (dst ./)) (run (network host) (shell "opam pin add -yn sherlodoc.dev './' && \ \nopam pin add -yn odoc.dev './' && \ \nopam pin add -yn odoc-parser.dev './' && \ \nopam pin add -yn odoc-md.dev './' && \ \nopam pin add -yn odoc-driver.dev './' && \ \nopam pin add -yn odoc-bench.dev './'")) (run (network host) (shell "echo '(lang dune 3.0)' > './dune-project'")) (env DEPS "alcotest.1.9.0 astring.0.8.5 b0.0.0.5 base.v0.16.3 base-bigarray.base base-bytes.base base-threads.base base-unix.base base64.3.5.1 base_bigstring.v0.16.0 base_quickcheck.v0.16.0 bigstringaf.0.10.0 bin_prot.v0.16.0 bisect_ppx.2.8.3 bos.0.2.1 brr.0.0.7 camlp-streams.5.0.1 checkseum.0.5.2 cmarkit.0.3.0 cmdliner.1.3.0 conf-bash.1 conf-jq.1 core.v0.16.2 core_kernel.v0.16.0 cppo.1.8.0 crunch.4.0.0 csexp.1.5.2 decompress.1.5.3 dune.3.18.1 dune-configurator.3.18.1 fieldslib.v0.16.0 fmt.0.10.0 fpath.0.7.3 gen.1.1 int_repr.v0.16.0 jane-street-headers.v0.16.0 js_of_ocaml.6.0.1 js_of_ocaml-compiler.6.0.1 js_of_ocaml-toplevel.6.0.1 jst-config.v0.16.0 logs.0.8.0 lwt.5.9.1 mdx.2.5.0 menhir.20240715 menhirCST.20240715 menhirLib.20240715 menhirSdk.20240715 num.1.5-1 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-compiler-libs.v0.12.4 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocplib-endian.1.2 odig.0.0.9 optint.0.3.0 parsexp.v0.16.0 ppx_assert.v0.16.0 ppx_base.v0.16.0 ppx_bench.v0.16.0 ppx_bin_prot.v0.16.0 ppx_blob.0.9.0 ppx_cold.v0.16.0 ppx_compare.v0.16.0 ppx_custom_printf.v0.16.0 ppx_derivers.1.2.1 ppx_disable_unused_warnings.v0.16.0 ppx_enumerate.v0.16.0 ppx_expect.v0.16.1 ppx_fields_conv.v0.16.0 ppx_fixed_literal.v0.16.0 ppx_globalize.v0.16.0 ppx_hash.v0.16.0 ppx_here.v0.16.0 ppx_ignore_instrumentation.v0.16.0 ppx_inline_test.v0.16.1 ppx_jane.v0.16.0 ppx_let.v0.16.0 ppx_log.v0.16.0 ppx_module_timer.v0.16.0 ppx_optcomp.v0.16.0 ppx_optional.v0.16.0 ppx_pipebang.v0.16.0 ppx_sexp_conv.v0.16.0 ppx_sexp_message.v0.16.0 ppx_sexp_value.v0.16.0 ppx_stable.v0.16.0 ppx_stable_witness.v0.16.0 ppx_string.v0.16.0 ppx_tydi.v0.16.0 ppx_typerep_conv.v0.16.0 ppx_variants_conv.v0.16.0 ppxlib.0.35.0 ptime.1.2.0 re.1.12.0 result.1.5 rresult.0.7.0 sedlex.3.4 seq.base sexplib.v0.16.0 sexplib0.v0.16.0 splittable_random.v0.16.0 stdio.v0.16.0 stdlib-shims.0.3.0 time_now.v0.16.0 topkg.1.0.8 typerep.v0.16.0 tyxml.4.6.0 uutf.1.0.4 variantslib.v0.16.0 yojson.2.2.2") (env CI true) (env OCAMLCI true) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam update --depexts && opam install --cli=2.3 --depext-only -y sherlodoc.dev odoc.dev odoc-parser.dev odoc-md.dev odoc-bench.dev $DEPS")) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam install $DEPS")) (copy (src .) (dst /src)) (run (shell "opam exec -- dune build --only-packages=sherlodoc,odoc,odoc-parser,odoc-md,odoc-bench @install @check @runtest && rm -rf _build")) ) 2025-05-01 13:48.56: Waiting for resource in pool OCluster 2025-05-01 13:48.56: Waiting for worker… 2025-05-01 13:55.58: Got resource from pool OCluster Building on s390x-worker-01.marist.ci.dev Updating files: 0% (6/1709) Updating files: 1% (18/1709) Updating files: 2% (35/1709) Updating files: 3% (52/1709) Updating files: 4% (69/1709) Updating files: 5% (86/1709) Updating files: 5% (96/1709) Updating files: 6% (103/1709) Updating files: 7% (120/1709) Updating files: 8% (137/1709) Updating files: 9% (154/1709) Updating files: 10% (171/1709) Updating files: 11% (188/1709) Updating files: 11% (191/1709) Updating files: 12% (206/1709) Updating files: 13% (223/1709) Updating files: 14% (240/1709) Updating files: 15% (257/1709) Updating files: 16% (274/1709) Updating files: 17% (291/1709) Updating files: 18% (308/1709) Updating files: 19% (325/1709) Updating files: 20% (342/1709) Updating files: 21% (359/1709) Updating files: 22% (376/1709) Updating files: 23% (394/1709) Updating files: 24% (411/1709) Updating files: 25% (428/1709) Updating files: 25% (434/1709) Updating files: 26% (445/1709) Updating files: 27% (462/1709) Updating files: 28% (479/1709) Updating files: 29% (496/1709) Updating files: 30% (513/1709) Updating files: 31% (530/1709) Updating files: 32% (547/1709) Updating files: 33% (564/1709) Updating files: 34% (582/1709) Updating files: 35% (599/1709) Updating files: 36% (616/1709) Updating files: 37% (633/1709) Updating files: 38% (650/1709) Updating files: 39% (667/1709) Updating files: 40% (684/1709) Updating files: 41% (701/1709) Updating files: 42% (718/1709) Updating files: 43% (735/1709) Updating files: 44% (752/1709) Updating files: 45% (770/1709) Updating files: 46% (787/1709) Updating files: 47% (804/1709) Updating files: 48% (821/1709) Updating files: 49% (838/1709) Updating files: 50% (855/1709) Updating files: 51% (872/1709) Updating files: 52% (889/1709) Updating files: 53% (906/1709) Updating files: 54% (923/1709) Updating files: 55% (940/1709) Updating files: 56% (958/1709) Updating files: 57% (975/1709) Updating files: 58% (992/1709) Updating files: 59% (1009/1709) Updating files: 60% (1026/1709) Updating files: 61% (1043/1709) Updating files: 62% (1060/1709) Updating files: 63% (1077/1709) Updating files: 64% (1094/1709) Updating files: 65% (1111/1709) Updating files: 66% (1128/1709) Updating files: 67% (1146/1709) Updating files: 68% (1163/1709) Updating files: 69% (1180/1709) Updating files: 70% (1197/1709) Updating files: 71% (1214/1709) Updating files: 72% (1231/1709) Updating files: 73% (1248/1709) Updating files: 74% (1265/1709) Updating files: 75% (1282/1709) Updating files: 76% (1299/1709) Updating files: 77% (1316/1709) Updating files: 78% (1334/1709) Updating files: 79% (1351/1709) Updating files: 80% (1368/1709) Updating files: 81% (1385/1709) Updating files: 82% (1402/1709) Updating files: 83% (1419/1709) Updating files: 84% (1436/1709) Updating files: 85% (1453/1709) Updating files: 86% (1470/1709) Updating files: 87% (1487/1709) Updating files: 88% (1504/1709) Updating files: 89% (1522/1709) Updating files: 90% (1539/1709) Updating files: 91% (1556/1709) Updating files: 92% (1573/1709) Updating files: 93% (1590/1709) Updating files: 94% (1607/1709) Updating files: 95% (1624/1709) Updating files: 96% (1641/1709) Updating files: 97% (1658/1709) Updating files: 98% (1675/1709) Updating files: 99% (1692/1709) Updating files: 100% (1709/1709) Updating files: 100% (1709/1709), done. HEAD is now at 2aca9af12 Minor doc fix! HEAD is now at faee0dcd2 Remove linebreak test (from ocaml/opam:debian-12-ocaml-4.14@sha256:d2aefa78264607e5c9dd48539baf5160ee4a33efa7e4286f18b2d0f2e549c327) Unable to find image 'ocaml/opam:debian-12-ocaml-4.14@sha256:d2aefa78264607e5c9dd48539baf5160ee4a33efa7e4286f18b2d0f2e549c327' locally docker.io/ocaml/opam@sha256:d2aefa78264607e5c9dd48539baf5160ee4a33efa7e4286f18b2d0f2e549c327: Pulling from ocaml/opam Digest: sha256:d2aefa78264607e5c9dd48539baf5160ee4a33efa7e4286f18b2d0f2e549c327 Status: Downloaded newer image for ocaml/opam@sha256:d2aefa78264607e5c9dd48539baf5160ee4a33efa7e4286f18b2d0f2e549c327 2025-05-01 13:56.09 ---> using "4519e2acb7b76404f380a57b9d66da47daa0254f2c4c3a9cdbb2f6183c108ef8" from cache /: (comment debian-12-4.14_s390x_opam-2.3) /: (user (uid 1000) (gid 1000)) /: (env CLICOLOR_FORCE 1) /: (env OPAMCOLOR always) /: (workdir /src) /src: (run (shell "sudo ln -f /usr/bin/opam-2.3 /usr/bin/opam")) 2025-05-01 13:56.09 ---> using "01b5bcb17125b9d617e1ebf9567eca246e24365cc95324936c21b1c21d12804d" from cache /src: (run (shell "opam init --reinit -ni")) Configuring from /home/opam/.opamrc and then 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 development 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 2025-05-01 13:56.09 ---> using "015f6ed25634798b6dd5dd47134ca5c64516ed4e1e9a18cbe68716fcb2600222" from cache /src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version")) Linux 6.8.0-55-generic The OCaml toplevel, version 4.14.2 2.3.0 2025-05-01 13:56.09 ---> using "87c7ced9afd1c900724f217724b8f6a3c88669e6dbd06f0ff511cec4ba4654bf" from cache /src: (workdir /src) /src: (run (shell "sudo chown opam /src")) 2025-05-01 13:56.09 ---> using "a6ee203a71f1a364bb98808707f46782a97f717024e294dfc3566a91e9988c9d" from cache /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "cd ~/opam-repository && (git cat-file -e 442eddb8a363418dcb02e519972818da08bb7cd4 || git fetch origin master) && git reset -q --hard 442eddb8a363418dcb02e519972818da08bb7cd4 && git log --no-decorate -n1 --oneline && opam update -u")) From https://github.com/ocaml/opam-repository * branch master -> FETCH_HEAD 34a3fc46c3..999bff3ed8 master -> origin/master 442eddb8a3 Merge pull request #27761 from maiste/release-dune-3.18.1 <><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><> [default] synchronised from git+file:///home/opam/opam-repository Everything as up-to-date as possible (run with --verbose to show unavailable upgrades). However, you may "opam upgrade" these packages explicitly, which will ask permission to downgrade or uninstall the conflicting packages. Nothing to do. # To update the current shell environment, run: eval $(opam env) 2025-05-01 13:56.09 ---> using "3c3c02ef6211add269daf7b00f086455fd78c4da46fdd448a7bc8b4890383a47" from cache /src: (copy (src sherlodoc.opam odoc.opam odoc-parser.opam odoc-md.opam odoc-driver.opam odoc-bench.opam) (dst ./)) 2025-05-01 13:57.43 ---> saved as "23b8661a11f8ef434436c5aefaeec9a63b85c2578de9cda9ae3bc5e61a3672c3" /src: (run (network host) (shell "opam pin add -yn sherlodoc.dev './' && \ \nopam pin add -yn odoc.dev './' && \ \nopam pin add -yn odoc-parser.dev './' && \ \nopam pin add -yn odoc-md.dev './' && \ \nopam pin add -yn odoc-driver.dev './' && \ \nopam pin add -yn odoc-bench.dev './'")) [sherlodoc.dev] synchronised (file:///src) sherlodoc is now pinned to file:///src (version dev) [odoc.dev] synchronised (file:///src) odoc is now pinned to file:///src (version dev) [odoc-parser.dev] synchronised (file:///src) odoc-parser is now pinned to file:///src (version dev) [odoc-md.dev] synchronised (file:///src) odoc-md is now pinned to file:///src (version dev) [odoc-driver.dev] synchronised (file:///src) odoc-driver is now pinned to file:///src (version dev) Package odoc-bench does not exist, create as a NEW package? [y/n] y [odoc-bench.dev] synchronised (file:///src) odoc-bench is now pinned to file:///src (version dev) [WARNING] Failed checks on odoc-bench package definition from source at file:///src: warning 47: Synopsis should start with a capital and not end with a dot 2025-05-01 13:58.38 ---> saved as "4bd89e27e64e8f99981c5baaa2386ca6e7433ce1463a3cccc73b149eb986cfdb" /src: (run (network host) (shell "echo '(lang dune 3.0)' > './dune-project'")) 2025-05-01 13:58.40 ---> saved as "ed4aa22e888051991b03d3183f8790aa88db6fdff2e52e0a231ebfd99b844f69" /src: (env DEPS "alcotest.1.9.0 astring.0.8.5 b0.0.0.5 base.v0.16.3 base-bigarray.base base-bytes.base base-threads.base base-unix.base base64.3.5.1 base_bigstring.v0.16.0 base_quickcheck.v0.16.0 bigstringaf.0.10.0 bin_prot.v0.16.0 bisect_ppx.2.8.3 bos.0.2.1 brr.0.0.7 camlp-streams.5.0.1 checkseum.0.5.2 cmarkit.0.3.0 cmdliner.1.3.0 conf-bash.1 conf-jq.1 core.v0.16.2 core_kernel.v0.16.0 cppo.1.8.0 crunch.4.0.0 csexp.1.5.2 decompress.1.5.3 dune.3.18.1 dune-configurator.3.18.1 fieldslib.v0.16.0 fmt.0.10.0 fpath.0.7.3 gen.1.1 int_repr.v0.16.0 jane-street-headers.v0.16.0 js_of_ocaml.6.0.1 js_of_ocaml-compiler.6.0.1 js_of_ocaml-toplevel.6.0.1 jst-config.v0.16.0 logs.0.8.0 lwt.5.9.1 mdx.2.5.0 menhir.20240715 menhirCST.20240715 menhirLib.20240715 menhirSdk.20240715 num.1.5-1 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-compiler-libs.v0.12.4 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocplib-endian.1.2 odig.0.0.9 optint.0.3.0 parsexp.v0.16.0 ppx_assert.v0.16.0 ppx_base.v0.16.0 ppx_bench.v0.16.0 ppx_bin_prot.v0.16.0 ppx_blob.0.9.0 ppx_cold.v0.16.0 ppx_compare.v0.16.0 ppx_custom_printf.v0.16.0 ppx_derivers.1.2.1 ppx_disable_unused_warnings.v0.16.0 ppx_enumerate.v0.16.0 ppx_expect.v0.16.1 ppx_fields_conv.v0.16.0 ppx_fixed_literal.v0.16.0 ppx_globalize.v0.16.0 ppx_hash.v0.16.0 ppx_here.v0.16.0 ppx_ignore_instrumentation.v0.16.0 ppx_inline_test.v0.16.1 ppx_jane.v0.16.0 ppx_let.v0.16.0 ppx_log.v0.16.0 ppx_module_timer.v0.16.0 ppx_optcomp.v0.16.0 ppx_optional.v0.16.0 ppx_pipebang.v0.16.0 ppx_sexp_conv.v0.16.0 ppx_sexp_message.v0.16.0 ppx_sexp_value.v0.16.0 ppx_stable.v0.16.0 ppx_stable_witness.v0.16.0 ppx_string.v0.16.0 ppx_tydi.v0.16.0 ppx_typerep_conv.v0.16.0 ppx_variants_conv.v0.16.0 ppxlib.0.35.0 ptime.1.2.0 re.1.12.0 result.1.5 rresult.0.7.0 sedlex.3.4 seq.base sexplib.v0.16.0 sexplib0.v0.16.0 splittable_random.v0.16.0 stdio.v0.16.0 stdlib-shims.0.3.0 time_now.v0.16.0 topkg.1.0.8 typerep.v0.16.0 tyxml.4.6.0 uutf.1.0.4 variantslib.v0.16.0 yojson.2.2.2") /src: (env CI true) /src: (env OCAMLCI true) /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam update --depexts && opam install --cli=2.3 --depext-only -y sherlodoc.dev odoc.dev odoc-parser.dev odoc-md.dev odoc-bench.dev $DEPS")) + /usr/bin/sudo "apt-get" "update" - Hit:1 http://deb.debian.org/debian bookworm InRelease - Get:2 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB] - Get:3 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB] - Get:4 http://deb.debian.org/debian-security bookworm-security/main s390x Packages [226 kB] - Fetched 330 kB in 1s (239 kB/s) - Reading package lists... - <><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><> [odoc-bench.dev] synchronised (file:///src) [odoc.dev] synchronised (file:///src) [odoc-md.dev] synchronised (file:///src) [sherlodoc.dev] synchronised (file:///src) [odoc-parser.dev] synchronised (file:///src) [NOTE] Package ocaml-options-vanilla is already installed (current version is 1). [NOTE] Package ocaml-config is already installed (current version is 2). [NOTE] Package ocaml-base-compiler is already installed (current version is 4.14.2). [NOTE] Package ocaml is already installed (current version is 4.14.2). [NOTE] Package base-unix is already installed (current version is base). [NOTE] Package base-threads is already installed (current version is base). [NOTE] Package base-bigarray is already installed (current version is base). The following system packages will first need to be installed: jq <><> Handling external dependencies <><><><><><><><><><><><><><><><><><><><><><> + /usr/bin/sudo "apt-get" "install" "-qq" "-yy" "jq" - debconf: delaying package configuration, since apt-utils is not installed - Selecting previously unselected package libonig5:s390x. - (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 ... 18520 files and directories currently installed.) - Preparing to unpack .../libonig5_6.9.8-1_s390x.deb ... - Unpacking libonig5:s390x (6.9.8-1) ... - Selecting previously unselected package libjq1:s390x. - Preparing to unpack .../libjq1_1.6-2.1_s390x.deb ... - Unpacking libjq1:s390x (1.6-2.1) ... - Selecting previously unselected package jq. - Preparing to unpack .../archives/jq_1.6-2.1_s390x.deb ... - Unpacking jq (1.6-2.1) ... - Setting up libonig5:s390x (6.9.8-1) ... - Setting up libjq1:s390x (1.6-2.1) ... - Setting up jq (1.6-2.1) ... - Processing triggers for libc-bin (2.36-9+deb12u10) ... 2025-05-01 14:00.15 ---> saved as "509ccb184f1a80ba9450db4cf245ab9798dcafbd2db23077d8e0b0674f86747e" /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam install $DEPS")) [NOTE] Package ocaml-options-vanilla is already installed (current version is 1). [NOTE] Package ocaml-config is already installed (current version is 2). [NOTE] Package ocaml-base-compiler is already installed (current version is 4.14.2). [NOTE] Package ocaml is already installed (current version is 4.14.2). [NOTE] Package base-unix is already installed (current version is base). [NOTE] Package base-threads is already installed (current version is base). [NOTE] Package base-bigarray is already installed (current version is base). The following actions will be performed: === install 110 packages - install alcotest 1.9.0 - install astring 0.8.5 - install b0 0.0.5 - install base v0.16.3 - install base-bytes base - install base64 3.5.1 - install base_bigstring v0.16.0 - install base_quickcheck v0.16.0 - install bigstringaf 0.10.0 - install bin_prot v0.16.0 - install bisect_ppx 2.8.3 - install bos 0.2.1 - install brr 0.0.7 - install camlp-streams 5.0.1 - install checkseum 0.5.2 - install cmarkit 0.3.0 - install cmdliner 1.3.0 - install conf-bash 1 - install conf-jq 1 - install core v0.16.2 - install core_kernel v0.16.0 - install cppo 1.8.0 - install crunch 4.0.0 - install csexp 1.5.2 - install decompress 1.5.3 - install dune 3.18.1 - install dune-configurator 3.18.1 - install fieldslib v0.16.0 - install fmt 0.10.0 - install fpath 0.7.3 - install gen 1.1 - install int_repr v0.16.0 - install jane-street-headers v0.16.0 - install js_of_ocaml 6.0.1 - install js_of_ocaml-compiler 6.0.1 - install js_of_ocaml-toplevel 6.0.1 - install jst-config v0.16.0 - install logs 0.8.0 - install lwt 5.9.1 - install mdx 2.5.0 - install menhir 20240715 - install menhirCST 20240715 - install menhirLib 20240715 - install menhirSdk 20240715 - install num 1.5-1 - install ocaml-compiler-libs v0.12.4 - install ocaml-syntax-shims 1.0.0 - install ocaml-version 4.0.0 - install ocamlbuild 0.16.1 - install ocamlfind 1.9.8 - install ocplib-endian 1.2 - install odig 0.0.9 - install odoc dev (pinned) [required by odig] - install odoc-parser dev (pinned) [required by odoc] - install optint 0.3.0 - install parsexp v0.16.0 - install ppx_assert v0.16.0 - install ppx_base v0.16.0 - install ppx_bench v0.16.0 - install ppx_bin_prot v0.16.0 - install ppx_blob 0.9.0 - install ppx_cold v0.16.0 - install ppx_compare v0.16.0 - install ppx_custom_printf v0.16.0 - install ppx_derivers 1.2.1 - install ppx_disable_unused_warnings v0.16.0 - install ppx_enumerate v0.16.0 - install ppx_expect v0.16.1 - install ppx_fields_conv v0.16.0 - install ppx_fixed_literal v0.16.0 - install ppx_globalize v0.16.0 - install ppx_hash v0.16.0 - install ppx_here v0.16.0 - install ppx_ignore_instrumentation v0.16.0 - install ppx_inline_test v0.16.1 - install ppx_jane v0.16.0 - install ppx_let v0.16.0 - install ppx_log v0.16.0 - install ppx_module_timer v0.16.0 - install ppx_optcomp v0.16.0 - install ppx_optional v0.16.0 - install ppx_pipebang v0.16.0 - install ppx_sexp_conv v0.16.0 - install ppx_sexp_message v0.16.0 - install ppx_sexp_value v0.16.0 - install ppx_stable v0.16.0 - install ppx_stable_witness v0.16.0 - install ppx_string v0.16.0 - install ppx_tydi v0.16.0 - install ppx_typerep_conv v0.16.0 - install ppx_variants_conv v0.16.0 - install ppxlib 0.35.0 - install ptime 1.2.0 - install re 1.12.0 - install result 1.5 - install rresult 0.7.0 - install sedlex 3.4 - install seq base - install sexplib v0.16.0 - install sexplib0 v0.16.0 - install splittable_random v0.16.0 - install stdio v0.16.0 - install stdlib-shims 0.3.0 - install time_now v0.16.0 - install topkg 1.0.8 - install typerep v0.16.0 - install tyxml 4.6.0 - install uutf 1.0.4 - install variantslib v0.16.0 - install yojson 2.2.2 <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> -> retrieved astring.0.8.5 (cached) -> retrieved alcotest.1.9.0 (cached) -> retrieved b0.0.0.5 (cached) -> retrieved base64.3.5.1 (cached) -> retrieved base.v0.16.3 (cached) -> retrieved base_bigstring.v0.16.0 (cached) -> retrieved base_quickcheck.v0.16.0 (cached) -> retrieved bigstringaf.0.10.0 (cached) -> retrieved bin_prot.v0.16.0 (cached) -> retrieved bisect_ppx.2.8.3 (cached) -> retrieved bos.0.2.1 (cached) -> retrieved brr.0.0.7 (cached) -> retrieved camlp-streams.5.0.1 (cached) -> retrieved checkseum.0.5.2 (cached) -> retrieved cmarkit.0.3.0 (cached) -> retrieved cmdliner.1.3.0 (cached) -> retrieved core.v0.16.2 (cached) -> installed conf-bash.1 -> installed conf-jq.1 -> retrieved core_kernel.v0.16.0 (cached) -> retrieved cppo.1.8.0 (cached) -> retrieved crunch.4.0.0 (cached) -> retrieved csexp.1.5.2 (cached) -> retrieved fieldslib.v0.16.0 (cached) -> retrieved fmt.0.10.0 (cached) -> retrieved fpath.0.7.3 (cached) -> retrieved gen.1.1 (cached) -> retrieved int_repr.v0.16.0 (cached) -> retrieved decompress.1.5.3 (cached) -> retrieved jane-street-headers.v0.16.0 (cached) -> retrieved jst-config.v0.16.0 (cached) -> retrieved logs.0.8.0 (cached) -> retrieved dune.3.18.1, dune-configurator.3.18.1 (cached) -> retrieved js_of_ocaml.6.0.1, js_of_ocaml-compiler.6.0.1, js_of_ocaml-toplevel.6.0.1 (cached) -> retrieved lwt.5.9.1 (cached) -> retrieved mdx.2.5.0 (cached) -> retrieved menhir.20240715, menhirCST.20240715, menhirLib.20240715, menhirSdk.20240715 (cached) -> retrieved num.1.5-1 (cached) -> retrieved ocaml-compiler-libs.v0.12.4 (cached) -> installed cmdliner.1.3.0 -> retrieved ocaml-syntax-shims.1.0.0 (cached) -> retrieved ocaml-version.4.0.0 (cached) -> retrieved ocamlbuild.0.16.1 (cached) -> retrieved ocamlfind.1.9.8 (cached) -> retrieved ocplib-endian.1.2 (cached) -> retrieved optint.0.3.0 (cached) -> retrieved ppx_assert.v0.16.0 (cached) -> retrieved parsexp.v0.16.0 (cached) -> retrieved ppx_base.v0.16.0 (cached) -> retrieved ppx_bench.v0.16.0 (cached) -> retrieved ppx_bin_prot.v0.16.0 (cached) -> retrieved ppx_blob.0.9.0 (cached) -> retrieved ppx_cold.v0.16.0 (cached) -> retrieved ppx_compare.v0.16.0 (cached) -> retrieved ppx_custom_printf.v0.16.0 (cached) -> retrieved ppx_derivers.1.2.1 (cached) -> retrieved ppx_disable_unused_warnings.v0.16.0 (cached) -> retrieved ppx_enumerate.v0.16.0 (cached) -> retrieved ppx_fields_conv.v0.16.0 (cached) -> retrieved ppx_expect.v0.16.1 (cached) -> retrieved ppx_fixed_literal.v0.16.0 (cached) -> retrieved ppx_globalize.v0.16.0 (cached) -> retrieved ppx_hash.v0.16.0 (cached) -> retrieved ppx_here.v0.16.0 (cached) -> retrieved odig.0.0.9 (cached) -> retrieved ppx_ignore_instrumentation.v0.16.0 (cached) -> retrieved ppx_inline_test.v0.16.1 (cached) -> retrieved ppx_jane.v0.16.0 (cached) -> retrieved ppx_let.v0.16.0 (cached) -> retrieved ppx_log.v0.16.0 (cached) -> retrieved ppx_module_timer.v0.16.0 (cached) -> retrieved ppx_optcomp.v0.16.0 (cached) -> retrieved ppx_optional.v0.16.0 (cached) -> retrieved ppx_pipebang.v0.16.0 (cached) -> retrieved ppx_sexp_value.v0.16.0 (cached) -> retrieved ppx_sexp_conv.v0.16.0 (cached) -> retrieved ppx_sexp_message.v0.16.0 (cached) -> retrieved ppx_stable.v0.16.0 (cached) -> retrieved ppx_stable_witness.v0.16.0 (cached) -> retrieved ppx_string.v0.16.0 (cached) -> retrieved ppx_tydi.v0.16.0 (cached) -> retrieved ppx_typerep_conv.v0.16.0 (cached) -> retrieved ppx_variants_conv.v0.16.0 (cached) -> retrieved ptime.1.2.0 (cached) -> retrieved result.1.5 (cached) -> retrieved re.1.12.0 (cached) -> retrieved rresult.0.7.0 (cached) -> retrieved seq.base (cached) -> retrieved sedlex.3.4 (cached) -> retrieved ppxlib.0.35.0 (cached) -> retrieved sexplib.v0.16.0 (cached) -> retrieved sexplib0.v0.16.0 (cached) -> retrieved splittable_random.v0.16.0 (cached) -> retrieved stdio.v0.16.0 (cached) -> retrieved stdlib-shims.0.3.0 (cached) -> retrieved time_now.v0.16.0 (cached) -> retrieved topkg.1.0.8 (cached) -> retrieved typerep.v0.16.0 (cached) -> retrieved tyxml.4.6.0 (cached) -> retrieved uutf.1.0.4 (cached) -> retrieved variantslib.v0.16.0 (cached) -> retrieved yojson.2.2.2 (cached) -> installed num.1.5-1 -> installed ocamlfind.1.9.8 -> installed base-bytes.base -> installed seq.base -> installed ocamlbuild.0.16.1 -> installed dune.3.18.1 -> installed camlp-streams.5.0.1 -> installed base64.3.5.1 -> installed csexp.1.5.2 -> installed cppo.1.8.0 -> installed gen.1.1 -> installed jane-street-headers.v0.16.0 -> installed menhirCST.20240715 -> installed topkg.1.0.8 -> installed dune-configurator.3.18.1 -> installed menhirLib.20240715 -> installed menhirSdk.20240715 -> installed bigstringaf.0.10.0 -> installed astring.0.8.5 -> installed fmt.0.10.0 -> installed fpath.0.7.3 -> installed cmarkit.0.3.0 -> installed ocaml-compiler-libs.v0.12.4 -> installed ocaml-syntax-shims.1.0.0 -> installed ocaml-version.4.0.0 -> installed ocplib-endian.1.2 -> installed optint.0.3.0 -> installed lwt.5.9.1 -> installed checkseum.0.5.2 -> installed ppx_derivers.1.2.1 -> installed decompress.1.5.3 -> installed ptime.1.2.0 -> installed b0.0.0.5 -> installed crunch.4.0.0 -> installed result.1.5 -> installed rresult.0.7.0 -> installed re.1.12.0 -> installed odoc-parser.dev -> installed stdlib-shims.0.3.0 -> installed sexplib0.v0.16.0 -> installed uutf.1.0.4 -> installed yojson.2.2.2 -> installed menhir.20240715 -> installed alcotest.1.9.0 -> installed parsexp.v0.16.0 -> installed tyxml.4.6.0 -> installed sexplib.v0.16.0 -> installed odoc.dev -> installed base.v0.16.3 -> installed fieldslib.v0.16.0 -> installed stdio.v0.16.0 -> installed odig.0.0.9 -> installed typerep.v0.16.0 -> installed variantslib.v0.16.0 -> installed ppxlib.0.35.0 -> installed ppx_blob.0.9.0 -> installed ppx_cold.v0.16.0 -> installed ppx_disable_unused_warnings.v0.16.0 -> installed ppx_compare.v0.16.0 -> installed bisect_ppx.2.8.3 -> installed ppx_enumerate.v0.16.0 -> installed ppx_fields_conv.v0.16.0 -> installed ppx_globalize.v0.16.0 -> installed ppx_fixed_literal.v0.16.0 -> installed ppx_here.v0.16.0 -> installed ppx_ignore_instrumentation.v0.16.0 -> installed ppx_optcomp.v0.16.0 -> installed ppx_optional.v0.16.0 -> installed ppx_let.v0.16.0 -> installed ppx_pipebang.v0.16.0 -> installed ppx_stable.v0.16.0 -> installed ppx_sexp_conv.v0.16.0 -> installed ppx_tydi.v0.16.0 -> installed ppx_stable_witness.v0.16.0 -> installed ppx_typerep_conv.v0.16.0 -> installed ppx_assert.v0.16.0 -> installed ppx_hash.v0.16.0 -> installed ppx_custom_printf.v0.16.0 -> installed ppx_sexp_message.v0.16.0 -> installed jst-config.v0.16.0 -> installed ppx_base.v0.16.0 -> installed ppx_variants_conv.v0.16.0 -> installed ppx_log.v0.16.0 -> installed ppx_sexp_value.v0.16.0 -> installed ppx_string.v0.16.0 -> installed time_now.v0.16.0 -> installed bin_prot.v0.16.0 -> installed sedlex.3.4 -> installed ppx_inline_test.v0.16.1 -> installed ppx_module_timer.v0.16.0 -> installed ppx_bin_prot.v0.16.0 -> installed ppx_bench.v0.16.0 -> installed splittable_random.v0.16.0 -> installed ppx_expect.v0.16.1 -> installed base_quickcheck.v0.16.0 -> installed ppx_jane.v0.16.0 -> installed int_repr.v0.16.0 -> installed base_bigstring.v0.16.0 -> installed js_of_ocaml-compiler.6.0.1 -> installed js_of_ocaml-toplevel.6.0.1 -> installed js_of_ocaml.6.0.1 -> installed logs.0.8.0 -> installed bos.0.2.1 -> installed core.v0.16.2 -> installed brr.0.0.7 -> installed mdx.2.5.0 -> installed core_kernel.v0.16.0 Done. # To update the current shell environment, run: eval $(opam env) 2025-05-01 14:22.31 ---> saved as "64f81914f8e134b38aa5828c96e61e34b9304f4543939f2395f1b0187d1f8705" /src: (copy (src .) (dst /src)) 2025-05-01 14:22.44 ---> saved as "9cbf7b5da5f5a5bb2ad35db0aca1a4be006e3df5d6ab0732936bb1de44110257" /src: (run (shell "opam exec -- dune build --only-packages=sherlodoc,odoc,odoc-parser,odoc-md,odoc-bench @install @check @runtest && rm -rf _build")) (cd _build/default/src/html_support_files && /home/opam/.opam/4.14/bin/ocaml-crunch . -e js -e css -e ttf -e woff2 -o odoc_html_support_files.ml -m plain) Generating odoc_html_support_files.ml Skipping generation of .mli (cd _build/default/sherlodoc/query/test && ./test.exe) Testing `Query'. This run has ID `NW4EPYIS'. [OK] Succ 0 Succ.to_seq extra. [OK] Succ 1 Succ.to_seq size 0. [OK] Succ 2 Succ.to_seq size 7. [OK] Succ 3 Succ.to_seq size 14. [OK] Succ 4 Succ.to_seq size 21. [OK] Succ 5 Succ.to_seq size 28. [OK] Succ 6 Succ.to_seq size 35. [OK] Succ 7 Succ.to_seq size 42. [OK] Succ 8 Succ.to_seq size 49. [OK] Succ 9 Succ.to_seq size 56. [OK] Succ 10 Succ.to_seq size 63. [OK] Succ 11 Succ.to_seq size 70. [OK] Succ 12 Succ.to_seq size 77. [OK] Succ 13 Succ.to_seq size 84. [OK] Succ 14 Succ.to_seq size 91. [OK] Succ 15 Succ.to_seq size 98. [OK] Succ 16 Succ.to_seq size 105. [OK] Succ 17 Succ.to_seq size 112. [OK] Succ 18 Succ.to_seq size 119. [OK] Succ 19 Succ.to_seq size 126. [OK] Succ 20 Succ.to_seq size 133. [OK] Succ 21 Succ.to_seq size 140. [OK] Succ 22 Succ.to_seq size 147. [OK] Succ 23 Succ.to_seq size 154. [OK] Succ 24 Succ.to_seq size 161. [OK] Succ 25 Succ.to_seq size 168. [OK] Succ 26 Succ.to_seq size 175. [OK] Succ 27 Succ.to_seq size 182. [OK] Succ 28 Succ.to_seq size 189. [OK] Succ 29 Succ.to_seq size 196. [OK] Succ 30 Succ.to_seq size 203. [OK] Succ 31 Succ.to_seq size 210. [OK] Succ 32 Succ.to_seq size 217. [OK] Succ 33 Succ.to_seq size 224. [OK] Succ 34 Succ.to_seq size 231. [OK] Succ 35 Succ.to_seq size 238. [OK] Succ 36 Succ.to_seq size 245. [OK] Succ 37 Succ.to_seq size 252. [OK] Succ 38 Succ.to_seq size 259. [OK] Succ 39 Succ.to_seq size 266. [OK] Succ 40 Succ.to_seq size 273. [OK] Succ 41 Succ.to_seq size 280. [OK] Succ 42 Succ.to_seq size 287. [OK] Succ 43 Succ.to_seq size 294. [OK] Succ 44 Succ.to_seq size 301. [OK] Succ 45 Succ.to_seq size 308. [OK] Succ 46 Succ.to_seq size 315. [OK] Succ 47 Succ.to_seq size 322. [OK] Succ 48 Succ.to_seq size 329. [OK] Succ 49 Succ.to_seq size 336. [OK] Succ 50 Succ.to_seq size 343. [OK] Type_parser 0 Type_parser size 0. [OK] Type_parser 1 Type_parser size 5. [OK] Type_parser 2 Type_parser size 10. [OK] Type_parser 3 Type_parser size 15. [OK] Type_parser 4 Type_parser size 20. [OK] Type_parser 5 Type_parser size 25. [OK] Type_parser 6 Type_parser size 30. [OK] Type_parser 7 Type_parser size 35. [OK] Type_parser 8 Type_parser size 40. [OK] Type_parser 9 Type_parser size 45. [OK] Type_parser 10 Type_parser size 50. [OK] Type_parser 11 Type_parser size 55. [OK] Type_parser 12 Type_parser size 60. [OK] Type_parser 13 Type_parser size 65. [OK] Type_parser 14 Type_parser size 70. [OK] Type_parser 15 Type_parser size 75. [OK] Type_parser 16 Type_parser size 80. [OK] Type_parser 17 Type_parser size 85. [OK] Type_parser 18 Type_parser size 90. [OK] Type_parser 19 Type_parser size 95. [OK] Type_parser 20 Type_parser size 100. [OK] Type_parser 21 Type_parser size 105. [OK] Type_parser 22 Type_parser size 110. [OK] Type_parser 23 Type_parser size 115. [OK] Type_parser 24 Type_parser size 120. [OK] Type_parser 25 Type_parser size 125. [OK] Type_parser 26 Type_parser size 130. [OK] Type_parser 27 Type_parser size 135. [OK] Type_parser 28 Type_parser size 140. [OK] Type_parser 29 Type_parser size 145. [OK] Type_parser 30 Type_parser size 150. [OK] Type_parser 31 Type_parser size 155. [OK] Type_parser 32 Type_parser size 160. [OK] Type_parser 33 Type_parser size 165. [OK] Type_parser 34 Type_parser size 170. [OK] Type_parser 35 Type_parser size 175. [OK] Type_parser 36 Type_parser size 180. [OK] Type_parser 37 Type_parser size 185. [OK] Type_parser 38 Type_parser size 190. [OK] Type_parser 39 Type_parser size 195. [OK] Type_parser 40 Type_parser size 200. [OK] Type_parser 41 Type_parser size 205. [OK] Type_parser 42 Type_parser size 210. [OK] Type_parser 43 Type_parser size 215. [OK] Type_parser 44 Type_parser size 220. [OK] Type_parser 45 Type_parser size 225. [OK] Type_parser 46 Type_parser size 230. [OK] Type_parser 47 Type_parser size 235. [OK] Type_parser 48 Type_parser size 240. [OK] Type_parser 49 Type_parser size 245. Full test results in `/src/_build/default/sherlodoc/query/test/_build/_tests/Query'. Test Successful in 0.009s. 101 tests run. (cd _build/default/test/generators && ../../../install/default/bin/odoc link -o tag_link.odocl tag_link.odoc) File "cases/tag_link.ml", line 5, characters 4-21: Warning: Failed to resolve reference unresolvedroot(Foo) Couldn't find "Foo" (cd _build/default/test/generators && ../../../install/default/bin/odoc link -o stop_dead_link_doc.odocl stop_dead_link_doc.odoc) File "stop_dead_link_doc.odoc": Warning: Hidden constructors in type 'Stop_dead_link_doc.another_bar_' File "stop_dead_link_doc.odoc": Warning: Hidden constructors in type 'Stop_dead_link_doc.another_foo_' File "stop_dead_link_doc.odoc": Warning: Hidden constructors in type 'Stop_dead_link_doc.another_bar' File "stop_dead_link_doc.odoc": Warning: Hidden constructors in type 'Stop_dead_link_doc.another_foo' (cd _build/default/test/generators && ../../../install/default/bin/odoc link -o ocamlary.odocl ocamlary.odoc) File "cases/ocamlary.mli", line 204, characters 4-39: Warning: Failed to resolve reference unresolvedroot(Not_found) Couldn't find "Not_found" (cd _build/default/test/generators && ../../../install/default/bin/odoc link -o markup.odocl markup.odoc) File "cases/markup.mli", line 228, characters 4-25: Warning: Failed to resolve reference unresolvedroot(Failure) Couldn't find "Failure" File "test/integration/markdown-with-belt.t/run.t", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/.sandbox/b3125361f9023ef5e0cda203898dc80c/default/test/integration/markdown-with-belt.t/run.t _build/.sandbox/b3125361f9023ef5e0cda203898dc80c/default/test/integration/markdown-with-belt.t/run.t.corrected diff --git a/_build/.sandbox/b3125361f9023ef5e0cda203898dc80c/default/test/integration/markdown-with-belt.t/run.t b/_build/.sandbox/b3125361f9023ef5e0cda203898dc80c/default/test/integration/markdown-with-belt.t/run.t.corrected index ef4618f..753f18d 100644 --- a/_build/.sandbox/b3125361f9023ef5e0cda203898dc80c/default/test/integration/markdown-with-belt.t/run.t +++ b/_build/.sandbox/b3125361f9023ef5e0cda203898dc80c/default/test/integration/markdown-with-belt.t/run.t.corrected @@ -10,32 +10,40 @@ $ odoc markdown-generate Belt_Id.odocl -o markdown $ tree markdown - markdown - `-- Belt - |-- Belt.md - `-- Belt_Id.md - - 1 directory, 2 files + tree: not found + [127] $ cat markdown/Belt/Belt.md + # Module `Belt` + A stdlib shipped with Melange + This stdlib is still in *beta* but we encourage you to try it out and give us feedback. + **Motivation** + The motivation for creating such library is to provide Melange users a better end-to-end user experience, since the original OCaml stdlib was not written with JS in mind. Below is a list of areas this lib aims to improve: - 0. Consistency in name convention: camlCase, and arguments order - 1. Exception thrown functions are all suffixed with *Exn*, e.g, *getExn* - 2. Better performance and smaller code size running on JS platform + + 1. Consistency in name convention: camlCase, and arguments order + 2. Exception thrown functions are all suffixed with *Exn*, e.g, *getExn* + 3. Better performance and smaller code size running on JS platform **Name Convention** + For higher order functions, it will be suffixed **U** if it takes uncurried callback. + ```ocaml val forEach : 'a t -> ('a -> unit) -> unit val forEachU : 'a t -> ('a -> unit [\@u]) -> unit ``` In general, uncurried version will be faster, but it may be less familiar to people who have a background in functional programming. + **A special encoding for collection safety** + When we create a collection library for a custom data type we need a way to provide a comparator function. Take *Set* for example, suppose its element type is a pair of ints, it needs a custom *compare* function that takes two tuples and returns their order. The *Set* could not just be typed as ` Set.t (int * int) `, its customized *compare* function needs to manifest itself in the signature, otherwise, if the user creates another customized *compare* function, the two collection could mix which would result in runtime error. + The original OCaml stdlib solved the problem using *functor* which creates a big closure at runtime and makes dead code elimination much harder. We use a phantom type to solve the problem: + ```ocaml module Comparable1 = Belt.Id.MakeComparable (struct type t = int * int @@ -58,23 +66,31 @@ let mySet2 = Belt.Set.make ~id:(module Comparable2) ``` Here, the compiler would infer `mySet1` and `mySet2` having different type, so e.g. a \`merge\` operation that tries to merge these two sets will correctly fail. + ```ocaml val mySet1 : (int * int, Comparable1.identity) t val mySet2 : (int * int, Comparable2.identity) t ``` `Comparable1.identity` and `Comparable2.identity` are not the same using our encoding scheme. + **Collection Hierarchy** + In general, we provide a generic collection module, but also create specialized modules for commonly used data type. Take *Belt.Set* for example, we provide: + ```ocaml Belt.Set Belt.Set.Int Belt.Set.String ``` The specialized modules *Belt.Set.Int*, *Belt.Set.String* are in general more efficient. + Currently, both *Belt\_Set* and *Belt.Set* are accessible to users for some technical reasons, we **strongly recommend** users stick to qualified import, *Belt.Set*, we may hide the internal, *i.e*, *Belt\_Set* in the future + ``` module Id = Belt_Id ``` [`Belt.Id`](./Belt_Id.md) + Provide utilities to create identified comparators or hashes for data structures used below. + It create a unique identifier per module of functions so that different data structures with slightly different comparison functions won't mix "/usr/bin/env" "bash" "-c" "opam exec -- dune build --only-packages=sherlodoc,odoc,odoc-parser,odoc-md,odoc-bench @install @check @runtest && rm -rf _build" failed with exit status 1 2025-05-01 14:27.34: Job failed: Failed: Build failed