docs: ADR 0009 código direccionado por contenido (H3a) — registrar visión Unison

Design-doc de la idea 3 (SDD 15 §H3): decide NO reescribir la unidad de
compilación. Puente barato = procedencia por-símbolo como metadata (extender
el parser ELF parse_elf_needed para emitir exports de .dynsym), fuera de
hash_inputs — misma disciplina que la evidencia de H1. El grano fino real
(función-por-hash) se difiere a H3b sobre wasm, gateado por el determinismo H2.
Marca §H3a  en la frontera.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-03 06:03:48 -04:00
co-authored by Claude Opus 4.8
parent 7a708aa282
commit 236aac7c7f
2 changed files with 104 additions and 5 deletions
+5 -5
View File
@@ -143,11 +143,11 @@ compilación entera. El valor es real (fin del dependency-hell para la IA) pero
proyecto, no una fase.
**Qué SÍ hacer ahora (el puente barato hacia la visión):**
- **H3a** — Doc de diseño `docs/adr/00NN-content-addressed-code.md`: qué se ganaría, qué unidad
(¿AST de Rust? ¿un IR propio? ¿wasm por función?), y el punto de contacto realista con lo que
ya existe — la procedencia por-función podría empezar como **metadata** en el `.hammer/recipe.toml`
(qué símbolos exporta un artefacto, ya tenemos el parser ELF `DT_NEEDED` de Fase 6) sin cambiar
la unidad de build. Registrar la visión, no comprometerse a la reescritura.
- **H3a** — Doc de diseño `docs/adr/0009-content-addressed-code.md` (2026-07-03): registra la
visión Unison y decide **no reescribir la unidad de compilación**. Puente barato = procedencia
por-símbolo como **metadata** (extender `parse_elf_needed`, `query.rs:298`, para emitir exports de
`.dynsym` además de `DT_NEEDED`), fuera de `hash_inputs` (misma disciplina que la evidencia de H1).
El grano fino real (función-por-hash) se difiere a H3b sobre **wasm**, gateado por H2.
- **H3b** — (exploratorio, opcional) Un experimento aislado: una base content-addressed de
funciones **wasm** (grano: un `.wasm` por función pura de H2), viendo si el modelo "insertar
definición, nunca romper" se sostiene sobre el runtime de wawa. Es el subconjunto de Unison