Module util

Module util 

Source
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Β§

address
An abstract of memory address and object reference.
alloc
Allocators Various allocators implementation.
analysis πŸ”’
An analysis framework for collecting data and profiling in GC.
api_util
Helpers for making native APIs. This module contain helpers for the convenience of exposing the MMTk API to native (usually C/C++) programs.
constants
Constants used in MMTk
conversions
Calculation, conversion and rounding for memory related numbers.
copy
The copy allocators for a GC worker.
epilogue πŸ”’
Utilities for implementing epilogues.
erase_vm πŸ”’
Non-generic refs to generic types of <VM>. MMTk uses crate::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.
finalizable_processor πŸ”’
Finalization implementation.
freelist πŸ”’
A very simple, generic malloc-free allocator
heap
Heap implementation, including page resource, mmapper, etc.
int_array_freelist πŸ”’
Implementation of GenericFreeList by an int vector.
is_mmtk_object
Checking if an address is an valid MMTk object.
linear_scan
Linear scan through a heap range
logger πŸ”’
Logger initialization This module provides a built-in logger implementation.
malloc
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:
memory
Wrapper functions for memory syscalls such as mmap, mprotect, etc.
metadata
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_pointer
Opaque pointers used in MMTk, e.g. VMThread.
options
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.