Build Luv from the rescript-lang/luv fork with libuv 1.53.0
🏠 Internalrewatchci
The opam override for Luv now fetches commit 8c12b1a of rescript-lang/luv (PR rescript-lang/luv#2) instead of patching the upstream 0.5.14 tarball. The fork vendors libuv 1.53.0 instead of 1.48.0 and already carries the ARM64 musl -mno-outline-atomics fix, so the local patch is gone. The package is versioned 0.5.14+rescript.1 and dune-project/rescript.opam pin that version.
🏠 InternalBuild the OCaml rewatch against libuv 1.53.0 via the rescript-lang/luv fork. #8883
Review
- Why a git URL and not a release tarball? The fork keeps libuv as a git submodule; GitHub archives omit submodules, while opam's git fetch initializes them. The commit hash should move to the merge commit once rescript-lang/luv#2 lands.
- Does the OCaml rewatch use any changed Luv API? Only FS_event, Loop, Timer, Handle and Error (native_watcher.ml). The fork's API change (statfs reserved fields read as zero) does not reach it.
- No effect
- Output: unchanged
- Tests
- nonebecause no observable behavior changes; the shared rewatch suite (113 checks, incl. watch mode), the rewatch-ocaml focused suite and scripts/test.js -ounit -build -mocha -docstrings pass on the new libuv
- Measured
- watch edit latency, median of 21 interleaved edits (basic fixture) 99 → 100 ms, A/A control 98 ms
- 400-directory fixture 98 → 102 ms, A/A control 100 ms
- watch cold start, median of 7 (400 dirs) 213 → 211 ms, A/A 212 ms
- idle watcher CPU over 20 s 70-90 ms for all
- clean build (400 modules), median of 9, 180 → 180 ms
- linux-arm64 devcontainer under load, job tmp watch_ab.py and clean_ab.py
- Changelog fragment changes/luv-libuv-1-53.internal.md
- No test changes, as recorded
- No committed generated JS changes
6 files · +17 −45 · ci 3 · changelog 1 · other 2
| M | .github/opam-repository/README.md | +7 | −9 |
| R | .github/opam-repository/packages/luv/luv.0.5.14+rescript.1/opam | +7 | −14 |
| D | .github/opam-repository/packages/luv/luv.0.5.14/files/arm64-musl-outline-atomics.patch | +0 | −20 |
| A | changes/luv-libuv-1-53.internal.md | +1 | −0 |
| M | dune-project | +1 | −1 |
| M | rescript.opam | +1 | −1 |