Skip to content

docs/test(gc): establish a current collector source of truth and remove deleted knobs from live gates #7877

Description

@proggeramlug

Summary

The GC documentation no longer has a reliable current entry point, and a deleted collector knob remains in an executable CI stress script. After ~200 GC-heavy commits in four days, several documents present mutually exclusive states as current.

Concrete drift on main (79d2f59ed, v0.5.1473):

Evidence

Proposed structure

Create one short, current GC architecture/operations page covering:

  • shipped collector modes and actual env knobs;
  • nursery/old-gen regions, copying vs fallback/full paths;
  • root mechanism by target, barriers, weak processing, memory pressure, block pooling, and old-defrag status;
  • the authoritative validation commands/workflows and which are required contexts;
  • links to historical experiment journals clearly marked as historical/chronological evidence.

Do not rewrite valuable experiment history. Put a prominent dated supersession banner and a current conclusion at the top, then link to the current page.

Acceptance criteria

  • A reader can identify the shipped GC/rooting defaults and supported knobs from one current page without reconciling chronological journals.
  • Historical plans/experiments are labeled historical and no longer make an obsolete opening decision look current.
  • Remove PERRY_GEN_GC_EVACUATE from executable test environments, source docs, and generated translation source; replace each test arm with the actual knob/subject it intends to exercise.
  • Add a cheap stale-knob check: executable scripts/docs claiming GC env knobs must match an allowlisted runtime/codegen parser (with explicit historical-doc exemptions).
  • Correct the GC source path and freshness cadence.
  • Update or retire the “authoritative” claim/tracker in engine-plan.md.

Activity

  1. added
    documentationImprovements or additions to documentation
    toolingDeveloper tooling, CI, tests, or release infrastructure
    on Aug 11, 2026
  2. self-assigned this
    on Aug 11, 2026
  3. proggeramlug commented on Aug 12, 2026

    @proggeramlug
    ContributorAuthor

    ?Reopening after the v0.5.1473?v0.5.1481 re-audit: the new ?current source of truth? drifted in the same landing train that created it.

    Current false/stale statements:

    The new check_gc_env_knobs.py gate is working and all its self/live checks pass on Windows. The remaining gap is architectural claim drift: later GC PRs can update code and close the cited issue without being required to update the current page/ratchet semantics.

    Suggested acceptance addition: add a PR checklist or cheap source-marker test for collector changes that touch weakref.rs, pool policy, tenuring/promotion, or heap accounting, and require the current GC page plus ratchet metric definitions to be reviewed in the same PR. At minimum, remove issue-status prose that silently becomes false when the issue closes.

    One more concrete drift item: memory-model.md's entire Source map still points to the deleted monolithic crates/perry-runtime/src/gc.rs (including obsolete line numbers). The implementation is now src/gc/mod.rs plus the split module tree, so none of those source links identifies a real file on current main.

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

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationtoolingDeveloper tooling, CI, tests, or release infrastructure

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions