style: clear two of the lint backlog items blocking every merge (fmt + GC knob kill-policy) - #7042
Merged
Conversation
added 2 commits
July 30, 2026 07:28
cargo fmt --all -- --check was failing on main for: crates/perry-codegen/src/lower_call/native/mod.rs crates/perry-runtime/src/object/global_this/install_static.rs crates/perry/src/commands/check.rs crates/perry/src/commands/deps.rs Pure formatting -- line breaking only, no semantic change; the diff is four call/macro argument lists being wrapped. These sit behind the stale public-benchmark-baseline step in the lint gate, so they were invisible until that failure was investigated. Part of clearing the lint backlog that currently blocks every merge.
…figuration Every GC env knob either has a required CI arm exercising its OFF state, or it is deleted after one release of soak. At most one diagnostic-only knob, labelled untested. Written down because the project has paid for unexercised modes three times: PERRY_GC_FORCE_EVACUATE was inert for every gc()-driven test (#6942/#6946); the matrix's --pressure knob disabled the path it was measuring (#7024); and gc_incremental_enabled's doc claimed the opposite of its actual default, which changed a merge decision (#6987). A mode that still exists is a decision that hasn't been made.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (6)
📝 WalkthroughWalkthroughThe PR documents binding policy for GC environment knobs and reformats four Rust code locations to satisfy rustfmt checks. It also adds a changelog entry describing the formatting-only updates. ChangesGC knob policy
Rust formatting cleanup
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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 |
This was referenced Jul 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
lintis red repo-wide, so nothing merges. The failures are stacked — each one hides the next, which is why they surfaced one at a time:cargo fmt --all -- --checkcheck_file_size.sh(2000-line cap)addr_class_inventory.pynative_module/constants.rs:2088This PR clears (2) and adds the knob kill-policy. It does not pretend to unblock
linton its own — (1) is not delegable and (3)/(4) are separate changes.Part 1 — rustfmt
Four files had drifted:
Pure formatting — the entire diff is four call/macro argument lists being wrapped. +12/−10.
Part 2 — GC knob kill-policy in
CLAUDE.mdWritten down because this project has paid for unexercised modes three times in the last week:
PERRY_GC_FORCE_EVACUATEwas inert for everygc()-driven test — it is read only on the minor path, whilegc()runs a full mark-sweep with a forced conservative scan (gc: no reachable configuration exercises an evacuating minor with unpinned runtime locals — the #6655/#6935 bug class is untestable #6942/GC testing: PERRY_GC_FORCE_EVACUATE is inert for gc()-driven tests (full mark-sweep + forced conservative scan) — stress claims may be unsupported #6946). Months of "passes under evacuation" meant nothing.--pressureknob disabled the very path it was measuring — the defer hard cap and the arena-trigger ceiling share a formula and collapse together, so thedefaultarm ran zero copying minors on all 22 rows (gc-matrix: --pressure disables the very path #7019 added — the 'default' arm runs ZERO copying minors on all 22 corpus rows #7024).gc_incremental_enabled's doc said "EXPERIMENTAL — default OFF" eight lines above a body comment saying "DEFAULT ON" (gc: policy gate docs state "default OFF" while the code defaults ON (gc_incremental_enabled, gc_safepoint_moving_minor) — this caused #6972 to dismiss a real concern #6987). A merge decision was made on the wrong one.The principle: a mode that still exists is a decision that hasn't been made. When a knob's off-state stops being exercised, the off-state and the branch behind it should stop compiling, rather than lingering as an untested configuration a future bisect will trust.
For whoever takes item (3)
The 7 files over the cap:
Deliberately untouched: splitting seven files is a mechanical but non-trivial change and folding it into a formatting PR would make both unreviewable.
Validation
cargo fmt --all -- --checkclean on this branch. No semantic change, so no behavioural verification is claimed.Summary by CodeRabbit
Documentation
Style