Documentation

Miri.Interpreter.NativeAllocationLifecycle

Actual native byte ownership on the canonical Allocation/MemoryState. Backing is allocated before AllocId reservation; failed insertion drops only uninserted backing. Deallocation drops the detached allocation on every return, including source validation/hook failures, as Rust's local ownership requires.

Lift the one canonical machine-owned allocator into the full interpreter state, retaining its current stack and all machine mutations on errors.

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
      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

            Fresh from_bytes ownership for ordinary cloning/global-allocator mode. Native compiler globals must instead take their already prepared buffer from source prepared_alloc_bytes; they must not select this fresh allocator.

            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
                • 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

                    Actual native Allocation::try_new; host null leaves the ID supply intact. The zero snapshot validates the external storage contract before reservation.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      def Miri.Interpreter.NativeAllocationLifecycle.cloneBytes {S Prov Extra : Type} (backing : Backing S) (allocation : Memory.Allocation Prov Extra) :

                      Ordinary owned-byte clone preserves mask/provenance/extras and receives fresh ownership. Native compiler globals use source prepared buffers instead.

                      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
                          def Miri.Interpreter.NativeAllocationLifecycle.allocate {K S Prov Extra H : Type} [DecidableEq K] (access : Access S Prov Extra K H) (backing : Backing S) (size : ABI.Size) (align : ABI.Align) (kind : Memory.MemoryKind K) (init : Memory.AllocInit) (maximum : ABI.Size) (globalKind : Option (Memory.MemoryKind K)) (initExtra : Memory.MemoryState Prov Extra K → H → Memory.AllocId → Memory.MemoryKind K → ABI.Size → ABI.Align → Memory.MemoryStateHookResult Prov Extra K H Extra) (adjustRoot : Memory.MemoryState Prov Extra K → H → Memory.AllocId → Memory.MemoryKind K → Memory.MemoryStateHookResult Prov Extra K H (Memory.Pointer Prov)) :

                          Direct source allocation lifecycle; no FFI-time materialization.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            def Miri.Interpreter.NativeAllocationLifecycle.deallocate {K S Prov Extra H PE : Type} [DecidableEq K] (access : Access S Prov Extra K H) (backing : Backing S) (pointer : Memory.Pointer (Option Prov)) (oldLayout : Option (ABI.Size × ABI.Align)) (kind : Memory.MemoryKind K) (hooks : Memory.MemoryLifecycleHooks Prov Extra K H PE) :
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For

                              Canonical stack/temporary creation selects native source storage, retaining existing diagnostic/TB/race/address operations and their order.

                              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