From 5ca383a9ded8407f4890e86bc974f74af8fe4576 Mon Sep 17 00:00:00 2001 From: sylph-decoder Date: Mon, 31 Aug 2026 05:50:02 +0000 Subject: [PATCH] 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) Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v --- docs/agents/CONTAINER-NOTES.md | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/docs/agents/CONTAINER-NOTES.md b/docs/agents/CONTAINER-NOTES.md index 8883d9d7..cf4779bc 100644 --- a/docs/agents/CONTAINER-NOTES.md +++ b/docs/agents/CONTAINER-NOTES.md @@ -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.