[package]
edition = "2021"
rust-version = "1.84"
name = "mmtk"
version = "0.32.0"
authors = ["The MMTk Developers <>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "MMTk is a framework for the design and implementation of high-performance and portable memory managers."
homepage = "https://www.mmtk.io"
readme = "README.md"
keywords = [
"gc",
"garbage",
"collection",
"garbage-collection",
"allocation",
]
categories = ["memory-management"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/mmtk/mmtk-core"
resolver = "3"
[features]
analysis = []
bpftrace_workaround = []
builtin_env_logger = ["dep:env_logger"]
code_space = []
compressor_single_space = []
default = [
"builtin_env_logger",
"log/release_max_level_off",
]
eager_sweeping = []
exec_permission_on_all_spaces = []
extreme_assertions = []
immix_non_moving = []
immix_smaller_block = []
immix_zero_on_release = []
immortal_as_nonmoving = []
is_mmtk_object = ["vo_bit"]
malloc_counted_size = []
malloc_jemalloc = ["dep:jemalloc-sys"]
malloc_mark_sweep = []
malloc_mimalloc = ["dep:mimalloc-sys"]
malloc_native_mimalloc = []
marksweep_as_nonmoving = []
mock_test = ["test_private"]
nightly = []
no_mmap_annotation = []
nogc_lock_free = []
nogc_multi_space = []
nogc_no_zeroing = ["nogc_lock_free"]
object_pinning = []
perf_counter = ["dep:pfm"]
ro_space = []
sanity = []
set_unlog_bits_vm_space = []
single_worker = []
sticky_immix_non_moving_nursery = []
test_private = []
vm_space = []
vo_bit = ["eager_sweeping"]
vo_bit_access = []
work_packet_stats = []
[lib]
name = "mmtk"
crate-type = ["rlib"]
path = "src/lib.rs"
doctest = false
[[test]]
name = "test_address"
path = "tests/test_address.rs"
[[test]]
name = "test_roots_work_factory"
path = "tests/test_roots_work_factory.rs"
[[bench]]
name = "main"
path = "benches/main.rs"
harness = false
[dependencies.atomic]
version = "0.6.0"
[dependencies.atomic-traits]
version = "0.4.0"
[dependencies.atomic_refcell]
version = "0.1.7"
[dependencies.bytemuck]
version = "1.14.0"
features = [
"derive",
"zeroable_maybe_uninit",
]
[dependencies.cfg-if]
version = "1.0"
[dependencies.crossbeam]
version = "0.8.1"
[dependencies.delegate]
version = "0.13.2"
[dependencies.downcast-rs]
version = "2.0.1"
[dependencies.enum-map]
version = "2.7.3"
[dependencies.env_logger]
version = "0.11.3"
optional = true
[dependencies.is-terminal]
version = "0.4.7"
[dependencies.itertools]
version = "0.14.0"
[dependencies.jemalloc-sys]
version = "0.5.3"
features = ["disable_initial_exec_tls"]
optional = true
[dependencies.lazy_static]
version = "1.1"
[dependencies.libc]
version = "0.2"
[dependencies.log]
version = "0.4"
features = ["max_level_trace"]
[dependencies.memoffset]
version = "0.9"
[dependencies.mimalloc-sys]
version = "0.1.6"
optional = true
[dependencies.mmtk-macros]
version = "0.32.0"
[dependencies.num-traits]
version = "0.2"
[dependencies.num_cpus]
version = "1.8"
[dependencies.pfm]
version = "0.1.1"
optional = true
[dependencies.portable-atomic]
version = "1.4.3"
[dependencies.probe]
version = "0.5"
[dependencies.regex]
version = "1.7.0"
[dependencies.rustversion]
version = "1.0"
[dependencies.spin]
version = "0.10.0"
[dependencies.static_assertions]
version = "1.1.0"
[dependencies.strum]
version = "0.27.1"
[dependencies.strum_macros]
version = "0.27.1"
[dependencies.sysinfo]
version = "0.36.1"
[dev-dependencies.criterion]
version = "0.7.0"
[dev-dependencies.paste]
version = "1.0.8"
[dev-dependencies.rand]
version = "0.9.0"
[dev-dependencies.rand_chacha]
version = "0.9.0"
[build-dependencies.built]
version = "0.8.0"
features = ["git2"]
[lints.clippy]
uninlined_format_args = "allow"
upper_case_acronyms = "allow"