Organisationsocaml-multicorepicos108a96 ()(lint-fmt)

(lint-fmt)

Link Copied
Code Copied

Logs

2025-10-31 07:57.42: New job: test ocaml-multicore/picos https://github.com/ocaml-multicore/picos.git#refs/heads/adaptive-bo-mpmcq (108a9608d3bd4f6451ec0b1d8f5c171d0608fc43) (linux-x86_64:(lint-fmt))
Base: ocaml/opam:debian-13-ocaml-4.08@sha256:d8500c15c97ddcfabe40e74b26beae4dbdf65385f70ca81d97f44f1a6556480f
ocamlformat version: version 0.28.1 (from opam)


To reproduce locally:


git clone --recursive "https://github.com/ocaml-multicore/picos.git" -b "adaptive-bo-mpmcq" && cd "picos" && git reset --hard 108a9608
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-13-ocaml-4.08@sha256:d8500c15c97ddcfabe40e74b26beae4dbdf65385f70ca81d97f44f1a6556480f
USER 1000:1000
RUN cd ~/opam-repository && (git cat-file -e 6c1b38620288b5bf349067f089a7b1fc91185d94 || git fetch origin master) && git reset -q --hard 6c1b38620288b5bf349067f089a7b1fc91185d94 && git log --no-decorate -n1 --oneline && opam update -u
RUN opam depext -i dune
WORKDIR /src
RUN opam depext -i ocamlformat=0.28.1
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-10-31 07:57.42: Using cache hint "ocaml-multicore/picos-ocaml/opam:debian-13-ocaml-4.08@sha256:d8500c15c97ddcfabe40e74b26beae4dbdf65385f70ca81d97f44f1a6556480f-debian-13-4.08_opam-2.4-ocamlformat-6c1b38620288b5bf349067f089a7b1fc91185d94"
2025-10-31 07:57.42: Using OBuilder spec:
((from ocaml/opam:debian-13-ocaml-4.08@sha256:d8500c15c97ddcfabe40e74b26beae4dbdf65385f70ca81d97f44f1a6556480f)
(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 6c1b38620288b5bf349067f089a7b1fc91185d94 || git fetch origin master) && git reset -q --hard 6c1b38620288b5bf349067f089a7b1fc91185d94 && 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.28.1"))
(copy (src .) (dst /src/))
(run (shell "opam exec -- dune build @fmt --ignore-promoted-rules || (echo \"dune build @fmt failed\"; exit 2)"))
)


2025-10-31 07:57.42: Waiting for resource in pool OCluster
2025-10-31 07:57.42: Waiting for worker…
2025-10-31 07:57.42: Got resource from pool OCluster
Building on eumache
All commits already cached
HEAD is now at 108a960 Use adaptive backoff in mpmcq


(from ocaml/opam:debian-13-ocaml-4.08@sha256:d8500c15c97ddcfabe40e74b26beae4dbdf65385f70ca81d97f44f1a6556480f)
2025-10-31 07:57.43 ---> using "8a3fb29dc134ae8cb5011e033937cdf0919031452506a2a7eeab7ea43cc7fe2e" 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 6c1b38620288b5bf349067f089a7b1fc91185d94 || git fetch origin master) && git reset -q --hard 6c1b38620288b5bf349067f089a7b1fc91185d94 && git log --no-decorate -n1 --oneline && opam update -u"))
From https://github.com/ocaml/opam-repository
* branch                  master     -> FETCH_HEAD
1abfcdbf14..263b2e6219  master     -> origin/master
6c1b386202 Merge pull request #28774 from Julow/release-ocamlformat-0.28.1


<><> 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-10-31 07:57.43 ---> using "14a945a064d34712b631e499746c8512ffc2dfe42d633eac294155386c7d69ac" 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.20.2


<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[dune.3.20.2] found in cache


<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> installed dune.3.20.2
Done.
# Run eval $(opam env) to update the current shell environment
2025-10-31 07:57.43 ---> using "775944436afef22d875e8871d5f4f1d050a712cc7095353a89b9795804f25edd" from cache


/: (workdir /src)


