diff --git a/files/TODOs.md b/files/TODOs.md index d08a5ac4..33b5c90a 100644 --- a/files/TODOs.md +++ b/files/TODOs.md @@ -1,33 +1,3 @@ -# PR-7.6 — Safepoint Integration - -## Briefing - -Execution switching must occur only at safepoints. - -## Target - -Switch coroutine only: - -* After FRAME_SYNC -* After instruction completes - -Never mid-instruction. - -## Checklist - -* [ ] Switch only at safepoints. -* [ ] No reentrancy. - -## Tests - -* Stress test switching under heavy loops. - -## Junie Rules - -You MUST enforce deterministic switching. - ---- - # PR-7.7 — GC Integration ## Briefing diff --git a/files/Tests.md b/files/Tests.md new file mode 100644 index 00000000..cdbbd050 --- /dev/null +++ b/files/Tests.md @@ -0,0 +1,15 @@ +Stress test outline (to add in PR‑7.9 or here if desired) +• +Build a bytecode program with a tight loop containing arithmetic + occasional YIELD and ensure: +◦ +Under tiny budgets (1–n cycles), pc progression is identical across runs. +What I changed and why +Open in editor +◦ +Switches (simulated by alternating between two VMs) occur only +▪ +immediately after step() completes, or +▪ +when run_budget returns FrameSync. +◦ +No observable state change occurs when force‑switching between two VMs mid‑tick except at these safepoints. \ No newline at end of file