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…
⎇ 02991dd9d85898c24f1cf52eb27bf7dfdf0f21f7
crates/hammer-core/src/kernel/mod.rs
Ñawpa willay
Pi imata llamkarqan
ch'uya
kernel: plan (receta derivada) y diff-back — dos hashes para el mismo código fuente
1//! El armador de kernel: catálogo de bundles, clausuras sobre Kconfig y modo reversa.
2//!
3//! Implementa `docs/22-configurador-kernel.md`, que a su vez contesta
4//! `tawasuyu/HANDOFF-KERNEL-CONFIG-A-HAMMER.md`.
5//!
6//! **El hecho que ordena todo el módulo** (SDD 22 §1): las fases de build entran en
7//! `Recipe::hash_inputs`, y el config del kernel vive en la fase `configure` ⇒ **el config ES la
8//! identidad del artefacto**. Cambiar un símbolo cambia el `ArtifactHash`. De ahí dos consecuencias
9//! que el código respeta literalmente:
10//!
11//! 1. Una «perilla» de la UI **no es un parámetro de runtime, es una edición de receta**. Por eso
12//! `plan` emite una **receta derivada**, no un binario parametrizable.
13//! 2. Atestar «este config booteó en esta huella» sale casi gratis: ya es un artefacto CAS.
14//!
15//! Y la regla dura que nunca se cruza: **hammer no resuelve Kconfig**. Emite fragmentos
16//! (`scripts/config -e/-d`) y deja que el `olddefconfig` del propio kernel produzca el `.config`.
17//! Ver [`kconfig`].
18
19pub mod catalog;
20pub mod config;
21pub mod hw;
22pub mod kconfig;
23pub mod plan;
24pub mod reverse;
25
26pub use catalog::{Bundle, Catalog, Knob, Side};
27pub use config::{ConfigValue, KernelConfig};
28pub use hw::Hardware;
29pub use kconfig::{Expr, KconfigTree, SelectLeak, SymKind, Symbol};
30pub use plan::{diff_back, make_plan, DiffBack, Plan};
31pub use reverse::{BundleState, HwSignal, ReverseReport};