Organisationsahrefsocannleaa8bf ()(lint-fmt)

(lint-fmt)

Link Copied
Code Copied

Logs

2025-08-19 12:48.57: New job: test ahrefs/ocannl https://github.com/ahrefs/ocannl.git#refs/heads/master (eaa8bf13c7b09715458683c2142fe55250e6b9c4) (linux-x86_64:(lint-fmt))
Base: ocaml/opam:debian-12-ocaml-4.08@sha256:474656ea1593a299054f8966c700443fa0944c9534de3da94ca6dfab4a44c47a
ocamlformat 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 eaa8bf13
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-12-ocaml-4.08@sha256:474656ea1593a299054f8966c700443fa0944c9534de3da94ca6dfab4a44c47a
USER 1000:1000
RUN 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 opam depext -i dune
WORKDIR /src
RUN opam depext -i ocamlformat=0.27.0
COPY --chown=1000:1000 . /src/
RUN opam exec -- dune build @fmt --ignore-promoted-rules || (echo "dune build @fmt failed"; exit 2)


END-OF-DOCKERFILE
docker build .
END-REPRO-BLOCK


2025-08-19 12:48.57: 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-19 12:48.57: 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-19 12:48.57: Waiting for resource in pool OCluster
2025-08-19 12:48.58: Waiting for worker…
2025-08-19 12:51.37: Got resource from pool OCluster
Building on eumache
HEAD is now at a93783f7 pprint package lower bound
HEAD is now at eaa8bf13 Try increasing timeout limit aggain, message waiting


(from ocaml/opam:debian-12-ocaml-4.08@sha256:474656ea1593a299054f8966c700443fa0944c9534de3da94ca6dfab4a44c47a)
2025-08-19 12:51.38 ---> 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] Initialised
default (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 environment
2025-08-19 12:51.38 ---> 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 packages
The 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.1
Done.
# Run eval $(opam env) to update the current shell environment
2025-08-19 12:51.38 ---> 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 packages
The 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.0
Done.


<><> 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 environment
2025-08-19 12:51.38 ---> using "86ec8dcb8046a1e5dacfb1841e8c026d30cfead67649bcb6d6a8f9ddd6fb153d" from cache


/src: (copy (src .) (dst /src/))
2025-08-19 12:51.38 ---> saved as "db8490b6e7ddf36c28215ba263b96367bda69a9f701b6715c9f9bee61630e79d"


/src: (run (shell "opam exec -- dune build @fmt --ignore-promoted-rules || (echo \"dune build @fmt failed\"; exit 2)"))
File "arrayjit/bin/dune", line 8, characters 30-43:
8 |   (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} at
test/operations/dune:17
-> required by _build/default/test/operations/config/ocannl_backend.txt
-> required by %{read:config/ocannl_backend.txt} at test/operations/dune:23
-> required by Computing directory contents of _build/default/test/operations
File "arrayjit/bin/dune", line 8, characters 7-15:
8 |   (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} at
test/operations/dune:17
-> required by _build/default/test/operations/config/ocannl_backend.txt
-> required by %{read:config/ocannl_backend.txt} at test/operations/dune:23
-> required by Computing directory contents of _build/default/test/operations
File "arrayjit/lib/builtins_cc.ml", line 1, characters 0-0:
diff --git a/_build/default/arrayjit/lib/builtins_cc.ml b/_build/default/arrayjit/lib/.formatted/builtins_cc.ml
index 4b4ebb7..ce3518e 100644
--- a/_build/default/arrayjit/lib/builtins_cc.ml
+++ b/_build/default/arrayjit/lib/.formatted/builtins_cc.ml
@@ -676,4 +676,4 @@ uint8_t single_to_fp8(float f)


return (uint8_t)((sign << 7) | ((exp & 0x1F) << 2) | (mant_bits & 0x3));
}
-|}
\ No newline at end of file
+|}
File "datasets/dataset_utils.ml", line 1, characters 0-0:
diff --git a/_build/default/datasets/dataset_utils.ml b/_build/default/datasets/.formatted/dataset_utils.ml
index 3848409..3c13667 100644
--- a/_build/default/datasets/dataset_utils.ml
+++ b/_build/default/datasets/.formatted/dataset_utils.ml
@@ -6,21 +6,27 @@ let mkdir_p path perm =
if path = "" || path = "." || path = Filename.dir_sep then ()
else
(* Handle Windows drive letters specially *)
-    let path_to_split, _is_absolute, initial_prefix =
+    let path_to_split, _is_absolute, initial_prefix =
if (Sys.win32 || Sys.cygwin) && String.length path >= 2 && path.[1] = ':' then
(* Windows path with drive letter like C:\path or C:/path *)
-        let drive_prefix = (String.sub path 0 2) ^ Filename.dir_sep in
-        let rest = if String.length path > 3 then String.sub path 3 (String.length path - 3) else "" in
-        rest, true, drive_prefix
+        let drive_prefix = String.sub path 0 2 ^ Filename.dir_sep in
+        let rest =
+          if String.length path > 3 then String.sub path 3 (String.length path - 3) else ""
+        in
+        (rest, true, drive_prefix)
else if path <> "" && path.[0] = Filename.dir_sep.[0] then
(* Absolute path starting with separator *)
-        let rest = if String.length path > 1 then String.sub path 1 (String.length path - 1) else "" in
-        rest, true, Filename.dir_sep
+        let rest =
+          if String.length path > 1 then String.sub path 1 (String.length path - 1) else ""
+        in
+        (rest, true, Filename.dir_sep)
else
(* Relative path *)
-        path, false, "."
+        (path, false, ".")
+    in
+    let components =
+      String.split_on_char Filename.dir_sep.[0] path_to_split |> List.filter (( <> ) "")
in
-    let components = String.split_on_char Filename.dir_sep.[0] path_to_split |> List.filter (( <> ) "") in


ignore
(List.fold_left
@@ -52,22 +58,20 @@ let mkdir_p path perm =
()


module Xdg = struct
-  let home =
+  let home =
if Sys.win32 || Sys.cygwin then
-      try Sys.getenv "USERPROFILE"
-      with Not_found ->
-        try Sys.getenv "HOMEPATH"
-        with Not_found -> failwith "Neither USERPROFILE nor HOMEPATH environment variables are set."
-    else
-      try Sys.getenv "HOME"
-      with Not_found -> failwith "HOME environment variable not set."
-
-  let cache_base =
+      try Sys.getenv "USERPROFILE"
+      with Not_found -> (
+        try Sys.getenv "HOMEPATH"
+        with Not_found ->
+          failwith "Neither USERPROFILE nor HOMEPATH environment variables are set.")
+    else try Sys.getenv "HOME" with Not_found -> failwith "HOME environment variable not set."
+
+  let cache_base =
let sep = Filename.dir_sep in
if Sys.win32 || Sys.cygwin then
home ^ sep ^ "AppData" ^ sep ^ "Local" ^ sep ^ "ocannl" ^ sep ^ "datasets" ^ sep
-    else
-      home ^ sep ^ ".cache" ^ sep ^ "ocannl" ^ sep ^ "datasets" ^ sep
+    else home ^ sep ^ ".cache" ^ sep ^ "ocannl" ^ sep ^ "datasets" ^ sep
end


let get_cache_dir dataset_name = Xdg.cache_base ^ dataset_name ^ Filename.dir_sep
@@ -122,40 +126,44 @@ let ensure_extracted_archive ~url ~archive_path ~extract_dir ~check_file =
mkdir_p extract_dir;
Printf.printf "Extracting %s to %s ...\n%!" archive_path extract_dir;
(* Basic support for tar.gz *)
-    if Filename.check_suffix archive_path ".tar.gz" then (
+    if Filename.check_suffix archive_path ".tar.gz" then
(* Try different extraction methods based on platform *)
-      let extract_success =
-        if Sys.win32 || Sys.cygwin then
+      let extract_success =
+        if Sys.win32 || Sys.cygwin then (
(* On Windows, try to use tar.exe if available (Windows 10+), otherwise fail gracefully *)
-          let command =
-            Printf.sprintf "tar.exe -xzf %s -C %s"
-              (Filename.quote archive_path) (Filename.quote extract_dir)
+          let command =
+            Printf.sprintf "tar.exe -xzf %s -C %s" (Filename.quote archive_path)
+              (Filename.quote extract_dir)
in
Printf.printf "Executing: %s\n%!" command;
try
let exit_code = Unix.system command in
-            if exit_code = Unix.WEXITED 0 then
-              (Printf.printf "Extracted archive successfully using tar.exe.\n%!";
-               true)
-            else
-              (Printf.printf "tar.exe failed, trying alternative methods...\n%!";
-               false)
-          with _ ->
-            (Printf.printf "tar.exe not available on this Windows system.\n%!";
-             false)
+            if exit_code = Unix.WEXITED 0 then (
+              Printf.printf "Extracted archive successfully using tar.exe.\n%!";
+              true)
+            else (
+              Printf.printf "tar.exe failed, trying alternative methods...\n%!";
+              false)
+          with _ ->
+            Printf.printf "tar.exe not available on this Windows system.\n%!";
+            false)
else
(* On Unix-like systems, use standard tar command *)
let command =
-            Printf.sprintf "tar xzf %s -C %s"
-              (Filename.quote archive_path) (Filename.quote extract_dir)
+            Printf.sprintf "tar xzf %s -C %s" (Filename.quote archive_path)
+              (Filename.quote extract_dir)
in
Printf.printf "Executing: %s\n%!" command;
let exit_code = Unix.system command in
exit_code = Unix.WEXITED 0
in
if not extract_success then
-        failwith (Printf.sprintf "Archive extraction failed for %s. On Windows, ensure tar.exe is available (Windows 10+) or extract manually." archive_path)
-      else Printf.printf "Archive extracted successfully.\n%!")
+        failwith
+          (Printf.sprintf
+             "Archive extraction failed for %s. On Windows, ensure tar.exe is available (Windows \
+              10+) or extract manually."
+             archive_path)
+      else Printf.printf "Archive extracted successfully.\n%!"
else failwith (Printf.sprintf "Unsupported archive type for %s (only .tar.gz)" archive_path);


if not (Sys.file_exists check_file_full_path) then
File "arrayjit/lib/c_syntax.ml", line 1, characters 0-0:
diff --git a/_build/default/arrayjit/lib/c_syntax.ml b/_build/default/arrayjit/lib/.formatted/c_syntax.ml
index c0e7d67..a1dc289 100644
--- a/_build/default/arrayjit/lib/c_syntax.ml
+++ b/_build/default/arrayjit/lib/.formatted/c_syntax.ml
@@ -92,7 +92,6 @@ struct
let buffer_suffix = fun ~pos:_ -> ""
let arg_int_prefix = "const int "
let extra_args = []
-
let typ_of_prec = Ops.c_typ_of_prec
let vec_typ_of_prec = Ops.c_vec_typ_of_prec
let float_log_style = if Input.full_printf_support then "%g" else "%de-3"
@@ -232,6 +231,7 @@ module C_syntax (B : C_syntax_config) = struct
@@ Array.map B.procs ~f:(fun l -> l.llc)


let in_ctx tn = B.(Tn.is_in_context_force ~use_host_memory tn 46)
+
open Indexing
open Doc_helpers


File "arrayjit/lib/cuda_backend.ml", line 1, characters 0-0:
diff --git a/_build/default/arrayjit/lib/cuda_backend.ml b/_build/default/arrayjit/lib/.formatted/cuda_backend.ml
index a26c366..b215f9a 100644
--- a/_build/default/arrayjit/lib/cuda_backend.ml
+++ b/_build/default/arrayjit/lib/.formatted/cuda_backend.ml
@@ -142,14 +142,16 @@ end) : Ir.Backend_impl.Lowered_backend = struct
let cuda_include_opt =
match Sys.getenv "CUDA_PATH" with
| Some cuda_path -> [ "-I" ^ cuda_path ^ "/include" ]
-      | None -> (
-          (* Fallback to common location if CUDA_PATH is not set *)
-          if Stdlib.Sys.file_exists "/usr/local/cuda/include" then [ "-I/usr/local/cuda/include" ]
-          else [])
+      | None ->
+          if
+            (* Fallback to common location if CUDA_PATH is not set *)
+            Stdlib.Sys.file_exists "/usr/local/cuda/include"
+          then [ "-I/usr/local/cuda/include" ]
+          else []
in
let options =
-      cuda_include_opt @ ("--use_fast_math"
-      :: (if Utils.with_runtime_debug () then [ "--device-debug" ] else []))
+      cuda_include_opt
+      @ ("--use_fast_math" :: (if Utils.with_runtime_debug () then [ "--device-debug" ] else []))
in
(* FIXME: every now and then the compilation crashes because the options are garbled. *)
(* Stdio.printf "PTX options %s\n%!" @@ String.concat ~sep:", " options; *)
@@ -689,7 +691,6 @@ end) : Ir.Backend_impl.Lowered_backend = struct
| FMA, Ops.Single_prec _ -> func "fmaf"
| FMA, _ -> func "fma"


-
let convert_precision ~from ~to_ =
match (from, to_) with
| Ops.Double_prec _, Ops.Double_prec _
dune 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 2
2025-08-19 12:51.39: Job failed: Failed: Build failed