Build:
  1. 0
2026-06-24 13:54.51: New job: build balancer.1.0 (af728b97c926)
2026-06-24 13:54.51: Waiting for resource in pool day11-builds
2026-06-24 15:56.43: Got resource from pool day11-builds
2026-06-24 15:56.43: [profile full] build balancer.1.0
2026-06-24 15:56.43: build balancer.1.0 (af728b97c926)
=== DEPENDENCIES (21 transitive) ===
  base-bytes.base                                    c40d17bc86b5
  base-threads.base                                  c9e7bdbf5823
  base-unix.base                                     7d1428be9ddb
  bigarray-compat.1.1.0                              6340769fc89d
  cppo.1.8.0                                         5f3f70cae95b
  csexp.1.5.2                                        610c78f17734
  cstruct.6.0.1                                      01957cad303e
  dune.3.23.1                                        848a72441e15
  dune-configurator.3.23.1                           bc97ce98d8a9
  fmt.0.11.0                                         2830e55b9a03
  hex.1.5.0                                          e2730d7118fb
  jbuilder.1.0+beta20.2                              4f461261c648
  lwt.6.1.2                                          d46d0c4f757d
  ocaml.4.14.4                                       b047fb9251f4
  ocaml-base-compiler.4.14.4                         d3b7ccb2c6fb
  ocaml-config.2                                     2d9c209f5590
  ocamlbuild.0.16.1                                  7e0d6aadb209
  ocamlfind.1.9.8                                    214dd418ac02
  ocplib-endian.1.2                                  380dd426e898
  react.1.2.2                                        8688536508b7
  topkg.1.1.1                                        511e1a1958da
