Expand description
Utilities used by other modules, including allocators, heap implementation, etc.
Re-exports§
pub use self::address::Address;
pub use self::address::ObjectReference;
pub use self::opaque_pointer::*;
Modules§
- An abstract of memory address and object reference.
- Allocators Various allocators implementation.
- analysis πAn analysis framework for collecting data and profiling in GC.
- Helpers for making native APIs. This module contain helpers for the convenience of exposing the MMTk API to native (usually C/C++) programs.
- Constants used in MMTk
- Calculation, conversion and rounding for memory related numbers.
- The copy allocators for a GC worker.
- epilogue πUtilities for implementing epilogues.
- erase_
vm πNon-generic refs to generic types of<VM>
. MMTk usescrate::vm::VMBinding
, which allows us to call into bindings with little overhead. As a result, some types in MMTk are generic types with a type parameter<VM>
. However, in some cases, using generic types is not allowed. For example, in an object-safe trait, the methods cannot be generic, thus the methodβs parameters cannot be generic types. - Finalization implementation.
- freelist πA very simple, generic malloc-free allocator
- Heap implementation, including page resource, mmapper, etc.
- int_
array_ πfreelist Implementation of GenericFreeList by an int vector. - Checking if an address is an valid MMTk object.
- Linear scan through a heap range
- logger πLogger initialization This module provides a built-in logger implementation.
- Various malloc implementations (conditionally compiled by features) This module exposes a set of malloc API. They are currently implemented with the library malloc. This may change in the future, and will be replaced with a native MMTk implementation. We have two versions for each function:
- Wrapper functions for memory syscalls such as mmap, mprotect, etc.
- Metadata (OnSide or InHeader) implementation. This is a generic module to work with metadata including side metadata and in-object metadata.
- object_
enum πHelper types for object enumeration - object_
forwarding πForwarding word in object copying. - Opaque pointers used in MMTk, e.g. VMThread.
- MMTk command line options.
- raw_
memory_ πfreelist Implementation of GenericFreeList backed by raw memory, allocated on demand direct from the OS (via mmap). - reference_
processor πReference processing implementation. - rust_
util πUtilities funcitons for Rust This module works around limitations of the Rust programming language, and provides missing functionalities that we may expect the Rust programming language and its standard libraries to provide. - sanity πSanity checker for GC.
- slot_
logger πLogging slots to check duplicated edges in GC. This is a simple module to log slogs and check for duplicate slots. - statistics πUtils for collecting statistics.
- treadmill πA treadmill implementation.