Commit 06f5e4a
feat(reg-vm): J0.1 enable precise resume by default
Make precise deopt resume the production default: a native guard bail now
reconstructs the live interpreter window and resumes at the safepoint instead of
re-running the function from the top. Sound since the J0.1 heap-aware
reconstruction landed (scalars restored, heap/flat regs left to the frame).
- `eval_main_with_args_native` (+ `_with_stats`): pass `precise_deopt_override =
true`. This is what the CLI and the differential `vm-jit-native` backend use.
- re-run-from-top remains the byte-identical fallback when a heap write disables
precise resume (`can_precise_deopt_resume`), and stays under differential
coverage via the force-deopt backend (`eval_main_with_args_native_force_deopt`
keeps precise=false). `RSS_JIT_PRECISE_DEOPT` still forces it on elsewhere.
Validated byte-identical corpus-wide: differential 33/0 first with
RSS_JIT_PRECISE_DEOPT=1 (proving precise resume matches every backend), then
again after the default flip; rsscript lib 276/0, jit_acceptance 83/0, default
workspace build OK.
Remaining for full J0.1: inlined logical-frame-chain state-map format, and
heap-payload-variant / live-out composite-heap-value reconstruction (rebuilding
native-built variant/struct values with heap payloads across a bail; today such
arms bail).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent c4df737 commit 06f5e4a
2 files changed
Lines changed: 21 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1269 | 1269 | | |
1270 | 1270 | | |
1271 | 1271 | | |
1272 | | - | |
| 1272 | + | |
| 1273 | + | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
1273 | 1279 | | |
1274 | 1280 | | |
1275 | 1281 | | |
| |||
1293 | 1299 | | |
1294 | 1300 | | |
1295 | 1301 | | |
1296 | | - | |
| 1302 | + | |
| 1303 | + | |
| 1304 | + | |
1297 | 1305 | | |
1298 | 1306 | | |
1299 | 1307 | | |
| |||
1493 | 1501 | | |
1494 | 1502 | | |
1495 | 1503 | | |
1496 | | - | |
1497 | | - | |
1498 | | - | |
1499 | | - | |
1500 | | - | |
1501 | | - | |
1502 | | - | |
| 1504 | + | |
| 1505 | + | |
| 1506 | + | |
| 1507 | + | |
| 1508 | + | |
| 1509 | + | |
| 1510 | + | |
| 1511 | + | |
| 1512 | + | |
1503 | 1513 | | |
1504 | 1514 | | |
1505 | 1515 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
40 | | - | |
| 39 | + | |
| 40 | + | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| |||
0 commit comments