estado: clasificación Rust corregida (había ~180 Rust escondidas como C) + musl

Señal fuerte para Rust: la receta copia su binario de target/release/ en las fases. Medido 225
recetas, 0 con dep go ⇒ sin falsos positivos con Go (findutils entra bien: es uutils/findutils, find
en Rust). LÍMITE: un crate BuildSys::Cargo PURO sin fase install propia (zellij) no deja rastro en el
TOML y cae a 'c' — sólo se ve bajando la fuente, que el generador no hace.

Efecto: clases c 322→141, rust 45→226 (la mayoría eran Rust auto sin fase cargo explícita). Y la
LECTURA de la deuda cambia: la deuda C REAL es sólo 8 (casi toda saldada esta sesión), no 74. Lo que
queda es Rust (15, CLI pesados → granja), GUI (29 → granja), Go (5 → worker), kernel (4).

musl sellado (base). Avance: sealed 703→704, debt 53→52.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 12:36:23 -04:00
co-authored by Claude Opus 4.8
parent d111b5f040
commit a267cf4f48
3 changed files with 266 additions and 267 deletions
+6 -2
View File
@@ -45,8 +45,12 @@ def classify(name, d):
# Go: declara el toolchain `go` como dep de build (la vía Go auto lo exige). 362 recetas.
if "go" in deps and name != "go":
return "go"
# Rust: fase cargo, o dep de un toolchain rust, o el linker zig-cc wrapper típico de cargo.
if "cargo" in blob or "cargo" in deps or "rust" in deps:
# Rust: fase cargo, dep rust, o —la señal fuerte— copia el binario de `target/release/` en sus
# fases (todo binario cargo sale de ahí). Medido: 225 recetas lo tienen, 0 con dep `go` ⇒ sin
# falsos positivos con Go. LÍMITE conocido: un crate BuildSys::Cargo PURO (Cargo.toml en el árbol,
# sin fase install propia — p.ej. zellij) no deja rastro en el TOML y cae a "c"; sólo se distingue
# bajando la fuente, que este generador no hace a propósito.
if "cargo" in blob or "cargo" in deps or "rust" in deps or "target/release" in blob:
return "rust"
if any(g in name for g in GUI_RE):
return "gui"