gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1572Shell 203Rust 109Markdown 993728 Definiciones

estado: gocryptfs cerrado — CERO no-determinismos vigentes en el corpus

Las otras tres recetas cgo (sq, usql, gitea) dan DERIVA, no no-determinismo: sus dos
reconstrucciones coinciden entre sí y el artefacto guardado era el de antes del arreglo.
Ya están al día.

Y de paso se les fue una deuda que NO era de reproducibilidad sino de PORTABILIDAD: el
`x_cgo_sigaction` de sq y usql —código C de cgo, sin guarda de CPU en runtime— venía con
AVX2 horneado, de cuando el driver pisaba el `-mcpu=baseline`. Un binario así no falla al
construir ni al sellar: falla al EJECUTAR en una CPU sin AVX2, con SIGILL. Ahora los tres
salen baseline (cero ymm, cero zmm en esa función).

── El límite del libro, anotado en su encabezado ──────────────────────────────────────
`gocryptfs` acabó con CUATRO filas al MISMO hash: dos NO-DETERMINISMO y dos reproduce, y
las cuatro son ciertas. La clave (receta, hash) no puede distinguir antes y después de un
arreglo del FRAMEWORK, porque la fase generada no entra en `hash_inputs` — a propósito,
para no re-sellar 362 recetas cada vez que se toca un driver.

Corolario, que es lo caro: tras tocar un driver, lo sellado NO se rehace solo. Hay que
forzarlo receta por receta, y si nadie lo hace el store se queda con artefactos que ya
nadie construiría así.

30765ca3763ebe2327e3bdeac4cdd4511b21fe40 · por Sergio · (hace 1 mes) · padre 33056de44 · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

1 archivos · +14 −2

diff --git a/docs/state/repro-verificado.tsv b/docs/state/repro-verificado.tsv
index 1dcbd0ab..ba41dbeb 100644
--- a/docs/state/repro-verificado.tsv
+++ b/docs/state/repro-verificado.tsv
@@ -5,6 +5,15 @@
 # que ya no es lo mismo. Lo escribe scripts/verificar-repro.sh; se lee para medir cobertura y
 # para no volver a sortear lo ya hecho.
 #
+# ⚠ LÍMITE DE LA CLAVE, medido el 2026-09-14 con `gocryptfs`: la clave (receta, hash) NO distingue
+# antes y después de un arreglo del FRAMEWORK. La fase de build generada (el driver de Go, de Cargo,
+# de CMake…) no entra en `hash_inputs` a propósito —para no re-sellar 362 recetas cada vez que se
+# toca el driver—, así que arreglar el driver cambia lo que se construye SIN cambiar el hash. En el
+# libro eso se ve como filas CONTRADICTORIAS con el mismo hash: `gocryptfs` tiene dos que dicen
+# NO-DETERMINISMO y dos que dicen reproduce, y las cuatro son ciertas — dos de antes del arreglo y
+# dos de después. Se anotan a mano las superadas; no hay forma de que la clave lo haga sola.
+# Corolario: tras tocar un driver, lo sellado NO se rehace solo. Hay que forzarlo receta por receta.
+#
 # receta<TAB>hash<TAB>fecha<TAB>veredicto
 libffi	1df7e7a3eac63694f8d094646cfc231f3843995f6f9f945cda138760f6bc9838	2026-09-05	reproduce
 packaging	0378f4a8dba56e6519590778c2dad2291a99e92b7960d38960964f3fd52a7afc	2026-09-05	reproduce
@@ -170,7 +179,7 @@ fx	155def6534501815bc07cb2f44a4d746f33f0ce3d363d350fc2434bede596a2e	2026-09-14	r
 fzf	1e09ce94738da251805551119a7890c7bdc8d19708a1c4e65fd7fd02f46947a9	2026-09-14	reproduce [worker]
 gh-ost	0024044f52f1dbd7ff53fe356405caf3ff978b1e9edcaccfc1918311d74c3437	2026-09-14	reproduce [worker]
 gitleaks	110d2bd2ebedff47e252f1ae16c4abbe0d68f8c57b817ac4a324e236740a7ddc	2026-09-14	reproduce [worker]
-gocryptfs	0caf96352eae21ed51b32be9ead8d5525bb07e8aa124eb33c4b9588f1a02421d	2026-09-14	NO-DETERMINISMO [worker]
+gocryptfs	0caf96352eae21ed51b32be9ead8d5525bb07e8aa124eb33c4b9588f1a02421d	2026-09-14	NO-DETERMINISMO — ARREGLADO el mismo día (GOTMPDIR fuera del módulo); MISMO hash, ver la nota del encabezado
 gojq	249e9367f3d60d5434f4e3d57675a1313e8e793672465e9cc01c8babe470e62f	2026-09-14	reproduce [worker]
 gomodifytags	00a15c7ec6121a19c31d4e0c6b4b8364d24923dc75086169edb6b693342f5c93	2026-09-14	reproduce [worker]
 gotestsum	22a737ac164d041164e6b79044e97cac158d11100902f74fe29bab8a23a84e9f	2026-09-14	reproduce [worker]
@@ -236,6 +245,9 @@ libplasma	73ec5fb279ea44e6bcfdf4c58d8703ed1307ae7985e56ce55a5da078ea098b7e	2026-
 syntax-highlighting	3db73c19bdbddcb046a80d11ec112bc7dc60134eeec75b26e907cc756d25d081	2026-09-14	reproduce
 powerdevil	70ea4b373af5ac3c22cf6adde9ca45153925724ef523000bc1e0e2338e282d15	2026-09-14	reproduce
 ktexteditor	f13baeb75249c7f768fdd1b4584b5077779e6806ffcb295a6554f50d3f31d0ec	2026-09-14	reproduce
-gocryptfs	0caf96352eae21ed51b32be9ead8d5525bb07e8aa124eb33c4b9588f1a02421d	2026-09-14	NO-DETERMINISMO
+gocryptfs	0caf96352eae21ed51b32be9ead8d5525bb07e8aa124eb33c4b9588f1a02421d	2026-09-14	NO-DETERMINISMO — ARREGLADO el mismo día (GOTMPDIR fuera del módulo); MISMO hash, ver la nota del encabezado
 gocryptfs	0caf96352eae21ed51b32be9ead8d5525bb07e8aa124eb33c4b9588f1a02421d	2026-09-14	reproduce (tras poner al día un artefacto derivado)
 gocryptfs	0caf96352eae21ed51b32be9ead8d5525bb07e8aa124eb33c4b9588f1a02421d	2026-09-14	reproduce
+sq	86de0799d816abb671cc3192daa9986adf9f6210a0be8cc1b4dfab0033d23dcf	2026-09-14	reproduce (tras poner al día un artefacto derivado)
+usql	820d3f10cf37da8603adc5da554800715705492c3ae8819f3a0a82ce0ad41d05	2026-09-14	reproduce (tras poner al día un artefacto derivado)
+gitea	5edf9c16b3a48cb44198a7d590f7c05a0f24e57429c3d05ecce92f75ce9ca19b	2026-09-14	reproduce (tras poner al día un artefacto derivado)