vmkit-core/vmkit/Cargo.toml
2025-03-05 08:44:24 +07:00

48 lines
1.4 KiB
TOML

[package]
name = "vmkit"
version = "0.1.0"
edition = "2021"
[dependencies]
atomic = "0.6.0"
bytemuck = "1.21.0"
cfg-if = "1.0.0"
cfgenius = "0.1.1"
clap = { version = "4.5.28", features = ["derive"] }
easy-bitfield = "0.1.0"
env_logger = "0.11.6"
errno = "0.3.10"
libc = "0.2.169"
log = { version = "0.4.25" }
mmtk = { git = "https://github.com/mmtk/mmtk-core" }
parking_lot = "0.12.3"
paste = "1.0.15"
rand = "0.9.0"
sysinfo = "0.33.1"
vmkit-proc = { path = "../vmkit-proc", optional = true }
[features]
default = ["cooperative", "address_based_hashing", "object_pinning", "derive"]
vmside_forwarding = []
derive = ["vmkit-proc"]
object_pinning = ["mmtk/object_pinning"]
address_based_hashing = []
uncooperative = ["cooperative", "mmtk/immix_non_moving", "mmtk/immix_zero_on_release"]
# VMKit is built for use in cooperative runtime. Such runtime
# would be able to use write barriers and safepoints. Such environment
# must also provide precise object layout (stack can be uncooperative).
cooperative = ["object_pinning", "mmtk/vo_bit", "mmtk/is_mmtk_object", "mmtk/vo_bit_access"]
# VMKit is built for use in full-precise runtime. Such runtime
# would be able to use precise write barriers and safepoints, object
# layout is fully precise.
full-precise = []
[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3.9", features = ["everything"] }
[lib]
crate-type = ["cdylib", "rlib"]