Semantic Diff

#9246 Check for dead code in CI

3 commits

e3da1866136b0294650754ad0b5b9d8b7768897e..pr-9246

6d640de2c · cknitt + Claude · Nov 06, 2026, 20:53 UTC

Check for dead code in CI

The build-compiler job that builds the playground now runs make dead-code after the playground build, so new dead code fails CI. It installs reanalyze 2.27.0, the first release that analyzes the native and the browser build trees together, from its tag until the opam-repository package is merged.

102f322c2 · cknitt + Claude · Nov 06, 2026, 21:27 UTC

Build reanalyze from its tag instead of installing it with opam

In CI, opam install reanalyze recompiled the whole restored switch (62 packages, about 4 minutes): opam misses the musl system package of the static switch and treats that as a system change. The step now clones the v2.27.0 tag and builds reanalyze with dune in the existing switch (seconds), and passes it to make dead-code with REANALYZE. This also works unchanged once the opam package is published.

2f2adec1a · cknitt + Claude · Nov 06, 2026, 21:40 UTC

Run opam exec from the repository when building reanalyze

CI's opam switch is local to the repository, and opam exec finds it from the current directory: run from inside the reanalyze clone it failed with "No switch is currently set". opam exec now runs from the repository and changes into the clone itself.