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, a CopyContext 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.