The source-level allocation record and checked read-byte operations from the
pinned rustc_middle::mir::interpret::allocation module. The byte backend is
represented by Array UInt8; host allocation is an explicit callback at the
fallible constructor boundary.
Equations
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
Equations
Equations
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- readPointerAsInt (info : Option BadBytesAccess) : AllocError
- readPartialPointer (offset : ABI.Size) : AllocError
- invalidUninitBytes (info : Option BadBytesAccess) : AllocError
- memory (reason : MemoryError) : AllocError
- provenance (reason : ProvenanceMapError) : AllocError
- alignment (reason : ABI.AlignError) : AllocError
- storageLengthOverflow (length : Nat) : AllocError
- storageLengthMismatch (requested : ABI.Size) (actual : Nat) : AllocError
- storageBackendNotZeroed (index : Nat) (value : UInt8) : AllocError
- outOfBounds (range : AllocRange) (allocationSize : ABI.Size) : AllocError
- invalidSliceEndpoints (start finish available : Nat) : AllocError
- nonEmptyProvenanceWithoutEntry : AllocError
- readOnlyAllocation : AllocError
- pointerSizeMismatch (scalarSize pointerSize : ABI.Size) : AllocError
- scalar (reason : ScalarError) : AllocError
- scalarBytesTooWide (size : ABI.Size) : AllocError
- pointerBitsDoNotFitOffset (bits : ABI.U128) : AllocError
- scalarPointerNotTargetSized (scalarSize targetSize : ABI.Size) : AllocError
- copyRangesOverlap : AllocError
- repeatedCopyRequiresNonoverlapping : AllocError
- singleByteZeroCountCopy : AllocError
- allocationHasByteFragmentProvenance : AllocError
- nativeWriteRangeOutOfBounds (range : AllocRange) (allocationSize : ABI.Size) : AllocError
- hostMemoryExhausted : AllocError
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- allocation {CallbackError : Type} (reason : AllocError) : AllocationAdjustError CallbackError
- byteConversion {CallbackError : Type} (reason : CallbackError) : AllocationAdjustError CallbackError
- pointerAdjustment {CallbackError : Type} (reason : CallbackError) : AllocationAdjustError CallbackError
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Miri.Memory.instDecidableEqAllocationAdjustError.decEq (Miri.Memory.AllocationAdjustError.allocation reason) (Miri.Memory.AllocationAdjustError.byteConversion reason_1) = isFalse ⋯
- Miri.Memory.instDecidableEqAllocationAdjustError.decEq (Miri.Memory.AllocationAdjustError.allocation reason) (Miri.Memory.AllocationAdjustError.pointerAdjustment reason_1) = isFalse ⋯
- Miri.Memory.instDecidableEqAllocationAdjustError.decEq (Miri.Memory.AllocationAdjustError.byteConversion reason) (Miri.Memory.AllocationAdjustError.allocation reason_1) = isFalse ⋯
- Miri.Memory.instDecidableEqAllocationAdjustError.decEq (Miri.Memory.AllocationAdjustError.byteConversion reason) (Miri.Memory.AllocationAdjustError.pointerAdjustment reason_1) = isFalse ⋯
- Miri.Memory.instDecidableEqAllocationAdjustError.decEq (Miri.Memory.AllocationAdjustError.pointerAdjustment reason) (Miri.Memory.AllocationAdjustError.allocation reason_1) = isFalse ⋯
- Miri.Memory.instDecidableEqAllocationAdjustError.decEq (Miri.Memory.AllocationAdjustError.pointerAdjustment reason) (Miri.Memory.AllocationAdjustError.byteConversion reason_1) = isFalse ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
- size : Miri.ABI.Size
- provenance : Miri.Memory.ProvenanceMap Prov
- initMask : Miri.Memory.InitMask
- align : ABI.Align
- mutability : Mutability
- extra : Extra
- nativeBuffer : Option NativeBufferOwnership
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
zeroedStorage is the explicit host AllocBytes::zeroed boundary. A
none result preserves the source's MemoryExhausted failure. The backend's
zeroed-storage contract is checked before an allocation value is returned.
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
Map only allocation metadata. Byte storage, size, provenance, init mask, alignment, and mutability are copied unchanged, matching the source fieldwise metadata update boundary used by tree-retagging.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Replace only allocation metadata while retaining all allocation storage and semantic state.
Instances For
Attach once at actual backing creation; metadata transformations preserve this owner. Cloning bytes must allocate a fresh backing before attaching it.
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
Equations
- allocation.len = (Miri.Memory.Allocation.rawBytes✝ allocation).size
Instances For
Equations
- allocation.byteSize = Miri.Memory.Allocation.size✝ allocation
Instances For
Equations
- allocation.provenanceMap = Miri.Memory.Allocation.provenance✝ allocation
Instances For
Equations
- allocation.initializationMask = Miri.Memory.Allocation.initMask✝ allocation
Instances For
Source Allocation::adjust_from_tcx, used when importing interned global
and thread-local allocations into a machine with a different byte backend or
provenance representation. The two callbacks preserve the source's allocation
and pointer-conversion failure boundaries. The source ptrs() assertion is
reported explicitly when byte-fragment provenance is present.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Raw bytes with the source method's caller-side bounds precondition made explicit rather than relying on a host array indexing panic.
Equations
- allocation.getBytesUnchecked range = Miri.Memory.Allocation.checkedSlice✝ allocation range
Instances For
Inspect raw bytes outside interpreter execution, including uninitialized bytes and provenance. The source slice panics for invalid endpoints; Lean reports that invalid domain explicitly.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adopt a snapshot of this allocation's actual native backing storage after an external host operation. The host must report the very same allocation; this is not an interpreter write: initialization, provenance, permissions and extras remain unchanged until source process_native_write/trace processing.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Matches Allocation::get_bytes_strip_provenance: check initialization
first, then reject overlapping non-address provenance when required, then
return bytes. layout supplies the target pointer width used by the map.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Scalar memory access. The source assumes caller-side bounds and alignment; these Lean methods keep invalid ranges as explicit errors instead of array panics.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The full source Allocation::write_scalar state transition. It checks
mutability, decodes the scalar, marks initialization, clears overwritten
provenance against the old bytes, writes target-endian bits, then inserts a
pointer provenance entry when the value is a pointer.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pointer-valued convenience wrapper around the source scalar write path.
Equations
- Miri.Memory.Allocation.writePointer layout range pointer = Miri.Memory.Allocation.writeScalar layout range (Miri.Memory.Scalar.fromPointer layout pointer)
Instances For
Write a finite byte stream into this allocation. The array length is the
exact iterator length used by write_bytes_ptr; the range is derived from
that length, and bounds remain an explicit caller-side check.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Write a repeated byte without materializing an input array. This is the
finite-array counterpart of rustc write_bytes_ptr with
std::iter::repeat_n: perform the same checked range, mutability,
initialization, and provenance transitions as writeBytes, then fill the
already allocated storage in place.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source Allocation::write_uninit: clear initialization first, then clear
overlapping provenance, while leaving the arbitrary byte representation alone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source Allocation::clear_provenance: preserve bytes and initialization,
but remove or fragment all pointer provenance intersecting the checked range.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source Allocation::process_native_write: mark the selected range
initialized, then replace provenance in it with wildcard byte fragments. This
is intentionally available only to provenance types with a wildcard. Range
and mutability failures are explicit; a missing wildcard remains an error
after the source-ordered initialization transition.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source Allocation::provenance_merge_bytes: attempt to coalesce complete
byte-fragment pointers. A false result may retain successful earlier
coalescings, exactly as the source map iteration does.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source allocation-level half of mem_copy_repeatedly. Pointer resolution,
access checks, and machine hooks are supplied by the caller. The source's
initialization and provenance snapshots are prepared before destination
overwrite clears its old metadata.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The source mem_copy operation is a one-copy specialization.
Equations
- source.copy sourceRange destStart pointerSize sameAllocation nonoverlapping = source.copyRepeatedly sourceRange destStart 1 pointerSize sameAllocation nonoverlapping
Instances For
Source allocation mutability is a public field. This update preserves all byte, initialization, provenance and allocation-extra state.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Validated serialization boundary for an interned compiler allocation. Unlike writes, importing its image does not initialize bytes, clear provenance, or change the byte representation of pointers.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Successful physical first component write in fresh uninitialized storage. All non-byte metadata is retained; only an optional zero-offset pointer entry can be present for the subsequent disjoint component.
The second component writes a disjoint window of fresh storage. It keeps an earlier pointer entry intact and derives every provenance operation.