Three perry-codegen --test native_proof_regressions tests fail on current main (834922f03), asserting string-key PutValue WRITE-PIC routing:
mutable_string_key_rejects_static_write_pic — "a mutable key must use the complete generic PutValue path"
nested_same_shape_object_writes_version_one_through_four_fields
static_put_value_rejects_write_pic_when_rhs_can_allocate — "the rejected PIC case must retain the complete strict/sloppy runtime semantics"
Why CI is green on main
cargo-test does not execute this integration suite, and Tests / e2e-scoped only selects suites named by a PR's touched files — no recent diff mapped native_proof_regressions in (#6909's run selected only shadow_slot_hygiene). The suite first re-ran on PR #6911 (whose review-round edits touch the test file) and failed there; PR comment on #6911 carries the full triage chain.
Bisection anchors
Either the write-IC lanes are now intentionally admissible for these shapes (→ update the three expectations, with the mutable-key/strict-sloppy semantics re-verified byte-exact against Node) or the routing regressed (→ fix the lane gating). Also worth considering: teach scripts/ci_e2e_scope.py to map perry-codegen/src/** write-path files to this suite so routing regressions can't merge dark again.
Three
perry-codegen --test native_proof_regressionstests fail on currentmain(834922f03), asserting string-key PutValue WRITE-PIC routing:mutable_string_key_rejects_static_write_pic— "a mutable key must use the complete generic PutValue path"nested_same_shape_object_writes_version_one_through_four_fieldsstatic_put_value_rejects_write_pic_when_rhs_can_allocate— "the rejected PIC case must retain the complete strict/sloppy runtime semantics"Why CI is green on main
cargo-testdoes not execute this integration suite, andTests / e2e-scopedonly selects suites named by a PR's touched files — no recent diff mappednative_proof_regressionsin (#6909's run selected onlyshadow_slot_hygiene). The suite first re-ran on PR #6911 (whose review-round edits touch the test file) and failed there; PR comment on #6911 carries the full triage chain.Bisection anchors
0bfbf7cf8(pre-perf(codegen): representation-selection Phase 3a — canonical string locals (tagged-at-rest Str rep) #6909):static_put_value_rejects_write_pic_when_rhs_can_allocatepasses; the other two already fail on macOS-local runs there (dyn-IC lane routing —js_put_value_set_dyn_icappears where the tests expect genericjs_put_value_set), suggesting two layers: an older macOS-visible routing change (perf(codegen/runtime): #6812 — 3-way dynamic-key write IC (inline hit path, self-healing caches) #6895 3-way dynamic-key write IC lane) plus a perf(codegen): representation-selection Phase 3a — canonical string locals (tagged-at-rest Str rep) #6909-window change that flippedstatic_put_value(and the remaining two on linux).cargo test -p perry-codegen --test native_proof_regressions -- --test-threads=1 mutable_string_key nested_same_shape_object_writes static_put_value_rejects_write_picEither the write-IC lanes are now intentionally admissible for these shapes (→ update the three expectations, with the mutable-key/strict-sloppy semantics re-verified byte-exact against Node) or the routing regressed (→ fix the lane gating). Also worth considering: teach
scripts/ci_e2e_scope.pyto mapperry-codegen/src/**write-path files to this suite so routing regressions can't merge dark again.