prometeu-runtime/docs/specs/pbs/files/PRs para Junie.md
Nilton Constantino c797be9287
pr 34
2026-01-30 16:07:45 +00:00

81 lines
1.7 KiB
Markdown

## PR-10 — HIP ABI Freeze v0: Trap Conditions + Debug Surface
### Goal
Freeze the runtime-visible ABI behavior for HIP operations.
### Required Content (Normative)
Add a document (or module-level docs) defining traps:
* Invalid `GateId` → trap `TRAP_INVALID_GATE`
* Dead gate access → trap `TRAP_DEAD_GATE`
* Out-of-bounds offset (`offset >= slots`) → trap `TRAP_OOB`
* Type mismatch (if enforced) → trap `TRAP_TYPE`
Define what a trap includes:
* opcode
* message
* optional span (if debug info is present)
### Required Changes
* Add trap codes/constants in bytecode/VM interface.
* Ensure bytecode format reserves space / structure for propagating trap info.
### Tests (Mandatory)
* Unit tests verifying trap codes are stable (numeric values frozen).
* Doc tests or snapshot for ABI text.
---
## PR-11 — Cross-Layer Conformance Tests: Core→VM→Bytecode (HIP)
### Goal
Prove end-to-end determinism and stability.
### Required Tests
1. PBS snippet (or Core IR fixture) that:
* allocates a storage struct
* mutates a field
* peeks value
Assert:
* VM IR contains:
* `Alloc(type_id, slots)`
* `GateBeginMutate/EndMutate`
* `GateStore(offset)`
* `GateBeginPeek/EndPeek`
* `GateLoad(offset)`
* RC ops (retain/release)
2. Bytecode golden output for the same program:
* assert the exact bytes match the frozen ISA/ABI.
### Non-goals
* No runtime execution
---
## STOP POINT (Hard Gate)
* HIP access is fully deterministic
* RC events are explicit and testable
* HIP ISA/ABI v0 is frozen with golden bytecode tests
Only after this point may we implement/tune:
* Gate Pool
* Heap allocation
* RC counters + safe point reclaim
* Traps at runtime