hevm-0.16: Ethereum virtual machine evaluator

Safe HaskellNone
LanguageHaskell2010

EVM.TTY

Synopsis

Documentation

type Pred a = a -> Bool Source #

data StepMode Source #

Constructors

StepOne

Finish after one opcode step

StepMany !Int

Run a specific number of steps

StepNone

Finish before the next opcode

StepUntil (Pred VM)

Finish when a VM predicate holds

data StepOutcome a Source #

Each step command in the terminal should finish immediately with one of these outcomes.

Constructors

Returned a

Program finished

Stepped (Stepper a)

Took one step; more steps to go

Blocked (IO (Stepper a))

Came across blocking request

interpret :: (?fetcher :: Fetcher) => StepMode -> Stepper a -> State UiVmState (StepOutcome a) Source #

This turns a Stepper into a state action usable from within the TTY loop, yielding a StepOutcome depending on the StepMode.

main :: UnitTestOptions -> FilePath -> FilePath -> IO () Source #

Specifies whether to do I/O blocking or VM halting while stepping. When we step backwards, we don't want to allow those things.

data StepPolicy Source #

Constructors

StepNormally

Allow blocking and returning

StepTimidly

Forbid blocking and returning

showPc :: (Integral a, Show a) => a -> String Source #

opWidget :: (Integral a, Show a) => (a, Op) -> Widget n Source #