Pinned eval.rs::ProgramExitHandler: run TLS cleanup, yield 256 times, then terminate with for_exit=true. Machine stop remains an explicit outcome.
- mainThreadFinish : ProgramExitType
- exitCalled : ProgramExitType
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
@[instance_reducible]
- tls : ProgramExitStage
- yield (remaining : UInt32) : ProgramExitStage
- done : ProgramExitStage
- unreachable : ProgramExitStage
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
Equations
- One or more equations did not get rendered due to their size.
- Miri.Interpreter.instDecidableEqProgramExitStage.decEq Miri.Interpreter.ProgramExitStage.tls Miri.Interpreter.ProgramExitStage.tls = isTrue ⋯
- Miri.Interpreter.instDecidableEqProgramExitStage.decEq Miri.Interpreter.ProgramExitStage.tls (Miri.Interpreter.ProgramExitStage.yield remaining) = isFalse ⋯
- Miri.Interpreter.instDecidableEqProgramExitStage.decEq (Miri.Interpreter.ProgramExitStage.yield remaining) Miri.Interpreter.ProgramExitStage.tls = isFalse ⋯
- Miri.Interpreter.instDecidableEqProgramExitStage.decEq (Miri.Interpreter.ProgramExitStage.yield a) (Miri.Interpreter.ProgramExitStage.yield b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.Interpreter.instDecidableEqProgramExitStage.decEq (Miri.Interpreter.ProgramExitStage.yield remaining) Miri.Interpreter.ProgramExitStage.done = isFalse ⋯
- Miri.Interpreter.instDecidableEqProgramExitStage.decEq (Miri.Interpreter.ProgramExitStage.yield remaining) Miri.Interpreter.ProgramExitStage.unreachable = isFalse ⋯
- Miri.Interpreter.instDecidableEqProgramExitStage.decEq Miri.Interpreter.ProgramExitStage.done (Miri.Interpreter.ProgramExitStage.yield remaining) = isFalse ⋯
- Miri.Interpreter.instDecidableEqProgramExitStage.decEq Miri.Interpreter.ProgramExitStage.done Miri.Interpreter.ProgramExitStage.done = isTrue ⋯
- Miri.Interpreter.instDecidableEqProgramExitStage.decEq Miri.Interpreter.ProgramExitStage.unreachable (Miri.Interpreter.ProgramExitStage.yield remaining) = isFalse ⋯
- Miri.Interpreter.instDecidableEqProgramExitStage.decEq Miri.Interpreter.ProgramExitStage.unreachable Miri.Interpreter.ProgramExitStage.unreachable = isTrue ⋯
Instances For
- execution : TlsExecutionState P E H
- stage : ProgramExitStage
- exitCode : Int32
- exitType : ProgramExitType
Instances For
- tls {Error : Type} (error : TlsExecutionError Error) : ProgramExitError Error
- termination {Error : Type} (error : ThreadExitError Error) : ProgramExitError Error
- leaf {Error : Type} (error : Error) : ProgramExitError Error
- unreachableHandler {Error : Type} : ProgramExitError Error
Instances For
@[instance_reducible]
instance
Miri.Interpreter.instReprProgramExitError
{Error✝ : Type}
[Repr Error✝]
:
Repr (ProgramExitError Error✝)
Equations
def
Miri.Interpreter.instReprProgramExitError.repr
{Error✝ : Type}
[Repr Error✝]
:
ProgramExitError Error✝ → Nat → Std.Format
Equations
- One or more equations did not get rendered due to their size.
Instances For
- pending : ProgramExitPoll
- machineStop (exitCode : Int32) (leakCheck : Bool) : ProgramExitPoll
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.
- Miri.Interpreter.instDecidableEqProgramExitPoll.decEq Miri.Interpreter.ProgramExitPoll.pending Miri.Interpreter.ProgramExitPoll.pending = isTrue ⋯
- Miri.Interpreter.instDecidableEqProgramExitPoll.decEq Miri.Interpreter.ProgramExitPoll.pending (Miri.Interpreter.ProgramExitPoll.machineStop exitCode leakCheck) = isFalse ⋯
- Miri.Interpreter.instDecidableEqProgramExitPoll.decEq (Miri.Interpreter.ProgramExitPoll.machineStop exitCode leakCheck) Miri.Interpreter.ProgramExitPoll.pending = isFalse ⋯
Instances For
@[reducible, inline]
Equations
- Miri.Interpreter.ProgramExitM P E H Error A = EStateM (Miri.Interpreter.ProgramExitError Error) (Miri.Interpreter.ProgramExitState P E H) A
Instances For
def
Miri.Interpreter.ProgramExitState.new
{P E H : Type}
(state : TlsExecutionState P E H)
(exitCode : Int32)
(exitType : ProgramExitType)
:
ProgramExitState P E H
Source constructs a fresh TlsDtorsState::new_for_exit, retaining the actual machine/TLS data. The handler is separate from normal-thread callback state.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.programExitOnStackEmpty
{P E H Error ProvExtra : Type}
[Memory.PointerProvenance P]
(platform : TlsPlatform)
(target : ABI.RuntimeTargetDataLayout)
(destructors : TlsDestructorQueries P E H Error)
(termination : ThreadExitQueries P E H ProvExtra Error)
:
ProgramExitM P E H Error ProgramExitPoll
Actual ordered stateful exit protocol, including state changes before a failed callback. A source machine-stop outcome must stop the interpreter loop; it is not a normal Poll::Ready return from the callback.
Equations
- One or more equations did not get rendered due to their size.