Small-step driver port of pinned rustc interpret/step.rs:41-154.
Callbacks are mandatory semantic obligations, including their mutations on failure.
- stack : Stack Prov Layout Extra
- machine : Machine
Instances For
- termination (info : Concurrency.TerminationInfo) : StepError
- stack (error : StackError) : StepError
- invalidBlock (block : MIR.BasicBlockId) : StepError
- frameIndexChanged (before after : Nat) : StepError
- expectedMirLocation : StepError
- undefinedBehavior (reason : String) : StepError
- retagWriteToReadOnly : StepError
Typed retag failure used by validity.rs before its source diagnostic mapping.
- unsupported (reason : String) : StepError
- invalidProgram (reason : String) : StepError
- resourceExhaustion (reason : String) : StepError
- machineStop (reason : String) : StepError
- callback (message : String) : StepError
Instances For
@[instance_reducible]
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[reducible, inline]
Equations
Instances For
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.
- assign : Choice → MIR.Place → MIR.Rvalue → StepState Prov Layout Extra Machine → StepResult (StepState Prov Layout Extra Machine) Unit
- evalPlace : Choice → MIR.Place → Bool → StepState Prov Layout Extra Machine → StepResult (StepState Prov Layout Extra Machine) PlaceValue
- writeDiscriminant : Choice → MIR.VariantIndex → PlaceValue → StepState Prov Layout Extra Machine → StepResult (StepState Prov Layout Extra Machine) Unit
- storageLive : Choice → MIR.LocalId → StepState Prov Layout Extra Machine → StepResult (StepState Prov Layout Extra Machine) Unit
- storageDead : Choice → MIR.LocalId → StepState Prov Layout Extra Machine → StepResult (StepState Prov Layout Extra Machine) Unit
- intrinsic : Choice → MIR.NonDivergingIntrinsic → StepState Prov Layout Extra Machine → StepResult (StepState Prov Layout Extra Machine) Unit
- incrementConstEvalCounter : Choice → StepState Prov Layout Extra Machine → StepResult (StepState Prov Layout Extra Machine) Unit
- returnFromCurrentFrame : Choice → Bool → StepState Prov Layout Extra Machine → StepResult (StepState Prov Layout Extra Machine) Unit
- beforeTerminator : Choice → StepState Prov Layout Extra Machine → StepResult (StepState Prov Layout Extra Machine) Unit
- terminator : Choice → MIR.Terminator → StepState Prov Layout Extra Machine → StepResult (StepState Prov Layout Extra Machine) Unit
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)
:
StepResult (StepState P L E M) Unit
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)
:
StepResult (StepState P L E M) Bool
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.