query: exports:<elf> — procedencia por-símbolo (puente barato de ADR 0009)
Extiende el parser ELF (parse_elf_needed→parse_elf_info): además de DT_NEEDED, recorre .dynsym (DT_SYMTAB) y extrae los símbolos EXPORTADOS (defined + global/weak). Nuevo término `exports:<path>` en el mini-lenguaje de queries; fluye por el bus (query expr) sin cambios. Metadata descriptiva, fuera de hash_inputs (misma disciplina que la evidencia de H1). Refactor: helper vaddr_to_file_off compartido por strtab/symtab + cstr_at. nsyms vía layout convencional (strtab sigue a symtab); best-effort → [] si no se puede acotar con seguridad. Validado end-to-end: 2873 símbolos reales de /lib/libc.so.6 (aguanta glibc y musl). Tests: term-parse + missing-file + host-gated real-.so. Workspace verde (33 suites). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -63,9 +63,11 @@ de código **colapsarían en un solo espacio de nombres: el hash**.
|
||||
|
||||
## Consecuencias
|
||||
|
||||
- **Ahora (barato, sin apuesta):** cuando haya rato, extender `parse_elf_needed` → `parse_elf_symbols`
|
||||
(exports de `.dynsym` además de `DT_NEEDED`) y exponerlo como query (`exports:<artefacto>`) y,
|
||||
opcionalmente, como sidecar de metadata junto al `.hammer/recipe.toml`. Cero cambio en el build.
|
||||
- **Ahora (barato, sin apuesta) — IMPLEMENTADO (2026-07-03):** `parse_elf_needed` → `parse_elf_info`
|
||||
(exports de `.dynsym` además de `DT_NEEDED`), expuesto como query **`exports:<artefacto>`**
|
||||
(`crates/hammer-core/src/query.rs`). Validado end-to-end: 2873 símbolos extraídos de
|
||||
`/lib/libc.so.6`. Fluye por el bus (`query expr`) sin cambios. Cero cambio en el build ni en
|
||||
`hash_inputs`. Pendiente opcional: emitirlo como sidecar de metadata junto al artefacto sellado.
|
||||
- **Diferido (condicionado a verdes):** H3b (base content-addressed de funciones **wasm**), sólo
|
||||
si H2b demuestra que el cómputo puro memoiza byte-idéntico. Si H3b se sostiene, *entonces* se
|
||||
reabre la pregunta de colapsar los tres espacios — con evidencia, no con fe.
|
||||
|
||||
Reference in New Issue
Block a user