prometeu-studio/docs/agendas/Host ABI Gate Validation Agenda.md
2026-03-24 13:42:17 +00:00

2.8 KiB

Host ABI Gate Validation Agenda

Status: Resolved agenda
Purpose: validate whether the current Host ABI contract is already stable enough to stop blocking the next phase

1. Context

This agenda validates whether 6. Host ABI Binding and Loader Resolution Specification.md is already sufficient as the working contract for the path:

declare host -> PBX metadata -> loader resolution -> numeric syscall execution

The question here is not whether every binary-format detail is final. The question is whether the current contract is already stable enough to unblock the next phase.

2. Decision

Decision: sufficient for the next phase.

The current Host ABI contract is explicit enough to unblock the next stage even if the specification remains marked Temporary for now.

Temporary should be interpreted here as "final binary-format and integration details may still be hardened", not as "core contract still missing".

3. Why This Is Sufficient

The current specification already fixes the parts that matter for phase-gating:

  1. Canonical identity is stable and loader-facing: (module, name, version).
  2. The boundary between source-level declare host and runtime-facing canonical metadata is explicit.
  3. The PBX contract is defined through mandatory SYSC metadata with required fields and validation rules.
  4. Pre-load and post-load call forms are explicit: HOSTCALL <sysc_index> before load, SYSCALL <id> after patching.
  5. The loader algorithm is normative, ordered, and deterministic.
  6. ABI validation responsibility is split clearly between loader and verifier.
  7. Capability gating is mandatory during load.
  8. Deterministic failure cases are enumerated.

This is enough to keep compiler, PBX emitter, loader, and VM behavior aligned on the critical host-binding path.

4. Remaining Hardening That Does Not Block

The following items remain open, but they are hardening and integration details rather than gate blockers:

  1. Final PBX section numbering and chunk registry policy.
  2. Final opcode allocation for HOSTCALL.
  3. Exact loader image materialization strategy (patch in place vs rebuild buffer).
  4. Final integration shape with ProgramImage or equivalent loaded-program container.

These items can remain deferred without reopening the core contract above.

5. Practical Interpretation

For planning purposes, the Host ABI path should now be treated as closed for gate evaluation.

That means:

  • it does not block the next phase,
  • it does not require a semantic redesign before backend/runtime work continues,
  • and any remaining work is implementation hardening or binary-format finalization.

6. References

  • 6. Host ABI Binding and Loader Resolution Specification.md
  • 7. Cartridge Manifest and Runtime Capabilities Specification.md
  • 8. Stdlib Environment Packaging and Loading Specification.md