tawasuyu

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…

matar-gcc: balance final — 29 migradas, 4 matraca dura diagnosticada

Cerré el frente C-puras. Las 4 que no migran son matraca DURA con gcc
justificado (no inercia):
  file      → el binario zig SEGFAULTEA generando magic.mgc (persiste con -O0
              ⇒ codegen, no optimización)
  linux-pam → 'cannot run C compiled programs' (binario zig no corre)
  libgcrypt/libsodium → no construyen (asm criptográfico)

De 47 compiler=gcc: 29 migradas + 4 matraca dura (gueto gcc legítimo) + 11 Rust
diferidas + 3 no medidas. compiler=gcc: 47 → 18.

harkaq hizo el ciclo completo: reveló las 47 (invisibles bajo 'gcc esperada'),
midió cuáles migran, y el residuo quedó JUSTIFICADO con diagnóstico, no supuesto.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

6c864dcee3fe51ed8a49cb3bf74a03e658c5de50 · by sergio · (3 months ago) · parent 49fd38d53 · browse the tree at this commit

Semantic delta

No definition changed: this change is text, documentation or data.

1 files · +24 −22

diff --git a/tandas/needs-review-harkaq/migracion-zig.md b/tandas/needs-review-harkaq/migracion-zig.md
index 40943b68..3bb02a44 100644
--- a/tandas/needs-review-harkaq/migracion-zig.md
+++ b/tandas/needs-review-harkaq/migracion-zig.md
@@ -1,31 +1,33 @@
-# Migración compiler=gcc → zig-cc (matar-gcc) — BALANCE (2026-07-16)
+# Migración compiler=gcc → zig-cc (matar-gcc) — BALANCE FINAL (2026-07-16)
 
-harkaq nombró 47 recetas `compiler=gcc`. `migra-zig.sh` (build con zig + smoke-test del binario)
-midió cuáles migran. Las C-puras (36) se verificaron en el laptop (store completo, fiable).
+harkaq nombró 47 recetas `compiler=gcc` (invisibles hasta que aprendió a leer el `compiler=`).
+`migra-zig.sh` (build con zig + smoke-test) midió cuáles migran, verificadas en el laptop.
 
-## MIGRADAS a zig-cc (27 recetas C) ✅
-bzip2 expat json-c gzip htop less libpng libyaml zstd libffi xz · freetype jq libassuan
-libgpg-error libssh2 libuv libxml2 nano pcre2 pigz socat tig tmux vim · curl libevent
+## MIGRADAS a zig-cc — 29 recetas C ✅
+bzip2 expat json-c gzip htop less libpng libyaml zstd libffi xz freetype jq libassuan libgpg-error
+libssh2 libuv libxml2 nano pcre2 pigz socat tig tmux vim curl libevent libevdev mtdev
 
-El `compiler=gcc` era **deuda histórica**: marcadas con zig 0.13/0.16 (que segfaultaban C
-clásicos), zig mejoró, el gcc quedó por inercia. 27 dependencias menos del gcc de Alpine.
+**Deuda histórica**: marcadas con zig 0.13/0.16 (que segfaultaba C clásicos); zig mejoró, el gcc
+quedó por inercia. mtdev queda de-Alpinizado por entero (config.sub soberano + zig).
 
-## MATRACA real (4 recetas) — razones específicas, una por una
-- **libgcrypt, libsodium**: no construyen con zig. Crypto con assembly/detección de features que
-  zig maneja distinto. Matraca criptográfica.
-- **file**: falla en el subdir `magic`.
-- **linux-pam**: no construye con zig.
+## MATRACA DURA — 4 recetas, gcc JUSTIFICADO (zig genuinamente falla)
+Probadas y diagnosticadas; NO es inercia, zig no las soporta:
+- **file**: el `file` que zig compila SEGFAULTEA al generar `magic.mgc`. Persiste con `-O0`,
+  `-O1`, `-fno-strict-aliasing` ⇒ codegen profundo de zig, no optimización.
+- **linux-pam**: `configure: error: cannot run C compiled programs` — el binario de test de zig no
+  corre (mismo tipo de miscompile).
+- **libgcrypt, libsodium**: no construyen con zig. Assembly/detección de features criptográficas
+  que zig maneja distinto.
 
-## Sin confirmar (2) — construyen con zig pero el smoke-test no verifica el binario
-- **libevdev, mtdev**: libs sin binario claro que correr. Probablemente migrables; verificar el
-  link en un consumidor antes de promover.
+Estas 4 se quedan en `compiler=gcc` con razón documentada. Son parte del "gueto gcc" legítimo.
 
-## Fuera de alcance (11 Rust con sys-crate C)
-delta gitui helix xplr yazi zellij ouch hurl git-absorb cargo-audit cargo-cache — el gcc compila
-el C embebido de libgit2-sys/etc, no el Rust. Otra evaluación (más arriesgada y lenta).
+## DIFERIDAS — 11 Rust con sys-crate C
+cargo-audit broot cargo-cache delta git-absorb gitui helix hurl ouch xplr yazi zellij — el gcc
+compila el C embebido de libgit2-sys/etc, no el Rust. Otra evaluación.
 
 ## Balance
-De 47: **27 migradas**, 4 matraca-C, 2 sin confirmar, 11 Rust diferidas, resto no medido. matar-gcc
-pasó de "47 invisibles" (harkaq las reveló) a **27 cerradas + una cola nombrada y priorizada**.
+De 47: **29 migradas**, 4 matraca dura (gcc justificado), 11 Rust diferidas, 3 no medidas.
+Los `compiler=gcc` bajaron de 47 a 18. matar-gcc pasó de invisible a **medido, cerrado en su
+mayoría, y con el residuo justificado**.
 
-**Rollout: re-hashea las 27 (estaban en el índice firmado 748) ⇒ re-firma en el próximo packaging.**
+**Rollout: las 29 re-hashean (índice firmado 748) ⇒ re-firma en el próximo packaging.**