Documentation

Miri.Interpreter.Step

Small-step driver port of pinned rustc interpret/step.rs:41-154. Callbacks are mandatory semantic obligations, including their mutations on failure.

structure Miri.Interpreter.StepState (Prov Layout Extra Machine : Type) :
  • stack : Stack Prov Layout Extra
  • machine : Machine
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
          @[reducible, inline]
          Equations
          Instances For
            structure Miri.Interpreter.StepHooks (Prov Layout Extra Machine Choice PlaceValue : Type) :

            Required interpreter operations. Choice inputs are explicit; no operation has a default successful implementation. evalPlace receives the source's skip_validity_for_simple_deref = false argument.

            Instances For
              def Miri.Interpreter.Step.evalStatement {P L E M C V : Type} (hooks : StepHooks P L E M C V) (choice : C) (stmt : MIR.Statement) (state : StepState P L E M) :
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                def Miri.Interpreter.Step.step {P L E M C V : Type} (hooks : StepHooks P L E M C V) (choice : C) (state : StepState P L E M) :

                Execute exactly one source driver iteration. A callback failure retains its resulting state and stops immediately, before any subsequent operation.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  def Miri.Interpreter.Step.AllowedStep {P L E M C V : Type} (hooks : StepHooks P L E M C V) (allowedChoice : StepState P L E M → C → Prop) (before after : StepState P L E M) (outcome : Except StepError Bool) :

                  Relational semantics quantifies over permitted explicit choice inputs. No enumeration or finite-support assumption is imposed on machine choices.

                  Equations
                  Instances For