=== STDOUT ===
Processing: [default: loading data]
[balancer.1.0: dl]
[balancer.1.0: extract]
-> retrieved balancer.1.0  (https://opam.ocaml.org/cache)
[balancer: jbuilder build]
+ /home/opam/.opam/default/bin/jbuilder "build" "-p" "balancer" "-j" "39" (CWD=/home/opam/.opam/default/.opam-switch/build/balancer.1.0)
-       ocamlc lib/.balancer.objs/balancer__FNV1A.{cmi,cmo,cmt}
- File "lib/FNV1A.ml", line 11, characters 14-25:
- 11 |   let nbits = Cstruct.len key in
-                    ^^^^^^^^^^^
- Alert deprecated: Cstruct.len
- len is deprecated, you should use length instead.
-       ocamlc lib/.balancer.objs/balancer__Chash.{cmo,cmt}
- File "lib/chash.ml", line 28, characters 2-6:
- 28 |   host hosts key |> (List.nth t) 
-        ^^^^
- Warning 6 [labels-omitted]: label hosts was omitted in the application of this function.
- File "lib/chash.ml", line 81, characters 13-17:
- 81 |   let succ = host hosts key in
-                   ^^^^
- Warning 6 [labels-omitted]: label hosts was omitted in the application of this function.
-       ocamlc lib/.balancer.objs/balancer__Node.{cmo,cmt}
- File "lib/node.ml", line 12, characters 2-10:
- 12 |   Fmt.strf "%s@%s:%d" id_str t.host t.port
-        ^^^^^^^^
- Alert deprecated: Fmt.strf
- use Fmt.str instead.
- File "lib/node.ml", lines 26-29, characters 2-18:
- 26 | ..let hd :: tl = Str.string_after s i_pos |> (Str.split colon)  in
- 27 | 
- 28 |   let host, port = (hd, List.hd tl |> int_of_string) in
- 29 |   {id; host; port}
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- []
- File "lib/node.ml", line 47, characters 7-15:
- 47 |        Fmt.strf "%s:%d" host port |> Cstruct.of_string
-             ^^^^^^^^
- Alert deprecated: Fmt.strf
- use Fmt.str instead.
-     ocamlopt lib/.balancer.objs/balancer__FNV1A.{cmx,o}
- File "lib/FNV1A.ml", line 11, characters 14-25:
- 11 |   let nbits = Cstruct.len key in
-                    ^^^^^^^^^^^
- Alert deprecated: Cstruct.len
- len is deprecated, you should use length instead.
-       ocamlc lib/.balancer.objs/balancer__Serverset.{cmi,cmo,cmt}
- File "lib/serverset.ml", line 97, characters 4-48:
- 97 |     React.E.map (fun nodes -> update t nodes ) e;
-          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/serverset.ml", line 129, characters 4-48:
- 129 |     React.E.map (fun nodes -> update t nodes ) e;
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/serverset.ml", line 209, characters 4-28:
- 209 |     React.E.map (update t) e;
-           ^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/serverset.ml", line 82, characters 10-11:
- 82 |       let e = to_nodes s in
-                ^
- Warning 26 [unused-var]: unused variable e.
-     ocamlopt lib/.balancer.objs/balancer__Chash.{cmx,o}
- File "lib/chash.ml", line 28, characters 2-6:
- 28 |   host hosts key |> (List.nth t) 
-        ^^^^
- Warning 6 [labels-omitted]: label hosts was omitted in the application of this function.
- File "lib/chash.ml", line 81, characters 13-17:
- 81 |   let succ = host hosts key in
-                   ^^^^
- Warning 6 [labels-omitted]: label hosts was omitted in the application of this function.
-     ocamlopt lib/.balancer.objs/balancer__Node.{cmx,o}
- File "lib/node.ml", line 12, characters 2-10:
- 12 |   Fmt.strf "%s@%s:%d" id_str t.host t.port
-        ^^^^^^^^
- Alert deprecated: Fmt.strf
- use Fmt.str instead.
- File "lib/node.ml", lines 26-29, characters 2-18:
- 26 | ..let hd :: tl = Str.string_after s i_pos |> (Str.split colon)  in
- 27 | 
- 28 |   let host, port = (hd, List.hd tl |> int_of_string) in
- 29 |   {id; host; port}
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- []
- File "lib/node.ml", line 47, characters 7-15:
- 47 |        Fmt.strf "%s:%d" host port |> Cstruct.of_string
-             ^^^^^^^^
- Alert deprecated: Fmt.strf
- use Fmt.str instead.
-       ocamlc lib/.balancer.objs/balancer__Distributor.{cmo,cmt}
- File "lib/distributor.ml", line 78, characters 4-25:
- 78 |     Counter64.incr n.load;     
-          ^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/distributor.ml", line 81, characters 6-27:
- 81 |       Counter64.decr n.load; 
-            ^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/distributor.ml", line 106, characters 6-28:
- 106 |       RRQueue.add state node;
-             ^^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/distributor.ml", line 196, characters 4-25:
- 196 |     Counter64.incr n.load ;
-           ^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/distributor.ml", line 199, characters 6-27:
- 199 |       Counter64.decr n.load;
-             ^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/distributor.ml", line 237, characters 4-25:
- 237 |     Counter64.incr n.load ;
-           ^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/distributor.ml", line 240, characters 8-29:
- 240 |         Counter64.decr n.load;
-               ^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
-     ocamlopt lib/.balancer.objs/balancer__Serverset.{cmx,o}
- File "lib/serverset.ml", line 97, characters 4-48:
- 97 |     React.E.map (fun nodes -> update t nodes ) e;
-          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/serverset.ml", line 129, characters 4-48:
- 129 |     React.E.map (fun nodes -> update t nodes ) e;
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/serverset.ml", line 209, characters 4-28:
- 209 |     React.E.map (update t) e;
-           ^^^^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/serverset.ml", line 82, characters 10-11:
- 82 |       let e = to_nodes s in
-                ^
- Warning 26 [unused-var]: unused variable e.
-     ocamlopt lib/.balancer.objs/balancer__Distributor.{cmx,o}
- File "lib/distributor.ml", line 78, characters 4-25:
- 78 |     Counter64.incr n.load;     
-          ^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/distributor.ml", line 81, characters 6-27:
- 81 |       Counter64.decr n.load; 
-            ^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/distributor.ml", line 106, characters 6-28:
- 106 |       RRQueue.add state node;
-             ^^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/distributor.ml", line 196, characters 4-25:
- 196 |     Counter64.incr n.load ;
-           ^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/distributor.ml", line 199, characters 6-27:
- 199 |       Counter64.decr n.load;
-             ^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/distributor.ml", line 237, characters 4-25:
- 237 |     Counter64.incr n.load ;
-           ^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
- File "lib/distributor.ml", line 240, characters 8-29:
- 240 |         Counter64.decr n.load;
-               ^^^^^^^^^^^^^^^^^^^^^
- Warning 10 [non-unit-statement]: this expression should have type unit.
-> compiled  balancer.1.0
-> installed balancer.1.0

=== STDERR ===

2026-06-24 15:57.24: OK: build balancer.1.0 (runc: 2.6s, disk: 15KB)
2026-06-24 15:57.24: Job succeeded