notes: refute 'any Canary change is a full reconfigure plus a full compile'

CONTAINER-NOTES said a Canary source change costs a full reconfigure against
/canary and a full compile, and told the reader to budget a session for it. It
was right about the defect -- the warm build tree at /sylph-home/re/canary-build
is configured with CMAKE_HOME_DIRECTORY=/work/xenia-canary, which does not exist
here -- and wrong about the consequence.

Symlinking /work/xenia-canary -> /canary restores the path the tree was
configured with. A one-file edit to command_processor.cc then rebuilt and
relinked xenia_canary in under 10 minutes at -j4, exit 0, no reconfigure and no
OOM. This is how the blend-state logging in the same session got built.

The symlink is untracked inside the repository, so the note also says to remove
it afterwards.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
This commit is contained in:
sylph-decoder
2026-08-31 05:50:02 +00:00
parent e568a3494d
commit 6f53c2cc9f

View File

@@ -18,11 +18,29 @@ already went wrong once.
warm 235 MB tree at `/sylph-home/re/canary-build` is configured with
`CMAKE_HOME_DIRECTORY=/work/xenia-canary`, also missing, and its
`build-Release.ninja` carries **no per-file rules** — it wants to re-run CMake
first, which would fail on the absent source root. **So any Canary change is a
full reconfigure against `/canary` plus a full compile**, not an incremental
one. Budget for that before starting: `SYLPH_JOBS=4`, and this box has been
sitting at **~700 MB free** with a documented history of full-parallel builds
OOM-killing the host.
first, which would fail on the absent source root.
**The conclusion drawn from all that is REFUTED (2026-08-31).** The note went
on to say *"any Canary change is a full reconfigure against `/canary` plus a full
compile, not an incremental one"*, and budgeted a session for it. That is wrong,
and the fix is one line:
```bash
ln -sfn /canary /work/xenia-canary # the path the warm tree was configured with
cmake --build /sylph-home/re/canary-build --config Release --parallel 4 \
--target xenia_canary
rm /work/xenia-canary # it is UNTRACKED inside the repo — remove it
```
Measured: a one-file edit to `src/xenia/gpu/command_processor.cc` rebuilt and
relinked `bin/Linux/Release/xenia_canary` in **under 10 minutes at `-j4`**, exit
0, no reconfigure, no OOM. The missing source root was the only defect; the
warm 235 MB tree is otherwise intact and the ninja re-run resolves its rules
from the symlink.
⚠️ **Remove the symlink when you are done.** `/work` is the repository, and
`xenia-canary` is not in `.gitignore`, so it shows up as untracked and can be
swept into a `git add -A`.
* **numpy and Pillow are installed.** `entities2.py`, `flight_probe.py` and the
image oracles work. Their absence used to look like a logic bug.