Skip to content

GC: enable automatic compaction at shared precise safepoints #446

Description

@chrisbbreuer

Parent: #134
Extends: #144
Related: #145, #433
Blocks: #147, #246

Explicit fail-closed compaction is complete, but the README removal gate still requires production policy that can schedule movement automatically and coordinate it safely with concurrent/shared-realm execution. This issue owns automatic triggering and shared precise stop windows; it does not weaken the existing raw-pointer or conservative-stack fail-closed rules.

Acceptance

  • Define a deterministic fragmentation/retained-backing trigger with bounded hysteresis and exact telemetry; no benchmark-source recognition.
  • Schedule compaction from ordinary allocation/collection pressure and consume it at every declared precise interpreter, baseline, optimizer, embedding, and shared-realm safepoint.
  • Coordinate all live shared-realm mutators and concurrent/minor collectors before movement, with bounded park/abort behavior and no movement under conservative or opaque native frames.
  • Preserve stable identity, weak/finalization ordering, handles, inspector/debugger roots, Wasm roots, and exact resumable JIT state across the automatic stop window.
  • Make OOM, unsupported stacks, active host callbacks, and concurrent collector conflicts failure-atomic and observable through telemetry rather than silent partial movement.
  • Add single-mutator, no-GIL, concurrent-marker, native callback, optimizer, fault-injection, leak, TSan, and long-running fragmentation coverage.
  • Publish an exact-parent fragmentation/pause/throughput matrix and update the release compatibility inventory and README only from committed evidence.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions