Module mmtk::plan [−][src]
GC algorithms from the MMTk suite.
This module provides various GC plans, each of which implements a GC algorithm. Generally a plan consists of a few parts:
- A plan type that implements the
Plan
trait, which defines spaces used in the plan, and their behaviors in GC and page accounting. - A mutator definition, which describes the mapping between allocators and allocation semantics, and the mapping between allocators and spaces. If the plan needs barrier, the barrier definition is also included here.
- A constant for
PlanConstraints
, which defines plan-specific constants. - Plan-specific
GCWork
, which is scheduled during GC. If the plan implements a copying GC, aCopyContext
also needs to be provided.
For more about implementing a plan, it is recommended to read the MMTk tutorial.
Re-exports
pub use self::global::AllocationSemantics; |
pub use self::global::CopyContext; |
pub use self::global::Plan; |
pub use self::mutator_context::Mutator; |
pub use self::mutator_context::MutatorContext; |
pub use self::plan_constraints::PlanConstraints; |
pub use self::tracelocal::TraceLocal; |
pub use self::transitive_closure::TransitiveClosure; |
Modules
barriers | Read/Write barrier implementations. |
controller_collector_context | The GC controller thread. |
gencopy | Plan: generational copying |
global | The global part of a plan implementation. |
marksweep | |
mutator_context | Mutator context for each application thread. |
nogc | Plan: nogc (allocation-only) |
plan_constraints | Plan-specific constraints. |
semispace | Plan: semispace |
tracelocal | Unsynchronized thread-local trace mechanism (superseded by ProcessEdgesWork). |
transitive_closure | The fundamental mechanism for performing a transitive closure over an object graph. |