Commit 89192db
committed
jit: publish the vable promote snapshots in emission order, and fix the four callers the enum broke
`capture_vable_promote_guard` walked `0..minted`, newest guard first.
`publish_last_guard_resume_snapshot` is not side-effect free -- it leaves the
root frame's in-flight result slot cleared (`root_inflight_int_result`) -- so
the order decides what the earlier guard's snapshot sees. `generate_guard`
(pyjitpl.py:2582-2603) captures each guard synchronously as it is emitted, so
the loop runs oldest-first.
The `bool -> VableArrayStore` return also broke four `assert!` call sites in
`pyre-jit-trace`'s test module, which a release binary build and
`cargo test -p majit-metainterp` both compile past; `cargo check --workspace
--all-targets` is what reports them. `VableArrayStore` is re-exported from the
crate root so the external test can name it.
The doc comment claimed pyre's two snapshots match what upstream would produce.
They do not: `MetaInterp.replace_box` walks the framestack
(`frame.replace_active_box_in_frame`) and `TraceCtx::replace_box` does not, so
upstream's second capture would see the standard box. Stated as the pre-existing
gap it is.
Assisted-by: Claude1 parent a2fa306 commit 89192db
3 files changed
Lines changed: 54 additions & 39 deletions
File tree
- majit/majit-metainterp/src
- pyjitpl
- pyre/pyre-jit-trace/src/jitcode_dispatch
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
171 | 171 | | |
172 | 172 | | |
173 | 173 | | |
| 174 | + | |
174 | 175 | | |
175 | 176 | | |
176 | 177 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1487 | 1487 | | |
1488 | 1488 | | |
1489 | 1489 | | |
1490 | | - | |
1491 | | - | |
1492 | | - | |
1493 | | - | |
| 1490 | + | |
| 1491 | + | |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
1494 | 1498 | | |
1495 | 1499 | | |
1496 | 1500 | | |
| |||
1524 | 1528 | | |
1525 | 1529 | | |
1526 | 1530 | | |
1527 | | - | |
| 1531 | + | |
1528 | 1532 | | |
1529 | 1533 | | |
1530 | 1534 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
570 | 570 | | |
571 | 571 | | |
572 | 572 | | |
573 | | - | |
574 | | - | |
575 | | - | |
576 | | - | |
577 | | - | |
578 | | - | |
579 | | - | |
580 | | - | |
581 | | - | |
582 | | - | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
583 | 586 | | |
584 | 587 | | |
585 | 588 | | |
| |||
598 | 601 | | |
599 | 602 | | |
600 | 603 | | |
601 | | - | |
602 | | - | |
603 | | - | |
604 | | - | |
605 | | - | |
606 | | - | |
607 | | - | |
608 | | - | |
609 | | - | |
610 | | - | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
611 | 617 | | |
612 | 618 | | |
613 | 619 | | |
614 | 620 | | |
615 | 621 | | |
616 | | - | |
617 | | - | |
618 | | - | |
619 | | - | |
620 | | - | |
621 | | - | |
622 | | - | |
623 | | - | |
624 | | - | |
625 | | - | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
626 | 635 | | |
627 | 636 | | |
628 | 637 | | |
629 | | - | |
630 | | - | |
631 | | - | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
632 | 642 | | |
633 | 643 | | |
634 | 644 | | |
| |||
0 commit comments