Documentation

Miri.Interpreter.EnvVars

Pinned env.rs and Unix/Windows env storage. Os is a lossless target OS string, never a host String approximation. All memory operations are effectful leaves and must preserve provenance, allocation kinds, and race checks.

Instances For
    Instances For
      Instances For
        @[instance_reducible]
        Equations
        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.EnvVars.allocVariable {P Os S : Type} (h : Hooks P Os S) (name value : ByteArray) :
              Equations
              Instances For
                def Miri.Interpreter.EnvVars.initUnix {P Os S : Type} (h : Hooks P Os S) (variables : Array (ByteArray × ByteArray)) :
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  def Miri.Interpreter.EnvVars.getPointer {P Os S : Type} (h : Hooks P Os S) (name : ByteArray) :

                  The environ cell read is required even when the lookup misses: it participates in data-race detection. The returned pointer aliases the actual name=value allocation.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    def Miri.Interpreter.EnvVars.getEnv {Os P S : Type} [DecidableEq Os] (h : Hooks P Os S) (name : Os) :
                    M S (Option Os)
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      def Miri.Interpreter.EnvVars.getenv {P Os S : Type} (h : Hooks P Os S) (name : Memory.Pointer P) :
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        def Miri.Interpreter.EnvVars.updateEnviron {P Os S : Type} (h : Hooks P Os S) :
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          def Miri.Interpreter.EnvVars.setenv {P Os S : Type} (h : Hooks P Os S) (namePointer valuePointer : Memory.Pointer P) :
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            def Miri.Interpreter.EnvVars.unsetenv {P Os S : Type} (h : Hooks P Os S) (namePointer : Memory.Pointer P) :
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              def Miri.Interpreter.EnvVars.init {Os P S : Type} [DecidableEq Os] (h : Hooks P Os S) (communicate : Bool) (forwarded : Array Os) (environment overrides : Array (Os × Os)) :

                              Config environment is supplied evidence. No process environment is read implicitly, and explicit overrides win after forwarding.

                              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.EnvVars.getEnvironmentVariableW {Os P S : Type} [DecidableEq Os] (h : Hooks P Os S) (name buffer : Memory.Pointer P) (size : UInt32) :
                                  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.EnvVars.setEnvironmentVariableW {Os P S : Type} [DecidableEq Os] (h : Hooks P Os S) (namePointer valuePointer : Memory.Pointer P) :
                                      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

                                              All environment-owned pointer roots, including the stable environ cell. Windows/Uninit store no provenance. GC must visit these without dereferencing.

                                              Equations
                                              Instances For