Skip to content

fix(diag): remove dead string-wrapper counter - #9900

Closed
proggeramlug wants to merge 1 commit into
PerryTS:mainfrom
proggeramlug:fix/9874-dead-string-wrapper-diag
Closed

fix(diag): remove dead string-wrapper counter#9900
proggeramlug wants to merge 1 commit into
PerryTS:mainfrom
proggeramlug:fix/9874-dead-string-wrapper-diag

Conversation

@proggeramlug

@proggeramlug proggeramlug commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Boxed string indices became virtual in #9810, which removed the only writer for the STRING_WRAPPERS diagnostic while leaving its state and output branch in place. The impossible counter and its stale GC-holder inventory exemption are now removed; the live primitive-method histogram and receiver-length attribution remain unchanged.

Validation:

  • Repository-wide scan confirms there is no remaining STRING_WRAPPERS, writer alias, or string_wrappers= output site
  • gc_runtime_root_holders.py self-test and inventory check pass: 1,357 declarations scanned, 347 valid inventory entries
  • scripts/run_lint_gates.sh: all 64 gates passed, 2 CI-only checks skipped locally
  • No version bump

Fixes #9874

Summary by CodeRabbit

  • Bug Fixes
    • Updated garbage-collection diagnostics to remove outdated string-wrapper counts.
    • Primitive dispatch reports now show only active method-call and receiver-character statistics.

@proggeramlug
proggeramlug force-pushed the fix/9874-dead-string-wrapper-diag branch from f83107c to e991e1c Compare September 6, 2026 16:27
@coderabbitai

coderabbitai Bot commented Sep 6, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: 9e2cd2e9-728e-42fb-a18c-d1441b5ae55f

📥 Commits

Reviewing files that changed from the base of the PR and between 0866940 and e991e1c.

📒 Files selected for processing (3)
  • changelog.d/9900-dead-string-wrapper-diag.md
  • crates/perry-runtime/src/gc/diag_sites.rs
  • scripts/gc_runtime_root_holders.json
💤 Files with no reviewable changes (1)
  • scripts/gc_runtime_root_holders.json

Included review availability: Your plan provides up to 8 included reviews per hour; 5 remain after this review.


📝 Walkthrough

Walkthrough

The change removes the unwritable STRING_WRAPPERS counter from GC primitive-dispatch diagnostics, deletes its root-holder entry, updates the related comment, and adds a changelog entry.

Changes

GC diagnostic cleanup

Layer / File(s) Summary
Remove dead counter
crates/perry-runtime/src/gc/diag_sites.rs, scripts/gc_runtime_root_holders.json, changelog.d/9900-dead-string-wrapper-diag.md
The STRING_WRAPPERS counter and its holder entry were removed. The primitive-method fallback comment was updated. The changelog records the diagnostic fix.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to e991e

GC primitive-dispatch diagnostics no longer emit the obsolete zero-valued string-wrapper counter; the remaining diagnostic histogram and process-exit reporting behavior remain intact. No current merge-readiness risk is identified.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: removing the dead string-wrapper diagnostic counter.
Description check ✅ Passed The description explains the cause, the implemented removal, the affected diagnostics, linked issue, validation results, and version-bump status. It does not use every template heading or checklist it…
Linked Issues check ✅ Passed The PR satisfies issue #9874 by removing the unwritable STRING_WRAPPERS counter, its unreachable output branch, and its stale GC-holder inventory entry. The live diagnostic logic remains unchanged.
Out of Scope Changes check ✅ Passed All changes support the linked issue: the diagnostic counter, its output, the related inventory entry, and the changelog documentation. No unrelated code changes are present.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 1 files. (1 skipped: 1 …
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@proggeramlug

Copy link
Copy Markdown
Contributor Author

Landed on main via merge train #9903. Validated as a tree: 64/64 lint gates, and perry-runtime/codegen/hir/stdlib all green (5,944 tests, 0 failures). Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

diag: [gc-primitive-dispatch] string_wrappers counter has no writer on main since #9810/#9814 (reads 0 unconditionally)

1 participant