Miri machine validation defaults and scoped validity execution. Source machine.rs ValidationMode/enforce_validity/cached_union_data_range and interpret/memory.rs ghost_run_mut. Actual validation/retag/memory ports are bound here; only compiler/pointer/trait queries remain supplied dictionaries.
- No : ValidationMode
- Shallow : ValidationMode
- Deep : ValidationMode
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
- None : AlignmentCheck
- Symbolic : AlignmentCheck
- Int : AlignmentCheck
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Concrete additional fields for the canonical machine's User payload. This extends machine state; it is not a second program representation or value IR.
- payload : User
- validation : ValidationMode
- alignment : AlignmentCheck
- ghost : Bool
- unionDataRanges : Array (MIR.TyId × Memory.Validity.DataRangeSet)
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
- Miri.Interpreter.ValidityMachine.enforceValidity = do let __do_lift ← get pure (__do_lift.machine.user.payload.validation != Miri.Interpreter.ValidityMachine.ValidationMode.No)
Instances For
Equations
- Miri.Interpreter.ValidityMachine.enforceValidityRecursively = do let __do_lift ← get pure (__do_lift.machine.user.payload.validation == Miri.Interpreter.ValidityMachine.ValidationMode.Deep)
Instances For
Exact non-nesting ghost scope. Ordinary allocation/local read/write hooks observe this flag and are suppressed; borrow/race trackers remain installed because source retagging during validity still executes their actual reborrow operations. Both normal and error results restore the flag while retaining all memory, clocks, borrow state, payload and cache mutations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source machine.rs caches union data ranges by canonical compiler type ID. The computation runs only on a miss and inserts only after success; queries and partial effects of a failing computation are retained without a cache hit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Capture the actual current ghost flag at each memory operation, rather than when an interpreter hook dictionary is created.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Miri.Interpreter.ValidityMachine.readImmediate access value = do let __do_lift ← Miri.Interpreter.ValidityMachine.scopedAccess access Miri.Interpreter.PlaceMachine.readImmediate __do_lift value
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Scoped optimized-local hooks and memory writes share the same canonical state flag. The write's enforce-validity decision is sampled at its source call, including padding-clearing policy inside the memory writer.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Actual byte/provenance/padding environment. Typed machine errors pass through the legacy allocation access boundary without being flattened into an unclassified string, and touched borrowed-global extras remain retained.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Typed form used by validity.rs, which remaps pointer access errors into path-qualified validation failures. Zero-sized validity retains the source no-resolve fast path.
Equations
- One or more equations did not get rendered due to their size.
Instances For
General machine users retain the ordinary typed access-error mapping;
validity alone consumes checkPointerAccessResult to add its path context.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Run the canonical alignment check while keeping its typed failure for validity.rs to classify with the active validation path. Resolution failures still use the ordinary machine error channel, and retain their state prefix.
Equations
- One or more equations did not get rendered due to their size.
Instances For
General machine users retain the ordinary alignment error mapping. The
validity visitor consumes checkPointerAlignResult to apply validity.rs's
path-qualified error message without changing the underlying UB category.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Miri provenance has absolute addresses, so scalar_may_be_null uses exactly ScalarInt::is_null without CTFE allocation guesses. Malformed scalar widths remain an explicit error.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source CTFE mutability check: locals are mutable, memory must be interned, and any local cache of that global must agree with compiler mutability.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Close portable validity leaves with concrete typed places, scalar/byte memory operations, dynamic layout/vtable drivers, local index reads, source union cache and real scoped TypedRetag. Pointer dereference/access/alignment, compiler classification/path/layout facts and CTFE allocation-kind queries remain explicit in the supplied base dictionary.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Ordinary write/copy validation defaults: reset=true; recursive iff Deep. Mode No is handled by enforceValidity at the source caller. Explicit direct validatePlace requests still validate, as the interpreter source does.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Stateful default rvalue binding. Every place memory write samples the current ghost/validation flags; reference/raw-pointer retag triggers and modes remain exactly those chosen by the existing Rvalue dispatcher. Arithmetic, casts, constants and operand evaluation remain in the supplied base driver.
Equations
- One or more equations did not get rendered due to their size.