Description Context
#63 still lists finalizer_safe() as an open runtime utility parity gap.
Current collectors already track collection state (is_collecting), but there is no unified public parity surface for this utility.
Problem
Boa-facing API compatibility expects a finalizer_safe() style check.
Without this, integration work in #26/#28 lacks a direct parity hook for finalizer-phase safety checks.
Proposed scope
Define and document finalizer_safe() parity behavior for Oscars collectors.
Add the API in both mark_sweep and mark_sweep_arena2 surfaces with consistent semantics.
Add focused tests proving expected behavior during and outside collection/finalization-sensitive paths.
Update parity tracking in #63 once implemented.
Non-goals
No collector algorithm changes.
No allocator policy changes.
No broad Boa integration wiring in this issue.
Acceptance criteria
finalizer_safe() is available with consistent behavior in both collectors.
Tests cover true/false behavior around collection state transitions.
Workspace checks pass (fmt, test, clippy, and miri where applicable).
Reactions are currently unavailable
You can’t perform that action at this time.
Context
#63still listsfinalizer_safe()as an open runtime utility parity gap.is_collecting), but there is no unified public parity surface for this utility.Problem
finalizer_safe()style check.#26/#28lacks a direct parity hook for finalizer-phase safety checks.Proposed scope
finalizer_safe()parity behavior for Oscars collectors.mark_sweepandmark_sweep_arena2surfaces with consistent semantics.#63once implemented.Non-goals
Acceptance criteria
finalizer_safe()is available with consistent behavior in both collectors.fmt,test,clippy, andmiriwhere applicable).