/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam depext -i ocamlformat=0.28.1"))
# 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 ocamlbuild        0.16.1   [required by fpath, astring, uuseg]
- install either            1.0.0    [required by ocamlformat-lib]
- install menhirLib         20250912 [required by ocamlformat-lib]
- install csexp             1.5.2    [required by ocamlformat]
- install camlp-streams     5.0.1    [required by ocamlformat-lib]
- install seq               base     [required by re]
- install menhirSdk         20250912 [required by ocamlformat-lib]
- install fix               20250919 [required by ocamlformat-lib]
- install menhirCST         20250912 [required by menhir]
- install ocamlfind         1.9.8    [required by ocp-indent, astring, fpath, uuseg]
- install dune-build-info   3.20.2   [required by ocamlformat-lib]
- install cmdliner          2.0.0    [required by ocamlformat]
- install ocaml-version     4.0.3    [required by ocamlformat-lib]
- install dune-configurator 3.20.2   [required by base]
- install re                1.11.0   [required by ocamlformat]
- install menhir            20250912 [required by ocamlformat-lib]
- install topkg             1.1.0    [required by fpath, astring, uuseg]
- install ocp-indent        1.9.0    [required by ocamlformat-lib]
- 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 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.28.1   [required by ocamlformat]
- install ocamlformat       0.28.1
===== 28 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.2.0.0] found in cache
[csexp.1.5.2] found in cache
[dune-build-info.3.20.2] found in cache
[dune-configurator.3.20.2] found in cache
[either.1.0.0] found in cache
[fix.20250919] found in cache
[fpath.0.7.3] found in cache
[menhir.20250912] found in cache
[menhirCST.20250912] found in cache
[menhirLib.20250912] found in cache
[menhirSdk.20250912] found in cache
[ocaml-version.4.0.3] found in cache
[ocamlbuild.0.16.1] found in cache
[ocamlfind.1.9.8] found in cache
[ocamlformat.0.28.1] found in cache
[ocamlformat-lib.0.28.1] found in cache
[ocp-indent.1.9.0] 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.20250919
-> installed menhirCST.20250912
-> installed menhirLib.20250912
-> installed menhirSdk.20250912
-> installed ocaml-version.4.0.3
-> installed sexplib0.v0.14.0
-> installed re.1.11.0
-> installed cmdliner.2.0.0
-> installed dune-build-info.3.20.2
-> installed dune-configurator.3.20.2
-> installed ocamlfind.1.9.8
-> installed ocp-indent.1.9.0
-> 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 menhir.20250912
-> installed fpath.0.7.3
-> installed uucp.15.0.0
-> installed uuseg.15.0.0
-> installed ocamlformat-lib.0.28.1
-> installed ocamlformat.0.28.1
Done.


<><> ocp-indent.1.9.0 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-10-31 07:57.43 ---> using "1108d0478a8cf00251254042bd4c10cc2aa664b7db87eec561d4d50aaa38cd9f" from cache


/src: (copy (src .) (dst /src/))
2025-10-31 07:57.43 ---> saved as "97c4fdd6ad1831a2b5cb4486366a4be88378082249335169409928eab8c22b13"


/src: (run (shell "opam exec -- dune build @fmt --ignore-promoted-rules || (echo \"dune build @fmt failed\"; exit 2)"))
File "lib/picos_io.thread_atomic/picos_io_thread_atomic.ml", line 1, characters 0-0:
diff --git a/_build/default/lib/picos_io.thread_atomic/picos_io_thread_atomic.ml b/_build/default/lib/picos_io.thread_atomic/.formatted/picos_io_thread_atomic.ml
index c91913c..01644d9 100644
--- a/_build/default/lib/picos_io.thread_atomic/picos_io_thread_atomic.ml
+++ b/_build/default/lib/picos_io.thread_atomic/.formatted/picos_io_thread_atomic.ml
@@ -1,9 +1,9 @@
let[@poll error] [@inline never] compare_and_set x before after =
!x == before
&& begin
-       x := after;
-       true
-     end
+    x := after;
+    true
+  end


let[@poll error] [@inline never] exchange x after =
let before = !x in
File "lib/picos.domain/picos_domain.ocaml4.ml", line 1, characters 0-0:
diff --git a/_build/default/lib/picos.domain/picos_domain.ocaml4.ml b/_build/default/lib/picos.domain/.formatted/picos_domain.ocaml4.ml
index 5030183..7fa5d6e 100644
--- a/_build/default/lib/picos.domain/picos_domain.ocaml4.ml
+++ b/_build/default/lib/picos.domain/.formatted/picos_domain.ocaml4.ml
@@ -11,9 +11,9 @@ module DLS = struct
let[@poll error] [@inline never] compare_and_set key before after =
!key == before
&& begin
-         key := after;
-         true
-       end
+      key := after;
+      true
+    end


let rec get key =
match !key with
File "lib/picos_mux.fifo/picos_mux_fifo.ml", line 1, characters 0-0:
diff --git a/_build/default/lib/picos_mux.fifo/picos_mux_fifo.ml b/_build/default/lib/picos_mux.fifo/.formatted/picos_mux_fifo.ml
index 6832aba..96640c6 100644
--- a/_build/default/lib/picos_mux.fifo/picos_mux_fifo.ml
+++ b/_build/default/lib/picos_mux.fifo/.formatted/picos_mux_fifo.ml
@@ -156,10 +156,9 @@ let run_fiber ?quota ?fatal_exn_handler fiber main =
Atomic.get t.needs_wakeup
&& Atomic.compare_and_set t.needs_wakeup true false
then begin
-        begin
-          match Mutex.lock t.mutex with
-          | () -> Mutex.unlock t.mutex
-          | exception Sys_error _ -> ()
+        begin match Mutex.lock t.mutex with
+        | () -> Mutex.unlock t.mutex
+        | exception Sys_error _ -> ()
end;
Condition.broadcast t.condition
end);
File "lib/picos_aux.htbl/picos_aux_htbl.ml", line 1, characters 0-0:
diff --git a/_build/default/lib/picos_aux.htbl/picos_aux_htbl.ml b/_build/default/lib/picos_aux.htbl/.formatted/picos_aux_htbl.ml
index df9430c..28a873f 100644
--- a/_build/default/lib/picos_aux.htbl/picos_aux_htbl.ml
+++ b/_build/default/lib/picos_aux.htbl/.formatted/picos_aux_htbl.ml
@@ -146,15 +146,14 @@ let rec copy_all r target i t step =
[compare_and_set] below does not disrupt the next resize. *)
Atomic.get t == r
&& begin
-       begin
-         match before with
-         | Resize _ ->
-             Atomic_array.unsafe_compare_and_set target i (B before) (B spine)
-             |> ignore
-         | Nil | Cons _ -> ()
-       end;
-       i = 0 || copy_all r target i t step
-     end
+    begin match before with
+    | Resize _ ->
+        Atomic_array.unsafe_compare_and_set target i (B before) (B spine)
+        |> ignore
+    | Nil | Cons _ -> ()
+    end;
+    i = 0 || copy_all r target i t step
+  end


