Seperate GC into multiple implementations #21
Closed
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.
After refactoring out common code, I want to separate the different modes of
zerogc-simple
into their own crates.Right now, we have two combinations of modes:
Feature flags control these modes.
We've already finished separating the (very complex) context code into its own
zerogc-context
crate, so we've already made great progress! (See commit 44b3463)I am planning to re-use much of this code when I implement generational GC (#14).
TODO
zerogc-context
malloc
implementation (usingstd::alloc
)small-object-arenas
code to the new APIzerogc-simple
into multiple implementationszerogc-arena
collector be separate fromzerogc-simple
???Open Questions
zerogc-mark
or have it somewhat duplicated among implementationszerogc-simple
could maybe have its own implementation to avoid overheadsimple
collector?zerogc-simple
implementation?To be clear, all of this will come before the release. zerogc v0.2.0 is gonna be big!
TODO: Get more comprehensive tests.