selfhost-verify: SWAP_RUST usa store dedicado (el input-hash no incluye el rustc)
recipe.hash_inputs = source+compiler+target+link+patches+flags+phases+deps; NO incluye el binario rustc del toolchain. En el ./store compartido, arje-zero/hammerd quedarían cacheados con los bytes de Alpine ⇒ el swap de rust sería un no-op (REF seguiría 9adefb82). SWAP_RUST=1 ahora usa un store dedicado (store-rust, override RUST_STORE) para forzar el rebuild de los 4/4 con hammer-rust, sin tocar el ./store baseline. Así of_tree refleja el compilador nuevo (auto-consistencia). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Delta semántico
Ninguna definición cambió: el cambio es de texto, documentación o datos.
1 archivos · +6 −0
diff --git a/scripts/selfhost-verify.sh b/scripts/selfhost-verify.sh
index 0e64072a..bcce2f99 100755
--- a/scripts/selfhost-verify.sh
+++ b/scripts/selfhost-verify.sh
@@ -84,6 +84,12 @@ if [[ "${SWAP_RUST:-0}" == 1 ]]; then
say "variante b (compilador) — swapear hammer-rust 1.91.1 en $TOOLCHAIN (criterio: auto-consistencia)"
scripts/rust-frontier/swap-rust-into-toolchain.sh --prefix "$RUST_PREFIX" --toolchain "$TOOLCHAIN"
trap 'scripts/rust-frontier/swap-rust-into-toolchain.sh --restore --toolchain "$TOOLCHAIN" >/dev/null 2>&1 || true' EXIT
+ # OJO: el input-hash del store NO incluye el rustc (recipe.hash_inputs = source+compiler+target+
+ # link+patches+flags+phases+deps), así que en el ./store compartido arje-zero/hammerd quedarían
+ # CACHEADOS con los bytes de Alpine y el swap sería un no-op. Usamos un store DEDICADO (store-rust)
+ # para forzar el rebuild de los 4/4 con hammer-rust; así el of_tree refleja el compilador nuevo.
+ STORE="${RUST_STORE:-store-rust}"
+ say "SWAP_RUST: store dedicado $STORE (el ./store baseline no se toca; fuerza rebuild con hammer-rust)"
# Con hammer-rust el REF NO es el 9adefb82 de Alpine; comparamos contra RUST_EXPECT_REF (si se
# conoce de una corrida previa), no contra el baseline Alpine.
EXPECT_REF="${RUST_EXPECT_REF:-}"