matar-gcc: curl+libevent migradas + BALANCE final (27 recetas C a zig)
curl (dep de muchos) y libevent verificadas en laptop: construyen+corren con zig. Total sesión: 27 recetas C migradas gcc→zig-cc. BALANCE de las 47 que harkaq nombró: 27 MIGRADAS ✅ (deuda histórica: zig 0.13/0.16 segfaultaba, zig mejoró) 4 matraca real: libgcrypt/libsodium (crypto asm), file (magic), linux-pam 2 sin confirmar: libevdev, mtdev (libs, smoke-test no verifica) 11 Rust diferidas (gcc para el C embebido de sys-crates, otra evaluación) matar-gcc pasó de '47 invisibles' (harkaq las reveló al leer el compiler=) a 27 cerradas + cola nombrada. Reporte: tandas/needs-review-harkaq/migracion-zig.md OJO: re-hashea las 27 del índice firmado 748 ⇒ re-firma en próximo packaging. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,27 +1,31 @@
|
||||
# Migración compiler=gcc → zig-cc (matar-gcc): ¿granjeada o matraca?
|
||||
# Migración compiler=gcc → zig-cc (matar-gcc) — BALANCE (2026-07-16)
|
||||
|
||||
**Medido, no adivinado** (`scripts/farm/migra-zig.sh`: build con zig + smoke-test del binario,
|
||||
porque el motivo del gcc era segfault en RUNTIME). Muestra de 13 C-puras:
|
||||
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).
|
||||
|
||||
- **MIGRABLE (11/13 ≈ 85%)**: bzip2, expat, json-c, gzip, htop, less, libpng, libyaml, zstd,
|
||||
libffi, xz. Construyen con zig y —las que tienen binario— corren limpio. El `compiler=gcc` era
|
||||
**deuda histórica**: se marcaron con zig 0.13/0.16 (que segfaultaban C clásicos); zig mejoró y
|
||||
el gcc quedó por inercia.
|
||||
- **MATRACA (2/13)**: pcre2 (usa un *linker version script* que zig ld no soporta), file (falla en
|
||||
el subdir `magic`). Razones específicas de build-system, una por una.
|
||||
## 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
|
||||
|
||||
## Veredicto
|
||||
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.
|
||||
|
||||
**Es granjeada, no matraca** — para las ~36 C-puras. ~85% migran solas cambiando `compiler` y
|
||||
promoviendo las que pasan+corren; el residuo (~15%) es matraca individual, poco y por causas
|
||||
concretas. El método está en `migra-zig.sh` (idempotente, acumula por lotes).
|
||||
## 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.
|
||||
|
||||
Las **11 Rust con sys-crate C** (delta, gitui, helix, …) son otra evaluación: ahí el gcc compila
|
||||
el C embebido de `libgit2-sys`/etc, no el Rust. Migrar eso a zig es más arriesgado y lento; se
|
||||
deja para después.
|
||||
## 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.
|
||||
|
||||
## Rollout (decisión de rollout, no técnica)
|
||||
## 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).
|
||||
|
||||
Cambiar `compiler=gcc→zig-cc` re-hashea la receta y sus consumidores, y varias están en el índice
|
||||
firmado (748). Correr `migra-zig.sh` sobre las 47 (mejor en la granja VPS, paralela) produce la
|
||||
lista final migrable/matraca; promover las migrables es el rollout que re-firma el índice.
|
||||
## 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**.
|
||||
|
||||
**Rollout: re-hashea las 27 (estaban en el índice firmado 748) ⇒ re-firma en el próximo packaging.**
|
||||
|
||||
Reference in New Issue
Block a user