[package] authors = ["Miri Team"] description = "An experimental interpreter for Rust MIR (core driver)." license = "MIT OR Apache-2.0" name = "miri" repository = "https://github.com/rust-lang/miri" version = "0.1.0" default-run = "miri" edition = "2024" [lib] test = true # we have unit tests doctest = false # but no doc tests [[bin]] name = "miri" test = false # we have no unit tests doctest = false # and no doc tests [dependencies] getrandom = { version = "0.3", features = ["std"] } rand = "0.9" smallvec = { version = "1.7", features = ["drain_filter"] } aes = { version = "0.8.3", features = ["hazmat"] } measureme = "12" chrono = { version = "0.4.38", default-features = false } chrono-tz = "0.10" directories = "6" bitflags = "2.6" serde_json = { version = "1.0", optional = true } # Copied from `compiler/rustc/Cargo.toml`. # But only for some targets, it fails for others. Rustc configures this in its CI, but we can't # easily use that since we support of-tree builds. [target.'cfg(any(target_os = "linux", target_os = "macos"))'.dependencies.tikv-jemalloc-sys] version = "0.6.0" features = ['unprefixed_malloc_on_supported_platforms'] [target.'cfg(unix)'.dependencies] libc = "0.2" libffi = "4.0.0" libloading = "0.8" [target.'cfg(target_os = "linux")'.dependencies] nix = { version = "0.30.1", features = ["mman", "ptrace", "signal"] } ipc-channel = "0.19.0" serde = { version = "1.0.219", features = ["derive"] } capstone = "0.13" [dev-dependencies] ui_test = "0.29.1" colored = "2" rustc_version = "0.4" regex = "1.5.5" tempfile = "3" [package.metadata.rust-analyzer] # This crate uses #[feature(rustc_private)]. # See https://github.com/rust-analyzer/rust-analyzer/pull/7891 rustc_private = true [[test]] name = "ui" harness = false [features] default = ["stack-cache"] genmc = [] stack-cache = [] stack-cache-consistency-check = ["stack-cache"] tracing = ["serde_json"] [lints.rust.unexpected_cfgs] level = "warn" # Be aware that this file is inside a workspace when used via the # submodule in the rustc repo. That means there are many cargo features # we cannot use, such as profiles.