rust: la guarda del stage0 gritaba de más — `\\.` en un string TOML de comillas simples es literal
El configure abortó con «stage0 NO es 1.97.0: rustc 1.97.0» — o sea, la guarda rechazando exactamente la versión que exige. La causa: en un string multilínea con comillas SIMPLES, TOML no procesa escapes, así que `grep -q '1\\.97\\.0'` busca una barra invertida literal y nunca casa. Va `'1[.]97[.]0'`, que no depende de cómo el formato trate las barras. Un guardián que falla sobre lo que debería aceptar es tan inútil como uno que nunca falla — pero al menos éste falló RUIDOSAMENTE y en el primer minuto, no tres horas después. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016Tf9T4vGzsMoT7eS8YzMFn
Delta semántico
Ninguna definición cambió: el cambio es de texto, documentación o datos.
1 archivos · +1 −1
- recipes/rust.toml +1 −1
diff --git a/recipes/rust.toml b/recipes/rust.toml
index 609a2ad3..6d3ca125 100644
--- a/recipes/rust.toml
+++ b/recipes/rust.toml
@@ -76,7 +76,7 @@ cp bootstrap.toml config.toml
# La versión del stage0 se COMPRUEBA, no se asume: `local-rebuild` sólo es correcto si el compilador
# de arranque es exactamente esta versión, y si alguien mueve el pin de `rust-toolchain-bin` esto
# tiene que fallar acá y no tres horas después.
-rustc --version | grep -q '1\\.97\\.0' || { echo "stage0 NO es 1.97.0: $(rustc --version)" >&2; exit 1; }
+rustc --version | grep -q '1[.]97[.]0' || { echo "stage0 NO es 1.97.0: $(rustc --version)" >&2; exit 1; }
llvm-config --version
'''
compile = "python3 x.py build --stage 2"