149 lines
3.2 KiB
Markdown
149 lines
3.2 KiB
Markdown
# PR-2.4 — Consolidate Trap and Error Surface
|
||
|
||
### Briefing
|
||
|
||
With HIP removed, the runtime trap surface must be simplified and aligned with the new stack+heap model.
|
||
|
||
### Target
|
||
|
||
* Define a minimal, coherent set of runtime traps.
|
||
* Remove traps that only existed for HIP/RC semantics.
|
||
|
||
### Work items
|
||
|
||
* Audit the VM’s trap/error enums.
|
||
* Remove HIP/RC-related traps.
|
||
* Keep only traps that remain meaningful, such as:
|
||
|
||
* Illegal instruction.
|
||
* Stack underflow/overflow.
|
||
* Invalid jump target.
|
||
* Out-of-bounds memory access.
|
||
* Ensure trap handling paths are consistent and deterministic.
|
||
|
||
### Acceptance checklist
|
||
|
||
* [ ] Trap enum contains only relevant traps.
|
||
* [ ] No HIP/RC trap names remain.
|
||
* [ ] VM compiles and tests pass.
|
||
|
||
### Tests
|
||
|
||
* Adjust any tests expecting removed trap codes.
|
||
|
||
### Junie instructions
|
||
|
||
**You MAY:**
|
||
|
||
* Delete unused trap variants.
|
||
* Refactor match statements accordingly.
|
||
|
||
**You MUST NOT:**
|
||
|
||
* Add new trap categories without approval.
|
||
* Change the meaning of existing non-legacy traps.
|
||
|
||
**If unclear:**
|
||
|
||
* Ask before modifying trap semantics.
|
||
|
||
---
|
||
|
||
# PR-2.5 — Prepare Call Frame Structure for Closures and Coroutines
|
||
|
||
### Briefing
|
||
|
||
Before introducing closures and coroutines, the call frame structure must be neutral and future-proof, without HIP-specific fields.
|
||
|
||
### Target
|
||
|
||
* Simplify the call frame to a minimal, generic structure.
|
||
* Remove any HIP/borrow/gate-related fields.
|
||
|
||
### Work items
|
||
|
||
* Review the call frame struct.
|
||
* Remove fields tied to scope frames, borrow state, or gates.
|
||
* Ensure the frame contains only:
|
||
|
||
* Function identifier.
|
||
* Program counter.
|
||
* Base stack pointer.
|
||
* Locals or register area (if applicable).
|
||
* Keep the structure simple and extensible.
|
||
|
||
### Acceptance checklist
|
||
|
||
* [ ] Call frame struct has no HIP-related fields.
|
||
* [ ] VM call/return paths compile and work.
|
||
* [ ] `cargo test` passes.
|
||
|
||
### Tests
|
||
|
||
* Existing call-related tests must still pass.
|
||
|
||
### Junie instructions
|
||
|
||
**You MAY:**
|
||
|
||
* Remove unused fields from the frame.
|
||
* Refactor call/return code to match the new structure.
|
||
|
||
**You MUST NOT:**
|
||
|
||
* Introduce closure or coroutine logic yet.
|
||
* Redesign the call stack architecture.
|
||
|
||
**If unclear:**
|
||
|
||
* Ask before changing frame responsibilities.
|
||
|
||
---
|
||
|
||
# PR-2.6 — Remove Dead Runtime Modules and Symbols
|
||
|
||
### Briefing
|
||
|
||
After the VM reset, there will be leftover modules, helpers, or symbols that are no longer referenced. This PR performs a final cleanup pass.
|
||
|
||
### Target
|
||
|
||
* Remove dead or unreachable runtime code.
|
||
* Ensure the VM crate has a minimal, clean surface.
|
||
|
||
### Work items
|
||
|
||
* Use compiler warnings and search tools to find:
|
||
|
||
* Unused modules.
|
||
* Unused structs/enums/functions.
|
||
* Legacy HIP/RC terminology.
|
||
* Remove dead code.
|
||
* Update module trees and public exports.
|
||
|
||
### Acceptance checklist
|
||
|
||
* [ ] No dead modules remain.
|
||
* [ ] No HIP/RC terminology found in the VM crate.
|
||
* [ ] `cargo test` passes.
|
||
|
||
### Tests
|
||
|
||
* Existing tests only.
|
||
|
||
### Junie instructions
|
||
|
||
**You MAY:**
|
||
|
||
* Remove unused code and modules.
|
||
* Update `mod.rs` and exports.
|
||
|
||
**You MUST NOT:**
|
||
|
||
* Remove code that is still referenced.
|
||
* Replace deleted modules with new experimental ones.
|
||
|
||
**If unclear:**
|
||
|
||
* Ask before deleting anything that looks structurally important.
|