Files
takana/recipes/simi.toml
T
Sergio 136594828c simi: la receta pineada y el veredicto en el SDD — sin construir todavía, y dicho así
recipes/simi.toml sigue el patrón de hammerd/netup: crate del workspace a un
commit fijado, zig cc, musl estático, strip_debug. SIN [build.phases]: el
BuildSys::Cargo instala el binario, y el symlink `sh` NO lo pone la receta a
propósito — quién gana como /bin/sh lo decide USERLAND_COMPONENTS en
takana-bootstrap, que es frente C y su propia unidad de trabajo.

El SDD queda con el veredicto (simi 0 divergencias, bash 8, brush 35), el alcance
por consumidor, los siete bugs del camino y las seis cosas que faltan. Con dos
avisos explícitos: lo medido es el build NATIVO del hub (glibc, dinámico) y el
estático musl no se construyó, así que simi no entra en ningún perfil de
targets.toml; y la shell interactiva de getty no está cubierta.
2026-09-21 20:24:24 +00:00

41 lines
2.1 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# simi — el `/bin/sh` del producto. Código takana-PROPIO, no una adopción.
#
# Mismo patrón de receta que netup/hammerd/arje-zero: construye un crate del workspace a un commit
# fijado, deps vendoreadas para build hermético `--offline`, link estático con zig cc. Sólo depende
# de libc ⇒ vendor mínimo.
#
# Por qué propio y no adoptado (ver `docs/plan-botar-busybox.md`): el único candidato Rust maduro es
# brush, y se midió — 6,9 MB contra 1,17 del busybox entero, 4,1× la latencia de arranque, y dos
# divergencias POSIX medidas (reubeno/brush#1394 y #1396, las dos reportadas por nosotros). simi son
# 4448 líneas con CERO divergencias contra el ash de busybox en los 159 casos del banco diferencial.
#
# ⚠ Esta receta todavía NO se construyó: falta la corrida en el lab (zig cc, musl estático) y su
# sello. Lo medido hasta acá es el build nativo del hub (glibc dinámico, 499 KB) más las 47 pruebas
# del crate. No declarar `simi` en ningún perfil de `docs/state/targets.toml` antes de sellarla.
name = "simi"
version = "0.0.1"
license = "MIT"
[source]
# El propio takana. El commit es el identificador inmutable; subirlo cuando simi avance.
repo = "https://git.gioser.net/sergio/takana.git"
commit = "6809ef4be28f606aae856890a74667187ff75b05"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
# Split de la info de depuración, igual que hammerd. Entra en `hash_inputs`.
strip_debug = true
# Sólo el binario `simi` del workspace.
flags = ["-p", "simi"]
# Sin `[build.phases]`: igual que hammerd y netup, el BuildSys::Cargo del lab instala el binario del
# crate. **El symlink `sh` NO lo pone esta receta**, y eso es a propósito: quién gana como `/bin/sh`
# lo decide el ensamblado del producto (`USERLAND_COMPONENTS` en `crates/takana-bootstrap/src/lib.rs`,
# que hidrata el userland Rust DESPUÉS de busybox para que ensombrezca sus applets, y `lib.rs:676`,
# que retira el homónimo de los otros directorios). Ese cableado es frente C y es su propia unidad de
# trabajo: mete a simi en la raíz de confianza del arranque, y eso no se hace de paso.