Lazy compiler-global conversion, pinned machine.rs:967–1032,1678–1693. Byte backing is acquired before relocation conversion. Global race clocks start at zero on the main thread, independently of the accessing thread. The returned owned allocation is cached by MemoryLifecycle, never by this callback.
Instances For
Real storage effects; native preparation must reserve the actual backing identity used by global-root address resolution. Managed storage explicitly returns no host owner. Release runs on failed conversion, like Rust's drop.
- prepare : Memory.AllocId → Array UInt8 → ABI.Align → M K U (Array UInt8 × Option Memory.NativeBufferOwnership)
- release : Memory.NativeBufferOwnership → ABI.Size → ABI.Align → M K U Unit
Instances For
The managed backend's semantic bytes have no native ownership. Receiving a native owner here is an inconsistent backend construction, not a no-op.
Equations
- One or more equations did not get rendered due to their size.
Instances For
- bytes : Bytes K U
- globalRootPointer : Memory.Pointer Memory.CtfeProvenance → M K U (Memory.Pointer Memory.Provenance)
- diagnostic : Memory.AllocId → ABI.Size → ABI.Align → M K U Unit
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Global and TLS kinds share this source zero/main-thread race category; both may leak and neither stores an allocation span (machine.rs:222–239).
Equations
- Miri.Interpreter.GlobalAllocationMachine.init extras leaves id size align = Miri.Interpreter.GlobalAllocationMachine.initExtra extras leaves.diagnostic id size align
Instances For
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
Driver used by ensureTreeExtra. It follows the same lazy conversion/cache path as ordinary reads; typed callback failures survive the string boundary.
Equations
- One or more equations did not get rendered due to their size.