Skip to content

docs(gc): state the static checker's scope and its three blind spots - #7289

Merged
proggeramlug merged 1 commit into
mainfrom
docs/7289-checker-scope
Aug 3, 2026
Merged

docs(gc): state the static checker's scope and its three blind spots#7289
proggeramlug merged 1 commit into
mainfrom
docs/7289-checker-scope

Conversation

@proggeramlug

@proggeramlug proggeramlug commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Addresses the Major review comment on #7281, which I merged past.

docs/src/internals/gc-rooting-invariant.md said:

scripts/gc_root_dominance_check.py is structurally blind to this class

and, eight lines later:

It is the only instrument that sees this class before it crashes.

Both sentences were true of different classes, but read sequentially they contradict, and the second is the one someone acts on. That is how a clean checker report becomes evidence of safety.

This states the scope explicitly — emitted-LLVM rooting hazards — and names the three blind spots, each attributed to the incident that found it:

Also points at the coverage gap #7280 records: 25 curated corpus files pass while 20 lines of stock zod fail, so a dependency-scale workload belongs in the checklist next to the zeal arms.

Docs only.

Summary by CodeRabbit

  • Documentation
    • Clarified the static checker’s scope and limitations when identifying emitted-code garbage-collection rooting hazards.
    • Documented known blind spots, including runtime caches, unrooted runtime locals, and symbols missing from analyzed symbol sets.
    • Added guidance on symbol matching, potential false classifications, and complementary runtime validation techniques.
    • Added a changelog entry summarizing these limitations.

@proggeramlug
proggeramlug merged commit fc9db05 into main Aug 3, 2026
30 of 39 checks passed
@proggeramlug
proggeramlug deleted the docs/7289-checker-scope branch August 3, 2026 06:54
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 466c16b1-3303-492e-8262-65e110e27356

📥 Commits

Reviewing files that changed from the base of the PR and between 16da69f and 1e82573.

📒 Files selected for processing (2)
  • changelog.d/7289-clarify-static-checker-scope.md
  • docs/src/internals/gc-rooting-invariant.md

📝 Walkthrough

Walkthrough

The PR documents the static checker’s emitted-LLVM scope, three known blind spots, symbol-set classification issues, and validation methods. It adds matching changelog text.

Changes

Static checker scope documentation

Layer / File(s) Summary
Scope and limitation documentation
docs/src/internals/gc-rooting-invariant.md, changelog.d/7289-clarify-static-checker-scope.md
The documentation limits checker coverage to emitted-LLVM rooting hazards, lists runtime caches, unrooted runtime locals, and omitted symbols as blind spots, and describes validation with zeal/quarantine instrumentation and broad workloads.

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

Possibly related issues

Possibly related PRs

  • PerryTS/perry#7192 — Introduces and uses the static GC-rooting checker whose scope this PR documents.
  • PerryTS/perry#7212 — Updates the same GC-rooting invariant documentation.
  • PerryTS/perry#7284 — Modifies the checker’s POLL_CAPABLE_RUNTIME symbol matching documented here.

Suggested reviewers: jdalton

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/7289-checker-scope

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.

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.

1 participant