Concrete machine bindings for the Miri-only extern driver. The user-state lens must target the same static/tracked allocation lists as machine exit. Pointers, symbolic alignment, payloads, threads and GC use their canonical state.
Instances For
Instances For
- trackedAllocations : Array Memory.AllocId
- staticRoots : Array Memory.AllocId
Instances For
- access : PlaceMachine.AccessConfig K (PointerMachine.User U)
- pointer : PointerMachine.Hooks K U
- place : PlaceHooks Memory.Provenance (State K U) C E
- bookkeeping : U → Bookkeeping
- setBookkeeping : Bookkeeping → U → U
- cAllocation : Memory.MemoryKind K → Bool
- u64Layout : C → M K U LocalLayout
- boolLayout : C → M K U LocalLayout
- usizeLayout : C → M K U LocalLayout
- unwind : Unwind.Hooks K (PointerMachine.User U) C Other
- gc : ProvenanceGC.Hooks K (PointerMachine.User U)
Instances For
Source failed ptr_get_alloc_id is a value until the calling arm applies its error policy. This conversion retains all effects from pointer resolution.
Equations
- One or more equations did not get rendered due to their size.
Instances For
No allocation/liveness check is imposed here: source promises are recorded for any resolved provenance, including dead allocations, using actual offset.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct the source Miri operations over the canonical machine while keeping host paths, diagnostics, output, and other source effects explicit. This constructor accepts the nonrecursive CoreHooks projection, so callers do not need to manufacture a complete ForeignItems dispatch record just to bind the physical memory/provenance/thread effects.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ABI, host paths, actual thread creation/join and diagnostic ancestry remain required until their source dictionaries are installed. No success defaults.
Equations
- Miri.Interpreter.MiriShimMachine.bind h choice base = { toOperations := (Miri.Interpreter.MiriShimMachine.core h choice base.core).toOperations, foreign := base.foreign }