gc: add unsafe_empty_trace parity and collector-agnostic helper paths#77
Open
Flamki wants to merge 2 commits intoboa-dev:mainfrom
Open
gc: add unsafe_empty_trace parity and collector-agnostic helper paths#77Flamki wants to merge 2 commits intoboa-dev:mainfrom
Flamki wants to merge 2 commits intoboa-dev:mainfrom
Conversation
nekevss
requested changes
Apr 21, 2026
Member
nekevss
left a comment
There was a problem hiding this comment.
overall looking good. Just one major thing that I noticed.
| /// Collector-agnostic trace API re-export used by derive/macros. | ||
| /// | ||
| /// Both mark-sweep collectors currently share the same trace traits. | ||
| pub mod gc_trace { |
Member
There was a problem hiding this comment.
issue: we shouldn't reexport these items from gc_trace
Eventually we should resolve export paths, but as it stands, the trace functionality is very specific to the mark sweep gc.
Contributor
Author
There was a problem hiding this comment.
Thanks for the review — agreed, and fixed.
I removed the gc_trace re-export from lib.rs and switched macro/derive paths back to explicit mark_sweep trace exports.
unsafe_empty_trace! parity is still included, and tests remain in place for both collectors.
I also reran fmt, tests, clippy, and miri locally; all green.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #76 and #63.
This PR adds missing
unsafe_empty_trace!parity and removes helper macro coupling tomark_sweep-specific paths.What changed
oscars::gc_trace.mark_sweep::trace:empty_trace!now resolves through$crate::gc_trace.custom_trace!now resolves through$crate::gc_trace.unsafe_empty_trace!macro.oscars_derivegenerated trait paths from::oscars::mark_sweep::*to::oscars::gc_trace::*.unsafe_empty_trace_runs_finalizein mark_sweepunsafe_empty_trace_runs_finalizein mark_sweep_arena2Why
#63still tracksunsafe_empty_trace!as an open parity gap.mark_sweep_arena2/trace.rspreviously called out brittle hardcoded helper paths.Scope
Validation
cargo fmt --all -- --checkcargo test --workspace -qcargo clippy --workspace --all-features --all-targets -qcargo +nightly miri test -p oscars --all-features -q