Documentation

Miri.Interpreter.ForeignItems

Source port of Miri shims/{mod,foreign_items,alloc,env}.rs. OS-specific, compiler signature construction, allocation and host effects remain mandatory queries; dispatch, ABI checks, allocation policy and control ordering are here.

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

                          Target architecture spellings are compiler target names, not host names.

                          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

                                Weak definitions lose to strong definitions; two equally weak definitions are an error, including two weak definitions. Compiler iteration order is kept.

                                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
                                      def Miri.Interpreter.ForeignItems.lookupFunctionFromSymbols {I S B : Type} (name : String) (symbols : Array (SymbolCandidate I)) (definitionKind : I → M S ExportKind) (loadMir : I → M S B) :
                                      M S (Option (B × I))

                                      Compiler definition-kind checks precede MIR loading. A data export with a matching name must never become a callable fallback.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        def Miri.Interpreter.ForeignItems.lookupStaticFromSymbols {I S : Type} (name : String) (symbols : Array (SymbolCandidate I)) (definitionKind : I → M S ExportKind) :
                                        M S (Option I)
                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          structure Miri.Interpreter.ForeignItems.Core (P S D MD Ptr Body Instance : Type) :
                                          Instances For
                                            structure Miri.Interpreter.ForeignItems.Hooks (P S D MD Ptr Body Instance : Type) extends Miri.Interpreter.ForeignItems.Core P S D MD Ptr Body Instance :

                                            Dispatch is separate from the nonrecursive source primitive dictionary. Portable/platform factories need only Core while constructing their bodies.

                                            Instances For
                                              @[instance_reducible]
                                              instance Miri.Interpreter.ForeignItems.instCoeOutHooksCore {P S D MD Ptr B I : Type} :
                                              CoeOut (Hooks P S D MD Ptr B I) (Core P S D MD Ptr B I)
                                              Equations
                                              def Miri.Interpreter.ForeignItems.Core.checkAbi {P S D MD Ptr B I : Type} (h : Core P S D MD Ptr B I) (caller callee : ABI.FnAbi MIR.TyId) :
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                def Miri.Interpreter.ForeignItems.Core.checkSignature {P S D MD Ptr B I : Type} (h : Core P S D MD Ptr B I) (name : String) (signature : Signature) (caller : ABI.FnAbi MIR.TyId) (args : Array (OpTy P)) :
                                                M S (Array (OpTy P))
                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  def Miri.Interpreter.ForeignItems.checkAbi {P S D MD Ptr B I : Type} (h : Hooks P S D MD Ptr B I) (caller callee : ABI.FnAbi MIR.TyId) :

                                                  Compatibility entry points project the lawful nonrecursive dictionary.

                                                  Equations
                                                  Instances For
                                                    def Miri.Interpreter.ForeignItems.checkSignature {P S D MD Ptr B I : Type} (h : Hooks P S D MD Ptr B I) (name : String) (signature : Signature) (caller : ABI.FnAbi MIR.TyId) (args : Array (OpTy P)) :
                                                    M S (Array (OpTy P))
                                                    Equations
                                                    Instances For
                                                      def Miri.Interpreter.ForeignItems.specialAllocator {P S D MD Ptr B I : Type} (h : Hooks P S D MD Ptr B I) (method : SpecialAllocatorMethod) (name : String) (abi : ABI.FnAbi MIR.TyId) (args : Array (OpTy P)) (dest : D) :
                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        def Miri.Interpreter.ForeignItems.inner {P S D MD Ptr B I : Type} (h : Hooks P S D MD Ptr B I) (name : String) (abi : ABI.FnAbi MIR.TyId) (args : Array (OpTy P)) (dest : MD) :
                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        Instances For
                                                          def Miri.Interpreter.ForeignItems.emulate {P S D MD Ptr B I : Type} (h : Hooks P S D MD Ptr B I) (name : String) (abi : ABI.FnAbi MIR.TyId) (args : Array (OpTy P)) (dest : D) (ret : Option MIR.BasicBlockId) (unwind : MIR.UnwindAction) :
                                                          M S (Option (B × I))
                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            def Miri.Interpreter.ForeignItems.emulateDynSym {P S D MD Ptr B I : Type} (h : Hooks P S D MD Ptr B I) (name : String) (abi : ABI.FnAbi MIR.TyId) (args : Array (OpTy P)) (dest : D) (ret : Option MIR.BasicBlockId) (unwind : MIR.UnwindAction) :
                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            Instances For
                                                              def Miri.Interpreter.ForeignItems.initialEnvironment (communicate : Bool) (forwarded : Array String) (environment overrides : Array (String × String)) :

                                                              OS strings are supplied as already-decoded target strings. Unix byte encoding and Windows case rules belong to their separate OS modules.

                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              Instances For
                                                                def Miri.Interpreter.ForeignItems.getPid {S : Type} (communicate : Bool) (hostPid : M S UInt32) :
                                                                Equations
                                                                Instances For
                                                                  Equations
                                                                  • One or more equations did not get rendered due to their size.
                                                                  Instances For