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.**