(* *)


@@ -179,24 +178,21 @@ let rec split_all r target i t step =
resize. *)
Atomic.get t == r
&& begin
-       begin
-         match before_lo with
-         | Resize _ ->
-             Atomic_array.unsafe_compare_and_set target i (B before_lo)
-               (B after_lo)
-             |> ignore
-         | Nil | Cons _ -> ()
-       end;
-       begin
-         match before_hi with
-         | Resize _ ->
-             Atomic_array.unsafe_compare_and_set target (i + high) (B before_hi)
-               (B after_hi)
-             |> ignore
-         | Nil | Cons _ -> ()
-       end;
-       i = 0 || split_all r target i t step
-     end
+    begin match before_lo with
+    | Resize _ ->
+        Atomic_array.unsafe_compare_and_set target i (B before_lo) (B after_lo)
+        |> ignore
+    | Nil | Cons _ -> ()
+    end;
+    begin match before_hi with
+    | Resize _ ->
+        Atomic_array.unsafe_compare_and_set target (i + high) (B before_hi)
+          (B after_hi)
+        |> ignore
+    | Nil | Cons _ -> ()
+    end;
+    i = 0 || split_all r target i t step
+  end


(* *)


@@ -217,15 +213,14 @@ let rec merge_all r target i t step =
[compare_and_set] below does not disrupt the next resize. *)
Atomic.get t == r
&& begin
-       begin
-         match before with
-         | Resize _ ->
-             Atomic_array.unsafe_compare_and_set target i (B before) (B after)
-             |> ignore
-         | Nil | Cons _ -> ()
-       end;
-       i = 0 || merge_all r target i t step
-     end
+    begin match before with
+    | Resize _ ->
+        Atomic_array.unsafe_compare_and_set target i (B before) (B after)
+        |> ignore
+    | Nil | Cons _ -> ()
+    end;
+    i = 0 || merge_all r target i t step
+  end


(* *)


@@ -277,9 +272,9 @@ let[@inline never] try_resize t r new_capacity ~clear =
let new_r = { r with pending = Resize { buckets; non_linearizable_size } } in
Atomic.compare_and_set t r new_r
&& begin
-       finish t new_r |> ignore;
-       true
-     end
+    finish t new_r |> ignore;
+    true
+  end


(** This only gives an "estimate" of the size, which can be off by one or more
and even be negative, so this must be used with care. *)
File "lib/picos_mux.random/picos_mux_random.ml", line 1, characters 0-0:
diff --git a/_build/default/lib/picos_mux.random/picos_mux_random.ml b/_build/default/lib/picos_mux.random/.formatted/picos_mux_random.ml
index 4255b48..23ff463 100644
--- a/_build/default/lib/picos_mux.random/picos_mux_random.ml
+++ b/_build/default/lib/picos_mux.random/.formatted/picos_mux_random.ml
@@ -325,18 +325,16 @@ let rec run_fiber_on n fiber main runner_main context =
in
match run_fiber_on (n - 1) fiber main runner_main context with
| result ->
-        begin
-          match Domain.join runner with
-          | None -> ()
-          | Some (exn, bt) -> Printexc.raise_with_backtrace exn bt
+        begin match Domain.join runner with
+        | None -> ()
+        | Some (exn, bt) -> Printexc.raise_with_backtrace exn bt
end;
result
| exception exn ->
let bt = Printexc.get_raw_backtrace () in
-        begin
-          match Domain.join runner with
-          | None -> ()
-          | Some (exn, bt) -> Printexc.raise_with_backtrace exn bt
+        begin match Domain.join runner with
+        | None -> ()
+        | Some (exn, bt) -> Printexc.raise_with_backtrace exn bt
end;
Printexc.raise_with_backtrace exn bt


File "lib/picos_io.select/picos_io_select.ml", line 1, characters 0-0:
diff --git a/_build/default/lib/picos_io.select/picos_io_select.ml b/_build/default/lib/picos_io.select/.formatted/picos_io_select.ml
index 2b0c7d2..4a69f48 100644
--- a/_build/default/lib/picos_io.select/picos_io_select.ml
+++ b/_build/default/lib/picos_io.select/.formatted/picos_io_select.ml
@@ -137,9 +137,9 @@ let key =
let[@poll error] [@inline never] try_transition s from into =
s.state == from
&& begin
-       s.state <- into;
-       true
-     end
+    s.state <- into;
+    true
+  end


