dec-0076

Vista generada de dec-0076: (Restatement de D4.2) 'Zig structs NO cruzan el ABI boundary' — ya es el bullet 'no Zig structs in public layout' de D4.2.

ImplementadoSin versión del tren todavía· generada desde docs/decisions/dec-0076-restatement-d4-2-zig-structs.md
track/docsdec-0124track/docs:DC10

Vista generada desde docs/decisions/dec-0076-restatement-d4-2-zig-structs.md. No se edita a mano: bun run docs:gen la regenera y bun run docs:check falla si difiere. El estado aquí es el del model: si discrepa con otra página, manda el model.

CampoValor
EstadoLOCKED (migrado de un rNN por gate-3: el fichero no declara estado)
Referencia legadar56-inv-zig-structs
Ficherodocs/decisions/dec-0076-restatement-d4-2-zig-structs.md

Por qué importa (del frontmatter del ADR):

Invariant estructural del ABI, citado implícitamente por r57/r59 al asumir ABI estable de client core

Nodos del roadmap que lo citan en refs: ninguno.

Páginas de la documentación que lo citan: ninguna todavía.

Texto del ADR

Leído de docs/decisions/dec-0076-restatement-d4-2-zig-structs.md, el fichero canónico.

(Restatement de D4.2) 'Zig structs NO cruzan el ABI boundary' — ya es el bullet 'no Zig structs in public layout' de D4.2.

(Restatement de D4.2) 'Zig structs NO cruzan el ABI boundary' — ya es el bullet 'no Zig structs in public layout' de D4.2.

Por qué pasa gate-3

  • Hard-to-reverse: Revertir requeriría exponer structs Zig en el ABI, rompiendo la opacidad de handles y la estabilidad binaria
  • Surprising sin contexto: No es obvio sin el ADR que structs Zig deben restringirse a implementación interna y no cruzar la frontera
  • Trade-off real: Se rechazó permitir structs Zig en el layout público (alternativa implícita) en favor de POD + opaque handles

Procedencia

Split de docs/decisions/r56-portable-client-core-abi-2026-07-15.md (lock r56-inv-zig-structs) durante PASO 7 (2026-07-16). Ver el fichero padre para el contexto completo del pack original.