69 lines
1.9 KiB
Markdown
69 lines
1.9 KiB
Markdown
# PR-1.6 — Canonical Function Boundaries & `FRAME_SYNC` Placement (Bytecode Layout)
|
|
|
|
### Briefing
|
|
|
|
GC and coroutine scheduling rely on deterministic safepoints. The bytecode layout must define canonical function boundaries and `FRAME_SYNC` semantics at the bytecode layer.
|
|
|
|
### Target
|
|
|
|
* Enforce canonical function ranges and end labels.
|
|
* Ensure `FRAME_SYNC` placement rules are representable and checkable.
|
|
|
|
### Work items
|
|
|
|
* Review current layout utilities and make them canonical for:
|
|
|
|
* Computing function `code_len`.
|
|
* Determining valid jump targets (instruction boundaries).
|
|
* Determining function end boundary.
|
|
* Document `FRAME_SYNC` at the bytecode level:
|
|
|
|
* What it signals.
|
|
* Where it is required (as per updated specs).
|
|
* Update disasm to clearly display `FRAME_SYNC`.
|
|
|
|
### Acceptance checklist
|
|
|
|
* [ ] Function boundaries are computed via a single canonical routine.
|
|
* [ ] `FRAME_SYNC` is clearly represented and documented.
|
|
* [ ] Existing verifier/layout tests (if any) are updated.
|
|
* [ ] `cargo test` passes.
|
|
|
|
### Tests
|
|
|
|
* Add or update unit tests for layout boundary correctness (e.g., end-exclusive semantics).
|
|
|
|
---
|
|
|
|
# PR-1.7 — Bytecode Roundtrip Tests (Encode/Decode/Disasm Sanity)
|
|
|
|
### Briefing
|
|
|
|
Before touching VM behavior, we want confidence that the bytecode toolchain is coherent after the ISA reset.
|
|
|
|
### Target
|
|
|
|
* Add roundtrip tests that validate:
|
|
|
|
* Encode → decode preserves structure.
|
|
* Disasm prints stable, readable output.
|
|
|
|
### Work items
|
|
|
|
* Add a small set of “known-good” bytecode samples built using the new minimal ISA.
|
|
* Implement tests:
|
|
|
|
* Encode then decode equals original structure.
|
|
* Disasm output contains expected instruction names and operands.
|
|
* Keep samples intentionally tiny and deterministic.
|
|
|
|
### Acceptance checklist
|
|
|
|
* [ ] Roundtrip tests exist and pass.
|
|
* [ ] Samples do not depend on legacy semantics.
|
|
* [ ] `cargo test` passes.
|
|
|
|
### Tests
|
|
|
|
* New unit tests for encode/decode/disasm roundtrip.
|