let[@poll error] [@inline never] transition s into =
let from = s.state in
@@ -282,16 +282,15 @@ let select_thread s =
[ Sys.sigchld ]
|> ignore
end;
-  begin
-    try
-      let pipe_inn, pipe_out = Unix.pipe ~cloexec:true () in
-      s.pipe_inn <- pipe_inn;
-      s.pipe_out <- pipe_out;
-      if try_transition s `Starting `Alive then
-        select_thread s (-1.0) fos_empty fos_empty fos_empty
-    with exn ->
-      let bt = Printexc.get_raw_backtrace () in
-      s.exn_bt <- (exn, bt)
+  begin try
+    let pipe_inn, pipe_out = Unix.pipe ~cloexec:true () in
+    s.pipe_inn <- pipe_inn;
+    s.pipe_out <- pipe_out;
+    if try_transition s `Starting `Alive then
+      select_thread s (-1.0) fos_empty fos_empty fos_empty
+  with exn ->
+    let bt = Printexc.get_raw_backtrace () in
+    s.exn_bt <- (exn, bt)
end;
transition s `Stopped |> ignore;
if s.pipe_inn != Unix.stdin then Unix.close s.pipe_inn;
@@ -301,13 +300,13 @@ let[@poll error] [@inline never] try_configure ~intr_sig ~intr_sigs
~handle_sigchld ~ignore_sigpipe =
config.intr_sigs == []
&& begin
-       config.bits <-
-         Bool.to_int handle_sigchld
-         lor (ignore_sigpipe_bit land -Bool.to_int ignore_sigpipe);
-       config.intr_sig <- intr_sig;
-       config.intr_sigs <- intr_sigs;
-       true
-     end
+    config.bits <-
+      Bool.to_int handle_sigchld
+      lor (ignore_sigpipe_bit land -Bool.to_int ignore_sigpipe);
+    config.intr_sig <- intr_sig;
+    config.intr_sigs <- intr_sigs;
+    true
+  end


let is_intr_sig signum = signum = config.intr_sig


@@ -485,12 +484,11 @@ module Intr = struct
(* [intr_pending] must be read before [r.unused]! *)
r.unused && before.req != R req
&& begin
-         use before.req;
-         let after = { value = before.value + 1; req = R req } in
-         if Atomic.compare_and_set intr_pending before after then
-           after.value = 1
-         else incr_once req (Backoff.once backoff)
-       end
+      use before.req;
+      let after = { value = before.value + 1; req = R req } in
+      if Atomic.compare_and_set intr_pending before after then after.value = 1
+      else incr_once req (Backoff.once backoff)
+    end


let intr_action trigger (Req r as req : [ `Req ] tdt) id =
match Computation.peek_exn r.computation with
File "lib/picos_mux.multififo/picos_mux_multififo.ml", line 1, characters 0-0:
diff --git a/_build/default/lib/picos_mux.multififo/picos_mux_multififo.ml b/_build/default/lib/picos_mux.multififo/.formatted/picos_mux_multififo.ml
index 6e87196..0de4306 100644
--- a/_build/default/lib/picos_mux.multififo/picos_mux_multififo.ml
+++ b/_build/default/lib/picos_mux.multififo/.formatted/picos_mux_multififo.ml
@@ -543,18 +543,16 @@ let rec run_fiber_on n fiber main runner_main context =
in
match run_fiber_on (n - 1) fiber main runner_main context with
| result ->
-        begin
-          match Domain.join runner with
-          | None -> ()
-          | Some (exn, bt) -> Printexc.raise_with_backtrace exn bt
+        begin match Domain.join runner with
+        | None -> ()
+        | Some (exn, bt) -> Printexc.raise_with_backtrace exn bt
end;
result
| exception exn ->
let bt = Printexc.get_raw_backtrace () in
-        begin
-          match Domain.join runner with
-          | None -> ()
-          | Some (exn, bt) -> Printexc.raise_with_backtrace exn bt
+        begin match Domain.join runner with
+        | None -> ()
+        | Some (exn, bt) -> Printexc.raise_with_backtrace exn bt
end;
Printexc.raise_with_backtrace exn bt


File "lib/picos/picos.ocaml5.ml", line 1, characters 0-0:
diff --git a/_build/default/lib/picos/picos.ocaml5.ml b/_build/default/lib/picos/.formatted/picos.ocaml5.ml
index 7b5798d..d1afd4f 100644
--- a/_build/default/lib/picos/picos.ocaml5.ml
+++ b/_build/default/lib/picos/.formatted/picos.ocaml5.ml
@@ -139,14 +139,13 @@ module Computation = struct
let rec rollback tx = function
| Nil -> true
| Completion r -> begin
-            begin
-              match Atomic.get r.computation with
-              | ( S (Canceled { tx = previous_tx; _ })
-                | S (Returned { tx = previous_tx; _ }) ) as before ->
-                  if tx == previous_tx then
-                    Atomic.compare_and_set r.computation before (S r.before)
-                    |> ignore
-              | S (Continue _) -> ()
+            begin match Atomic.get r.computation with
+            | ( S (Canceled { tx = previous_tx; _ })
+              | S (Returned { tx = previous_tx; _ }) ) as before ->
+                if tx == previous_tx then
+                  Atomic.compare_and_set r.computation before (S r.before)
+                  |> ignore
+            | S (Continue _) -> ()
end;
rollback tx r.completions
end
@@ -188,11 +187,10 @@ module Computation = struct
let rec commit = function
| Nil -> true
| Completion r ->
-          begin
-            match Atomic.get r.computation with
-            | S (Canceled r) -> r.tx <- Stopped
-            | S (Returned r) -> r.tx <- Stopped
-            | S (Continue _) -> impossible ()
+          begin match Atomic.get r.computation with
+          | S (Canceled r) -> r.tx <- Stopped
+          | S (Returned r) -> r.tx <- Stopped
+          | S (Continue _) -> impossible ()
end;
signal r.before;
commit r.completions
@@ -346,8 +344,8 @@ module Computation = struct
let capture t fn x =
(* Intentionally manually inlined [try_capture] to minimize stack usage *)
(match fn x with
-    | y -> try_return t y
-    | exception exn -> try_capture_raised exn t)
+      | y -> try_return t y
+      | exception exn -> try_capture_raised exn t)
|> ignore


