Re-exportsΒ§
pub use rustc_const_eval::interpret;pub use rustc_const_eval::interpret::Provenance as _;pub use crate::alloc::MiriAllocBytes;pub use crate::alloc_addresses::EvalContextExt as _;pub use crate::alloc_addresses::ProvenanceMode;pub use crate::borrow_tracker::stacked_borrows::EvalContextExt as _;pub use crate::borrow_tracker::stacked_borrows::Item;pub use crate::borrow_tracker::stacked_borrows::Permission;pub use crate::borrow_tracker::stacked_borrows::Stack;pub use crate::borrow_tracker::stacked_borrows::Stacks;pub use crate::borrow_tracker::tree_borrows::EvalContextExt as _;pub use crate::borrow_tracker::tree_borrows::Tree;pub use crate::borrow_tracker::BorTag;pub use crate::borrow_tracker::BorrowTrackerMethod;pub use crate::borrow_tracker::EvalContextExt as _;pub use crate::borrow_tracker::TreeBorrowsParams;pub use crate::clock::Deadline;pub use crate::clock::Instant;pub use crate::clock::MonotonicClock;pub use crate::clock::TimeoutClock;pub use crate::clock::TimeoutStyle;pub use crate::concurrency::blocking_io::BlockingIoInterest;pub use crate::concurrency::blocking_io::BlockingIoManager;pub use crate::concurrency::blocking_io::EvalContextExt as _;pub use crate::concurrency::blocking_io::SourceFileDescription;pub use crate::concurrency::data_race::AtomicFenceOrd;pub use crate::concurrency::data_race::AtomicReadOrd;pub use crate::concurrency::data_race::AtomicRwOrd;pub use crate::concurrency::data_race::AtomicWriteOrd;pub use crate::concurrency::data_race::EvalContextExt as _;pub use crate::concurrency::init_once::EvalContextExt as _;pub use crate::concurrency::init_once::InitOnceRef;pub use crate::concurrency::scheduler::EvalContextExt as _;pub use crate::concurrency::sync::CondvarRef;pub use crate::concurrency::sync::EvalContextExt as _;pub use crate::concurrency::sync::MutexRef;pub use crate::concurrency::sync::RwLockRef;pub use crate::concurrency::sync::SemaphoreRef;pub use crate::concurrency::thread::BlockReason;pub use crate::concurrency::thread::DynUnblockCallback;pub use crate::concurrency::thread::EvalContextExt as _;pub use crate::concurrency::thread::StackEmptyCallback;pub use crate::concurrency::thread::ThreadId;pub use crate::concurrency::thread::ThreadManager;pub use crate::concurrency::thread::UnblockKind;pub use crate::concurrency::GenmcConfig;pub use crate::concurrency::GenmcCtx;pub use crate::concurrency::run_genmc_mode;pub use crate::data_structures::dedup_range_map::DedupRangeMap;pub use crate::data_structures::mono_hash_map::MonoHashMap;pub use crate::diagnostics::EvalContextExt as _;pub use crate::diagnostics::NonHaltingDiagnostic;pub use crate::diagnostics::TerminationInfo;pub use crate::diagnostics::report_result;pub use crate::eval::MiriConfig;pub use crate::eval::MiriEntryFnType;pub use crate::eval::create_ecx;pub use crate::eval::entry_fn;pub use crate::eval::eval_entry;pub use crate::helpers::EvalContextExt as _;pub use crate::helpers::ToU64 as _;pub use crate::helpers::ToUsize as _;pub use crate::intrinsics::EvalContextExt as _;pub use crate::machine::AlignmentCheck;pub use crate::machine::AllocExtra;pub use crate::machine::BacktraceStyle;pub use crate::machine::DynMachineCallback;pub use crate::machine::FloatRoundingErrorMode;pub use crate::machine::FrameExtra;pub use crate::machine::IsolatedOp;pub use crate::machine::MachineCallback;pub use crate::machine::MemoryKind;pub use crate::machine::MiriInterpCx;pub use crate::machine::MiriInterpCxExt;pub use crate::machine::MiriMachine;pub use crate::machine::MiriMemoryKind;pub use crate::machine::PrimitiveLayouts;pub use crate::machine::Provenance;pub use crate::machine::ProvenanceExtra;pub use crate::machine::RejectOpWith;pub use crate::machine::ValidationMode;pub use crate::meta_obj::EvalContextExt as _;pub use crate::meta_obj::MetaObj;pub use crate::operator::EvalContextExt as _;pub use crate::provenance_gc::EvalContextExt as _;pub use crate::provenance_gc::LiveAllocs;pub use crate::provenance_gc::VisitProvenance;pub use crate::provenance_gc::VisitWith;pub use crate::shims::EmulateItemResult;pub use crate::shims::cpu_affinity::MAX_CPUS;pub use crate::shims::env::EnvVars;pub use crate::shims::env::EvalContextExt as _;pub use crate::shims::foreign_items::DynSym;pub use crate::shims::foreign_items::EvalContextExt as _;pub use crate::shims::io_error::EvalContextExt as _;pub use crate::shims::io_error::IoError;pub use crate::shims::io_error::LibcError;pub use crate::shims::os_str::EvalContextExt as _;pub use crate::shims::panic::EvalContextExt as _;pub use crate::shims::readiness::EvalContextExt as _;pub use crate::shims::readiness::Readiness;pub use crate::shims::readiness::ReadinessInterest;pub use crate::shims::readiness::ReadinessUpdateFlags;pub use crate::shims::readiness::ReadinessWatched;pub use crate::shims::readiness::ReadinessWatcher;pub use crate::shims::sig::EvalContextExt as _;pub use crate::shims::time::EvalContextExt as _;pub use crate::shims::tls::TlsData;pub use crate::shims::unwind::CatchUnwindData;pub use crate::shims::unwind::EvalContextExt as _;pub(crate) use rustc_data_structures::either::Either;πpub(crate) use tracing;πpub(crate) use info;πpub(crate) use trace;πpub(crate) use warn;πpub(crate) use bug;πpub(crate) use span_bug;πpub use rustc_const_eval::interpret::*;
ModulesΒ§
- alloc π
- alloc_
addresses π - This module is responsible for managing the absolute addresses that allocations are located at, and for casting between pointers and integers based on those addresses.
- borrow_
tracker π - clock π
- concurrency π
- data_
structures π - diagnostics π
- eval π
- Main evaluator loop and setting up the initial stack frame.
- helpers π
- intrinsics π
- machine π
- Global machine state as well as implementation of the interpreter engine
Machinetrait. - math π
- meta_
obj π - native_
lib - operator π
- provenance_
gc π - shims π
- sym
MacrosΒ§
- callback
- Creates a
DynMachineCallback: - enter_
trace_ span - Enters a [tracing::info_span] only if the βtracingβ feature is enabled, otherwise does nothing. This calls [rustc_const_eval::enter_trace_span] with MiriMachine as the first argument, which will in turn call MiriMachine::enter_trace_span, which takes care of determining at compile time whether to trace or not (and supposedly the call is compiled out if tracing is disabled). Look at [rustc_const_eval::enter_trace_span] for complete documentation, examples and tips.
- shim_
sig - Construct a
ShimSigwith convenient syntax: - shim_
sig_ arg - Helper for
shim_sig!. - shim_
sig_ args_ sep - Helper for
shim_sig!. - shim_
varargs - Computes a list of types for varargs, using the same syntax as
shim_sig!.
ConstantsΒ§
- MIRI_
DEFAULT_ ARGS - Insert rustc arguments at the beginning of the argument list that Miri wants to be set per default, for maximal validation power. Also disable the MIR pass that inserts an alignment check on every pointer dereference. Miri does that too, and with a better error message.