fix(codegen): preserve observable nested array rows (#10733) - #11019
proggeramlug wants to merge 2 commits into
Conversation
|
Warning Review limit reachedNext included review available in 2 minutes. View limit detailsLimit details: You’ve used all 8 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (5)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Pulled from merge train 257. Three gap tests regress Run 35787084787, shards 2/3/4, fast mode, against the committed Linux snapshot. Attribution is by file ownership, not bisect, so treat it as strong rather than proven:
Suggested checks, cheapest first:
The underlying fix (#10733, preserving observable nested array rows) is wanted — this is about the three regressions, not the goal. Ping me when they're green and it rides the next train. |
(cherry picked from commit f891a81)
(cherry picked from commit f891a81)
(cherry picked from commit f891a81)
(cherry picked from commit f891a81)
(cherry picked from commit f891a81)
|
Landed on Cherry-picked from this PR's head Nothing needed from you. Thanks. |
Summary
Prevent the flat constant 2D array optimization from replacing observable JavaScript row objects. Candidates now remain on the normal heap path when a row escapes, is used as a value, or is written through, while direct element reads and read-only row aliases keep the flat table fast path.
Changes
array[row][column]andconst row = array[index]; row[column]optimizationRelated issue
Fixes #10733
Test plan
cargo test -p perry-codegen --lib(1674 passed, 1 ignored)cargo test -p perry-codegen collectors::mutation::tests --lib(8 passed after rebase)cargo fmt --all -- --checkpython3 scripts/check_test_registration.pyscripts/check_file_size.shrelease build of
perryandperry-runtime-staticonperrymaster.skelpo.netNode/Perry output parity for
test_issue_10733_nested_array_alias.tsLLVM trace: regression uses the heap representation; image convolution still emits
@perry_flat_image_conv_ts__4and direct GEP loadscargo build --releasecleancargo test --workspace --exclude perry-ui-ios --exclude perry-ui-tvos --exclude perry-ui-watchos --exclude perry-ui-gtk4 --exclude perry-ui-android --exclude perry-ui-windowspasses(if user-facing) Added or updated a test under
test-files/or a#[test]in the affected crate(if CLI / stdlib / runtime API changed) Updated
docs/src/(if touching a platform UI backend) Built
-p perry-ui-<backend>locally on that platformScreenshots / output
Checklist
feat:/fix:/docs:/chore:prefix convention used in the log