let[@inline never] raise (Canceled { exn; bt; _ } : (_, [ `Canceled ]) st) =
File "lib/picos_mux.thread/picos_mux_thread.ml", line 1, characters 0-0:
diff --git a/_build/default/lib/picos_mux.thread/picos_mux_thread.ml b/_build/default/lib/picos_mux.thread/.formatted/picos_mux_thread.ml
index cc795e9..ea14ea9 100644
--- a/_build/default/lib/picos_mux.thread/picos_mux_thread.ml
+++ b/_build/default/lib/picos_mux.thread/.formatted/picos_mux_thread.ml
@@ -36,15 +36,14 @@ let resume trigger t _ =
let _is_canceled : bool = Fiber.unsuspend t.fiber trigger in
(* This will be called when the trigger is signaled.  We simply broadcast on
the per thread condition variable. *)
-  begin
-    match Mutex.lock t.mutex with
-    | () -> Mutex.unlock t.mutex
-    | exception Sys_error _ ->
-        (* This should mean that [resume] was called from a signal handler
+  begin match Mutex.lock t.mutex with
+  | () -> Mutex.unlock t.mutex
+  | exception Sys_error _ ->
+      (* This should mean that [resume] was called from a signal handler
running on the scheduler thread.  If the assumption about not having
poll points holds, the [Condition.broadcast] should now be able to
wake up the [Condition.wait] in the scheduler. *)
-        ()
+      ()
end;
Condition.broadcast t.condition


File "test/test_finally.ml", line 1, characters 0-0:
diff --git a/_build/default/test/test_finally.ml b/_build/default/test/.formatted/test_finally.ml
index 342add0..55ad574 100644
--- a/_build/default/test/test_finally.ml
+++ b/_build/default/test/.formatted/test_finally.ml
@@ -4,16 +4,16 @@ let test_move_is_lazy () =
Test_scheduler.run @@ fun () ->
let@ moveable = instantiate Fun.id Fun.id in
drop moveable;
-  begin
-    match (move moveable : _ -> _) with _ -> () | exception _ -> assert false
+  begin match (move moveable : _ -> _) with
+  | _ -> ()
+  | exception _ -> assert false
end;
-  begin
-    match
-      let@ _ = move moveable in
-      ()
-    with
-    | () -> assert false
-    | exception Invalid_argument _ -> ()
+  begin match
+    let@ _ = move moveable in
+    ()
+  with
+  | () -> assert false
+  | exception Invalid_argument _ -> ()
end


let test_borrow_returns_resource () =
File "lib/picos_std.structured/bundle.ml", line 1, characters 0-0:
diff --git a/_build/default/lib/picos_std.structured/bundle.ml b/_build/default/lib/picos_std.structured/.formatted/bundle.ml
index d5ae07c..5664238 100644
--- a/_build/default/lib/picos_std.structured/bundle.ml
+++ b/_build/default/lib/picos_std.structured/.formatted/bundle.ml
@@ -125,8 +125,7 @@ let join_after_pass (type a) ?callstack ?on_return (fn : a -> _) (pass : a pass)
in
let fiber = Fiber.current () in
let outer = Fiber.FLS.get fiber flock_key ~default:Nothing in
-  begin
-    match pass with FLS -> Fiber.FLS.reserve fiber flock_key | Arg -> ()
+  begin match pass with FLS -> Fiber.FLS.reserve fiber flock_key | Arg -> ()
end;
let (Packed parent as packed) = Fiber.get_computation fiber in
let (Packed bundle) = r.bundle in
File "test/lib/test_scheduler/test_scheduler.ocaml5.ml", line 1, characters 0-0:
diff --git a/_build/default/test/lib/test_scheduler/test_scheduler.ocaml5.ml b/_build/default/test/lib/test_scheduler/.formatted/test_scheduler.ocaml5.ml
index 056b12c..a46925a 100644
--- a/_build/default/test/lib/test_scheduler/test_scheduler.ocaml5.ml
+++ b/_build/default/test/lib/test_scheduler/.formatted/test_scheduler.ocaml5.ml
@@ -67,10 +67,9 @@ let rec run_fiber ?(verbose = false) ?(max_domains = 1) ?(allow_lwt = true)
Some
(fun () ->
let old_hook = !Lwt.async_exception_hook in
-              begin
-                match fatal_exn_handler with
-                | None -> ()
-                | Some hook -> Lwt.async_exception_hook := hook
+              begin match fatal_exn_handler with
+              | None -> ()
+              | Some hook -> Lwt.async_exception_hook := hook
end;
match Lwt_main.run (Picos_lwt_unix.run_fiber fiber main) with
| result ->
File "test/test_picos_dscheck.ml", line 1, characters 0-0:
diff --git a/_build/default/test/test_picos_dscheck.ml b/_build/default/test/.formatted/test_picos_dscheck.ml
index 3609345..31d4f56 100644
--- a/_build/default/test/test_picos_dscheck.ml
+++ b/_build/default/test/.formatted/test_picos_dscheck.ml
@@ -72,11 +72,10 @@ let test_computation_contract () =
Atomic.check @@ fun () ->
attached_total += !attached;
unattached_total += !unattached;
-       begin
-         match Computation.peek computation with
-         | Some (Ok 101) when !returns = 1 && !cancels = 0 -> true
-         | Some (Error (Exit, _)) when !returns = 0 && !cancels = 1 -> true
-         | _ -> false
+       begin match Computation.peek computation with
+       | Some (Ok 101) when !returns = 1 && !cancels = 0 -> true
+       | Some (Error (Exit, _)) when !returns = 0 && !cancels = 1 -> true
+       | _ -> false
end
&& !attached + !unattached = Array.length triggers
&& !attached
@@ -117,13 +116,12 @@ let test_computation_removes_triggers () =
&&
let trigger = Trigger.create () in
Computation.try_attach computation trigger
-         && begin
-              match Atomic.get computation with
-              | S (Canceled _) | S (Returned _) -> false
-              | S (Continue { balance_and_mode; triggers }) ->
-                  balance_and_mode <= Computation.one + Computation.fifo_bit
-                  && triggers = [ trigger ]
-            end
+         && begin match Atomic.get computation with
+         | S (Canceled _) | S (Returned _) -> false
+         | S (Continue { balance_and_mode; triggers }) ->
+             balance_and_mode <= Computation.one + Computation.fifo_bit
+             && triggers = [ trigger ]
+         end


let () =
Alcotest.run "Picos DSCheck"
File "test/test_schedulers.ml", line 1, characters 0-0:
diff --git a/_build/default/test/test_schedulers.ml b/_build/default/test/.formatted/test_schedulers.ml
index b224075..a3f8130 100644
--- a/_build/default/test/test_schedulers.ml
+++ b/_build/default/test/.formatted/test_schedulers.ml
@@ -20,15 +20,14 @@ let test_completes () =
let (Packed computation) = !packed in
assert (not (Computation.is_running computation));
assert (not (Computation.is_canceled computation));
-  begin
-    match
-      Test_scheduler.run (fun () ->
-          packed := Fiber.get_computation (Fiber.current ());
-          (failwith "42" : unit))
-    with
-    | () -> assert false
-    | exception Failure msg -> assert (msg = "42")
-    | exception _ -> assert false
+  begin match
+    Test_scheduler.run (fun () ->
+        packed := Fiber.get_computation (Fiber.current ());
+        (failwith "42" : unit))
+  with
+  | () -> assert false
+  | exception Failure msg -> assert (msg = "42")
+  | exception _ -> assert false
end;
let (Packed computation) = !packed in
assert (not (Computation.is_running computation));
@@ -63,44 +62,38 @@ let test_op_raises_when_canceled () =
let ivar = Ivar.create () in
let wait () = Control.protect (fun () -> Ivar.read ivar) in
[
-    begin
-      fun () ->
-        Flock.fork_as_promise @@ fun () ->
-        wait ();
-        match Trigger.await (Trigger.create ()) with
-        | None -> assert false
-        | Some _ -> ()
+    begin fun () ->
+      Flock.fork_as_promise @@ fun () ->
+      wait ();
+      match Trigger.await (Trigger.create ()) with
+      | None -> assert false
+      | Some _ -> ()
end;
-    begin
-      fun () ->
-        Flock.fork_as_promise @@ fun () ->
-        wait ();
-        match
-          Computation.cancel_after (Computation.create ()) ~seconds:1.0 Exit
-            empty_bt
-        with
-        | () -> assert false
-        | exception Control.Terminate -> ()
+    begin fun () ->
+      Flock.fork_as_promise @@ fun () ->
+      wait ();
+      match
+        Computation.cancel_after (Computation.create ()) ~seconds:1.0 Exit
+          empty_bt
+      with
+      | () -> assert false
+      | exception Control.Terminate -> ()
end;
-    begin
-      fun () ->
-        Flock.fork_as_promise @@ fun () ->
-        wait ();
-        match Fiber.yield () with
-        | () -> assert false
-        | exception Control.Terminate -> ()
+    begin fun () ->
+      Flock.fork_as_promise @@ fun () ->
+      wait ();
+      match Fiber.yield () with
+      | () -> assert false
+      | exception Control.Terminate -> ()
end;
-    begin
-      fun () ->
-        Flock.fork_as_promise @@ fun () ->
-        wait ();
-        match
-          Fiber.spawn
-            (Fiber.create ~forbid:false (Computation.create ()))
-            ignore
-        with
-        | () -> assert false
-        | exception Control.Terminate -> ()
+    begin fun () ->
+      Flock.fork_as_promise @@ fun () ->
+      wait ();
+      match
+        Fiber.spawn (Fiber.create ~forbid:false (Computation.create ())) ignore
+      with
+      | () -> assert false
+      | exception Control.Terminate -> ()
end;
]
|> Test_util.shuffle
File "test/test_structured.ml", line 1, characters 0-0:
diff --git a/_build/default/test/test_structured.ml b/_build/default/test/.formatted/test_structured.ml
index 27a2c17..deb500d 100644
--- a/_build/default/test/test_structured.ml
+++ b/_build/default/test/.formatted/test_structured.ml
@@ -110,8 +110,7 @@ let test_block_raises_sys_error () =
let finished = Trigger.create () in
let computation = Computation.create () in
let main _ =
-    begin
-      try Control.block () with Sys_error _ -> success := true
+    begin try Control.block () with Sys_error _ -> success := true
end;
Trigger.signal finished
in
File "bench/bench_stdio.ml", line 1, characters 0-0:
diff --git a/_build/default/bench/bench_stdio.ml b/_build/default/bench/.formatted/bench_stdio.ml
index 07e4b99..14ab0b9 100644
--- a/_build/default/bench/bench_stdio.ml
+++ b/_build/default/bench/.formatted/bench_stdio.ml
@@ -11,10 +11,9 @@ let run_one ~budgetf ~block_or_nonblock ~n_domains () =
in
let wrap _ _ = Scheduler.run in
let work _ (inn, out, block, byte) =
-    begin
-      match block_or_nonblock with
-      | `Block -> ()
-      | `Nonblock -> Unix.set_nonblock inn
+    begin match block_or_nonblock with
+    | `Block -> ()
+    | `Nonblock -> Unix.set_nonblock inn
end;
for _ = 1 to n_blocks do
let n = Unix.write out block 0 block_size in
File "test/test_picos.ml", line 1, characters 0-0:
diff --git a/_build/default/test/test_picos.ml b/_build/default/test/.formatted/test_picos.ml
index 75db149..7de2782 100644
--- a/_build/default/test/test_picos.ml
+++ b/_build/default/test/.formatted/test_picos.ml
@@ -21,10 +21,9 @@ let test_fls_basics =
begin
run_in_fiber @@ fun () ->
let fiber = Fiber.current () in
-      begin
-        match Fiber.FLS.get_exn fiber float_key with
-        | _ -> assert false
-        | exception Fiber.FLS.Not_set -> ()
+      begin match Fiber.FLS.get_exn fiber float_key with
+      | _ -> assert false
+      | exception Fiber.FLS.Not_set -> ()
end;
Fiber.FLS.set fiber float_key 4.2;
Fiber.FLS.set fiber counter_key (Atomic.fetch_and_add counter 1);
@@ -36,10 +35,9 @@ let test_fls_basics =
begin
run_in_fiber @@ fun () ->
let fiber = Fiber.current () in
-      begin
-        match Fiber.FLS.get fiber counter_key ~default:101 with
-        | 101 -> ()
-        | _ -> assert false
+      begin match Fiber.FLS.get fiber counter_key ~default:101 with
+      | 101 -> ()
+      | _ -> assert false
end;
Fiber.FLS.set fiber counter_key (Atomic.fetch_and_add counter 1);
Fiber.FLS.set fiber float_key 7.6;
File "bench/bench_hashtbl.ml", line 1, characters 0-0:
diff --git a/_build/default/bench/bench_hashtbl.ml b/_build/default/bench/.formatted/bench_hashtbl.ml
index ce3be97..52935f4 100644
--- a/_build/default/bench/bench_hashtbl.ml
+++ b/_build/default/bench/.formatted/bench_hashtbl.ml
@@ -30,39 +30,38 @@ let run_one ~budgetf ~n_domains ?(n_ops = 100 * Util.iter_factor)
let n_ops_todo = Countdown.create ~n_domains () in


let before () =
-    begin
-      match lock_type with
-      | `Lock ->
-          Lock.holding lock @@ fun () ->
-          Hashtbl.clear t;
-          if prepopulate then begin
-            for _ = 1 to n_keys do
-              let value = Random.bits () in
-              let key = value mod n_keys in
-              Hashtbl.replace t key value
-            done
-          end
-      | `Rwlock ->
-          Rwlock.holding rwlock @@ fun () ->
-          Hashtbl.clear t;
-          if prepopulate then begin
-            for _ = 1 to n_keys do
-              let value = Random.bits () in
-              let key = value mod n_keys in
-              Hashtbl.replace t key value
-            done
-          end
-      | `Sem ->
-          Sem.acquire sem;
-          Hashtbl.clear t;
-          if prepopulate then begin
-            for _ = 1 to n_keys do
-              let value = Random.bits () in
-              let key = value mod n_keys in
-              Hashtbl.replace t key value
-            done
-          end;
-          Sem.release sem
+    begin match lock_type with
+    | `Lock ->
+        Lock.holding lock @@ fun () ->
+        Hashtbl.clear t;
+        if prepopulate then begin
+          for _ = 1 to n_keys do
+            let value = Random.bits () in
+            let key = value mod n_keys in
+            Hashtbl.replace t key value
+          done
+        end
+    | `Rwlock ->
+        Rwlock.holding rwlock @@ fun () ->
+        Hashtbl.clear t;
+        if prepopulate then begin
+          for _ = 1 to n_keys do
+            let value = Random.bits () in
+            let key = value mod n_keys in
+            Hashtbl.replace t key value
+          done
+        end
+    | `Sem ->
+        Sem.acquire sem;
+        Hashtbl.clear t;
+        if prepopulate then begin
+          for _ = 1 to n_keys do
+            let value = Random.bits () in
+            let key = value mod n_keys in
+            Hashtbl.replace t key value
+          done
+        end;
+        Sem.release sem
end;
Countdown.non_atomic_set n_ops_todo n_ops
in
File "bench/bench_ref.ml", line 1, characters 0-0:
diff --git a/_build/default/bench/bench_ref.ml b/_build/default/bench/.formatted/bench_ref.ml
index 896de14..1df6106 100644
--- a/_build/default/bench/bench_ref.ml
+++ b/_build/default/bench/.formatted/bench_ref.ml
@@ -9,9 +9,9 @@ module Ref = struct
let[@inline] compare_and_set x before after =
!x == before
&& begin
-         x := after;
-         true
-       end
+      x := after;
+      true
+    end


let[@inline] exchange x after =
let before = !x in
File "test/test_sync.ml", line 1, characters 0-0:
diff --git a/_build/default/test/test_sync.ml b/_build/default/test/.formatted/test_sync.ml
index add350b..9612c7e 100644
--- a/_build/default/test/test_sync.ml
+++ b/_build/default/test/.formatted/test_sync.ml
@@ -203,10 +203,9 @@ end) =
struct
let test_basics () =
Test_scheduler.run @@ fun () ->
-    begin
-      match Counting.make (-1) with
-      | _ -> assert false
-      | exception Invalid_argument _ -> ()
+    begin match Counting.make (-1) with
+    | _ -> assert false
+    | exception Invalid_argument _ -> ()
end;
begin
let s = Counting.make Counting.max_value in
@@ -355,13 +354,12 @@ let test_event_basics () =
| () -> assert false
| exception Not_found -> ()
end;
-  begin
-    match
-      [ Event.guard (fun () -> raise Exit); Event.always 42 ]
-      |> Event.choose |> Event.sync
-    with
-    | _ -> assert false
-    | exception Exit -> ()
+  begin match
+    [ Event.guard (fun () -> raise Exit); Event.always 42 ]
+    |> Event.choose |> Event.sync
+  with
+  | _ -> assert false
+  | exception Exit -> ()
end


let test_non_cancelable_ops () =
@@ -430,16 +428,14 @@ module Make_lock_tests (Lock : module type of Lock) = struct
| () -> assert false
| exception Lock.Poisoned -> ()
end;
-      begin
-        match Lock.holding lock @@ fun () -> raise Exit with
-        | () -> assert false
-        | exception Exit -> ()
+      begin match Lock.holding lock @@ fun () -> raise Exit with
+      | () -> assert false
+      | exception Exit -> ()
end;
Lock.Condition.broadcast condition;
-      begin
-        match Lock.acquire lock with
-        | () -> assert false
-        | exception Lock.Poisoned -> ()
+      begin match Lock.acquire lock with
+      | () -> assert false
+      | exception Lock.Poisoned -> ()
end;
assert (Lock.is_locked lock);
assert (Lock.is_poisoned lock)
@@ -530,26 +526,23 @@ module Rwlock_and_condition_tests = struct
| () -> assert false
| exception Rwlock.Poisoned -> ()
end;
-      begin
-        match Rwlock.holding lock @@ fun () -> raise Exit with
-        | () -> assert false
-        | exception Exit -> assert (Rwlock.is_poisoned lock)
+      begin match Rwlock.holding lock @@ fun () -> raise Exit with
+      | () -> assert false
+      | exception Exit -> assert (Rwlock.is_poisoned lock)
end;
Rwlock.Condition.broadcast condition;
-      begin
-        match Rwlock.acquire lock with
-        | () -> assert false
-        | exception Rwlock.Poisoned -> ()
+      begin match Rwlock.acquire lock with
+      | () -> assert false
+      | exception Rwlock.Poisoned -> ()
end;
-      begin
-        match
-          Rwlock.sharing lock @@ fun () ->
-          while true do
-            Rwlock.Condition.wait_shared condition lock
-          done
-        with
-        | () -> assert false
-        | exception Rwlock.Poisoned -> ()
+      begin match
+        Rwlock.sharing lock @@ fun () ->
+        while true do
+          Rwlock.Condition.wait_shared condition lock
+        done
+      with
+      | () -> assert false
+      | exception Rwlock.Poisoned -> ()
end;
assert (not (Rwlock.is_locked_shared lock));
assert (Rwlock.is_locked lock);
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-10-31 07:57.46: Job failed: Failed: Build failed