Expand description
This module contains everything needed to instantiate an interpreter. This separation exists to ensure that no fancy miri features like interpreting common C functions leak into CTFE.
Re-exportsΒ§
use std::borrow::Borrow;πuse std::borrow::Cow;πuse std::fmt::Debug;πuse std::fmt::Debug;πuse std::hash::Hash;πuse std::hash::Hash;πuse rustc_abi::Align;πuse rustc_abi::Size;πuse rustc_apfloat::Float;πuse rustc_apfloat::FloatConvert;πuse rustc_middle::query::TyCtxtAt;πuse rustc_middle::ty::layout::TyAndLayout;πuse rustc_middle::ty::AtomicOrdering;πuse rustc_middle::ty::Ty;πuse rustc_middle::mir;πuse rustc_middle::ty;πuse rustc_span::def_id::DefId;πuse rustc_target::callconv::FnAbi;πuse super::AllocBytes;πuse super::AllocId;πuse super::AllocKind;πuse super::AllocRange;πuse super::Allocation;πuse super::AtomicRmwOp;πuse super::CTFE_ALLOC_SALT;πuse super::ConstAllocation;πuse super::CtfeProvenance;πuse super::EnteredTraceSpan;πuse super::FnArg;πuse super::Frame;πuse super::ImmTy;πuse super::InterpCx;πuse super::InterpResult;πuse super::MPlaceTy;πuse super::MemoryKind;πuse super::Misalignment;πuse super::OpTy;πuse super::PlaceTy;πuse super::Pointer;πuse super::Provenance;πuse super::RangeSet;πuse super::Scalar;πuse super::interp_ok;πuse super::throw_unsup;π
MacrosΒ§
- compile_
time_ machine - A lot of the flexibility above is just needed for
Miri, but all βcompile-timeβ machines (CTFE and ConstProp) use the same instance. Here, we share that code.
EnumsΒ§
- Retag
Mode - The currently active retagging mode.
- Return
Action - Data returned by
Machine::after_stack_pop, and consumed byInterpCx::return_from_current_stack_frameto determine what actions should be done when returning from a stack frame.