2025-08-16 20:25.34: New job: test ahrefs/ocannl https://github.com/ahrefs/ocannl.git#refs/heads/master (eaca6db2103d5bad55b131d65533d01583f3db75) (linux-x86_64:(lint-fmt))Base: ocaml/opam:debian-12-ocaml-4.08@sha256:474656ea1593a299054f8966c700443fa0944c9534de3da94ca6dfab4a44c47aocamlformat version: version 0.27.0 (from opam)To reproduce locally:git clone --recursive "https://github.com/ahrefs/ocannl.git" -b "master" && cd "ocannl" && git reset --hard eaca6db2cat > Dockerfile <<'END-OF-DOCKERFILE'FROM ocaml/opam:debian-12-ocaml-4.08@sha256:474656ea1593a299054f8966c700443fa0944c9534de3da94ca6dfab4a44c47aUSER 1000:1000RUN cd ~/opam-repository && (git cat-file -e b8021439f8c57ba6435bc2263f6596671f4f4466 || git fetch origin master) && git reset -q --hard b8021439f8c57ba6435bc2263f6596671f4f4466 && git log --no-decorate -n1 --oneline && opam update -uRUN opam depext -i duneWORKDIR /srcRUN opam depext -i ocamlformat=0.27.0COPY --chown=1000:1000 . /src/RUN opam exec -- dune build @fmt --ignore-promoted-rules || (echo "dune build @fmt failed"; exit 2)END-OF-DOCKERFILEdocker build .END-REPRO-BLOCK2025-08-16 20:25.34: Using cache hint "ahrefs/ocannl-ocaml/opam:debian-12-ocaml-4.08@sha256:474656ea1593a299054f8966c700443fa0944c9534de3da94ca6dfab4a44c47a-debian-12-4.08_opam-2.4-ocamlformat-b8021439f8c57ba6435bc2263f6596671f4f4466"2025-08-16 20:25.34: Using OBuilder spec:((from ocaml/opam:debian-12-ocaml-4.08@sha256:474656ea1593a299054f8966c700443fa0944c9534de3da94ca6dfab4a44c47a)(user (uid 1000) (gid 1000))(run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "cd ~/opam-repository && (git cat-file -e b8021439f8c57ba6435bc2263f6596671f4f4466 || git fetch origin master) && git reset -q --hard b8021439f8c57ba6435bc2263f6596671f4f4466 && git log --no-decorate -n1 --oneline && opam update -u"))(run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "opam depext -i dune"))(workdir /src)(run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "opam depext -i ocamlformat=0.27.0"))(copy (src .) (dst /src/))(run (shell "opam exec -- dune build @fmt --ignore-promoted-rules || (echo \"dune build @fmt failed\"; exit 2)")))2025-08-16 20:25.34: Waiting for resource in pool OCluster2025-08-16 20:25.34: Waiting for worker…2025-08-16 20:25.34: Got resource from pool OClusterBuilding on eumacheHEAD is now at 69eb1335 Make training test expectations more robust (less precision)HEAD is now at eaca6db2 Make the moons boundary plots even smaller, and bigram_mlp bigger hidden dim(from ocaml/opam:debian-12-ocaml-4.08@sha256:474656ea1593a299054f8966c700443fa0944c9534de3da94ca6dfab4a44c47a)2025-08-16 20:25.35 ---> using "1d0024db739bd078f91b2384c47919652a4b72a425e3e24ce24cfd1f6debdfbc" from cache/: (user (uid 1000) (gid 1000))/: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "cd ~/opam-repository && (git cat-file -e b8021439f8c57ba6435bc2263f6596671f4f4466 || git fetch origin master) && git reset -q --hard b8021439f8c57ba6435bc2263f6596671f4f4466 && git log --no-decorate -n1 --oneline && opam update -u"))b8021439f8 Merge pull request #28261 from kit-ty-kate/deploy-fix-25819<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>[default] Initialiseddefault (at git+file:///home/opam/opam-repository):[INFO] opam 2.1 and 2.2 include many performance and security improvements over 2.0; please consider upgrading (https://opam.ocaml.org/doc/Install.html)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.# Run eval $(opam env) to update the current shell environment2025-08-16 20:25.35 ---> using "76d9d96bb26da3c78200d383fd35f876d80571baf05962331a1fff5f47db0e2e" from cache/: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "opam depext -i dune"))# Detecting depexts using vars: arch=x86_64, os=linux, os-distribution=debian, os-family=debian# No extra OS packages requirements found.# All required OS packages found.# Now letting opam install the packagesThe following actions will be performed:- install dune 3.19.1<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>[dune.3.19.1] found in cache<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>-> installed dune.3.19.1Done.# Run eval $(opam env) to update the current shell environment2025-08-16 20:25.35 ---> using "da0888a20a067de19f6183f0b497dcc2d1ea7f7036861cc50f633c662efdce4f" from cache/: (workdir /src)/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "opam depext -i ocamlformat=0.27.0"))# Detecting depexts using vars: arch=x86_64, os=linux, os-distribution=debian, os-family=debian# No extra OS packages requirements found.# All required OS packages found.# Now letting opam install the packagesThe following actions will be performed:- install sexplib0 v0.14.0 [required by base]- install menhirLib 20240715 [required by ocamlformat-lib]- install menhirCST 20240715 [required by menhir]- install ocamlbuild 0.16.1 [required by fpath, astring, uuseg]- install cmdliner 1.3.0 [required by ocamlformat]- install menhirSdk 20240715 [required by ocamlformat-lib]- install either 1.0.0 [required by ocamlformat-lib]- install csexp 1.5.2 [required by ocamlformat]- install dune-build-info 3.19.1 [required by ocamlformat-lib]- install camlp-streams 5.0.1 [required by ocamlformat-lib]- install seq base [required by re]- install fix 20250428 [required by ocamlformat-lib]- install ocaml-version 4.0.1 [required by ocamlformat-lib]- install ocamlfind 1.9.8 [required by ocp-indent, astring, fpath, uuseg]- install menhir 20240715 [required by ocamlformat-lib]- install dune-configurator 3.19.1 [required by base]- install re 1.11.0 [required by ocamlformat]- install topkg 1.1.0 [required by fpath, astring, uuseg]- install base-bytes base [required by ocp-indent]- install base v0.14.3 [required by ocamlformat-lib]- install uutf 1.0.4 [required by ocamlformat-lib]- install astring 0.8.5 [required by ocamlformat-lib]- install ocp-indent 1.8.1 [required by ocamlformat-lib]- install stdio v0.14.0 [required by ocamlformat-lib]- install uucp 15.0.0 [required by uuseg]- install fpath 0.7.3 [required by ocamlformat-lib]- install uuseg 15.0.0 [required by ocamlformat-lib]- install ocamlformat-lib 0.27.0 [required by ocamlformat]- install ocamlformat 0.27.0===== 29 to install =====<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>[astring.0.8.5] found in cache[base.v0.14.3] found in cache[camlp-streams.5.0.1] found in cache[cmdliner.1.3.0] found in cache[csexp.1.5.2] found in cache[dune-build-info.3.19.1] found in cache[dune-configurator.3.19.1] found in cache[either.1.0.0] found in cache[fix.20250428] found in cache[fpath.0.7.3] found in cache[menhir.20240715] found in cache[menhirCST.20240715] found in cache[menhirLib.20240715] found in cache[menhirSdk.20240715] found in cache[ocaml-version.4.0.1] found in cache[ocamlbuild.0.16.1] found in cache[ocamlfind.1.9.8] found in cache[ocamlformat.0.27.0] found in cache[ocamlformat-lib.0.27.0] found in cache[ocp-indent.1.8.1] found in cache[re.1.11.0] found in cache[sexplib0.v0.14.0] found in cache[stdio.v0.14.0] found in cache[topkg.1.1.0] found in cache[uucp.15.0.0] found in cache[uuseg.15.0.0] found in cache[uutf.1.0.4] found in cache<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>-> installed seq.base-> installed camlp-streams.5.0.1-> installed csexp.1.5.2-> installed either.1.0.0-> installed fix.20250428-> installed cmdliner.1.3.0-> installed menhirCST.20240715-> installed menhirLib.20240715-> installed menhirSdk.20240715-> installed ocaml-version.4.0.1-> installed re.1.11.0-> installed sexplib0.v0.14.0-> installed dune-build-info.3.19.1-> installed dune-configurator.3.19.1-> installed ocamlfind.1.9.8-> installed base-bytes.base-> installed ocp-indent.1.8.1-> installed ocamlbuild.0.16.1-> installed base.v0.14.3-> installed stdio.v0.14.0-> installed topkg.1.1.0-> installed uutf.1.0.4-> installed astring.0.8.5-> installed fpath.0.7.3-> installed menhir.20240715-> installed uucp.15.0.0-> installed uuseg.15.0.0-> installed ocamlformat-lib.0.27.0-> installed ocamlformat.0.27.0Done.<><> ocp-indent.1.8.1 installed successfully ><><><><><><><><><><><><><><><><><>=> This package requires additional configuration for use in editors. Install package 'user-setup', or manually:* for Emacs, add these lines to ~/.emacs:(add-to-list 'load-path "/home/opam/.opam/4.08/share/emacs/site-lisp")(require 'ocp-indent)* for Vim, add this line to ~/.vimrc:set rtp^="/home/opam/.opam/4.08/share/ocp-indent/vim"# Run eval $(opam env) to update the current shell environment2025-08-16 20:25.35 ---> using "86ec8dcb8046a1e5dacfb1841e8c026d30cfead67649bcb6d6a8f9ddd6fb153d" from cache/src: (copy (src .) (dst /src/))2025-08-16 20:25.35 ---> saved as "c2aba1cc826f44dd618e20d236f8a6e378ec1b67f715075e5564a6f1bc3722c5"/src: (run (shell "opam exec -- dune build @fmt --ignore-promoted-rules || (echo \"dune build @fmt failed\"; exit 2)"))File "arrayjit/bin/dune", line 6, characters 30-43:6 | (pps ppx_here ppx_minidebug ppx_sexp_conv))^^^^^^^^^^^^^Error: Library "ppx_sexp_conv" not found.-> required by _build/default/arrayjit/bin/read_config.exe-> required by %{dep:../../../arrayjit/bin/read_config.exe} attest/operations/dune:17-> required by _build/default/test/operations/config/ocannl_backend.txt-> required by %{read:config/ocannl_backend.txt} at test/operations/dune:33-> required by Computing directory contents of _build/default/test/operationsFile "arrayjit/bin/dune", line 6, characters 7-15:6 | (pps ppx_here ppx_minidebug ppx_sexp_conv))^^^^^^^^Error: Library "ppx_here" not found.-> required by _build/default/arrayjit/bin/.merlin-conf/exe-read_config-> required by _build/default/arrayjit/bin/read_config.exe-> required by %{dep:../../../arrayjit/bin/read_config.exe} attest/operations/dune:17-> required by _build/default/test/operations/config/ocannl_backend.txt-> required by %{read:config/ocannl_backend.txt} at test/operations/dune:33-> required by Computing directory contents of _build/default/test/operationsFile "test/training/bigram.ml", line 1, characters 0-0:diff --git a/_build/default/test/training/bigram.ml b/_build/default/test/training/.formatted/bigram.mlindex 67302b7..fff007a 100644--- a/_build/default/test/training/bigram.ml+++ b/_build/default/test/training/.formatted/bigram.ml@@ -79,12 +79,12 @@ let () =Train.run sgd_step;let loss = batch_loss.@[0] inepoch_loss := !epoch_loss +. loss;- if batch % 100 = 0 then Stdio.printf "Epoch %d, batch %d, loss=%.5g\n%!" epoch batch loss;+ if batch % 100 = 0 then Stdio.printf "Epoch %d, batch %d, loss=%.5g\n%!" epoch batch lossdone;Stdio.printf "Epoch %d, epoch loss=%.5g\n%!" epoch !epoch_lossdone;- (* Train.printf_tree batch_loss; *)+ (* Train.printf_tree batch_loss; *)let counter_n, bindings = IDX.get_static_symbol IDX.empty inlet%cd infer_probs = mlp "cha" inlet%cd infer_step =File "test/training/moons_demo_parallel.ml", line 1, characters 0-0:diff --git a/_build/default/test/training/moons_demo_parallel.ml b/_build/default/test/training/.formatted/moons_demo_parallel.mlindex 1437435..a71f1ae 100644--- a/_build/default/test/training/moons_demo_parallel.ml+++ b/_build/default/test/training/.formatted/moons_demo_parallel.ml@@ -41,10 +41,10 @@ let main () =let per_batch_callback ~at_batch:_ ~at_step:_ ~learning_rate:_ ~batch_loss:_ ~epoch_loss:_ = () in(* Tn.print_accessible_headers (); *)let per_epoch_callback ~at_step:_ ~at_epoch ~learning_rate ~epoch_loss =- if at_epoch = epochs - 5 then Stdio.printf "\n%!";+ if at_epoch = epochs - 5 then Stdio.printf "\n%!";if at_epoch < 10 thenStdio.printf "Epoch=%d, lr=%f, loss=%.5g\n%!" at_epoch learning_rate epoch_loss;- if at_epoch > 10 && at_epoch % 10 = 0 then Stdio.printf ".%!";+ if at_epoch > 10 && at_epoch % 10 = 0 then Stdio.printf ".%!"inlet {Train.inputs;@@ -96,13 +96,7 @@ let main () =Stdio.printf "\nEpoch loss:\n%!";let plot_loss =PrintBox_utils.plot ~x_label:"step" ~y_label:"epoch loss"- [- Line_plot- {- points = Array.of_list_rev rev_epoch_losses;- content = PrintBox.line "-";- };- ]+ [ Line_plot { points = Array.of_list_rev rev_epoch_losses; content = PrintBox.line "-" } ]inPrintBox_text.output Stdio.stdout plot_lossFile "test/training/moons_demo.ml", line 1, characters 0-0:diff --git a/_build/default/test/training/moons_demo.ml b/_build/default/test/training/.formatted/moons_demo.mlindex 8aee478..0ce421e 100644--- a/_build/default/test/training/moons_demo.ml+++ b/_build/default/test/training/.formatted/moons_demo.ml@@ -60,12 +60,12 @@ let main () =let epoch_loss = ref 0. inTrain.sequential_loop sgd_routine.bindings ~f:(fun () ->Train.run sgd_routine;- let batch_ref = IDX.find_exn sgd_routine.bindings batch_n in+ let batch_ref = IDX.find_exn sgd_routine.bindings batch_n inepoch_loss := !epoch_loss +. scalar_loss.@[0];- if !step_ref = steps - 5 then Stdio.printf "\n%!";+ if !step_ref = steps - 5 then Stdio.printf "\n%!";if !step_ref < 10 then- Stdio.printf "Epoch=%d, step=%d, batch=%d, lr=%f, loss=%.5g, epoch loss=%.5g\n%!"- epoch !step_ref !batch_ref learning_rate.@[0] scalar_loss.@[0] !epoch_loss;+ Stdio.printf "Epoch=%d, step=%d, batch=%d, lr=%f, loss=%.5g, epoch loss=%.5g\n%!" epoch+ !step_ref !batch_ref learning_rate.@[0] scalar_loss.@[0] !epoch_loss;if !step_ref > 10 && !step_ref % 100 = 0 then Stdio.printf ".%!";learning_rates := ~-.(learning_rate.@[0]) :: !learning_rates;losses := scalar_loss.@[0] :: !losses;File "lib/tensor.mli", line 1, characters 0-0:diff --git a/_build/default/lib/tensor.mli b/_build/default/lib/.formatted/tensor.mliindex 6fec83d..82bb407 100644--- a/_build/default/lib/tensor.mli+++ b/_build/default/lib/.formatted/tensor.mli@@ -51,8 +51,8 @@ val init_params : ?skip:'a Map.M(Ir.Tnode).t -> t -> comp(** [init_params ?skip t] collects into a single sequence the {!field:forward} code of [t.params],and transitively the initializations of the parameters of the parameters. If [skip] is provided,it is used to filter out the parameters belonging to [skip] (e.g. [skip] can be a set of- parameters that are already initialized). NOTE: it always outputs code with a block comment, even- if the params set is empty. *)+ parameters that are already initialized). NOTE: it always outputs code with a block comment,+ even if the params set is empty. *)val is_fwd_root : t -> boolval remove_fwd_root : t -> unitdune build @fmt failed"/usr/bin/env" "bash" "-c" "opam exec -- dune build @fmt --ignore-promoted-rules || (echo "dune build @fmt failed"; exit 2)" failed with exit status 22025-08-16 20:25.36: Job failed: Failed: Build failed