hevm-0.21: Ethereum virtual machine evaluator

Safe HaskellNone
LanguageHaskell2010

EVM.TTY

Synopsis

Documentation

data Name Source #

Instances
Eq Name Source # 
Instance details

Defined in EVM.TTY

Methods

(==) :: Name -> Name -> Bool #

(/=) :: Name -> Name -> Bool #

Ord Name Source # 
Instance details

Defined in EVM.TTY

Methods

compare :: Name -> Name -> Ordering #

(<) :: Name -> Name -> Bool #

(<=) :: Name -> Name -> Bool #

(>) :: Name -> Name -> Bool #

(>=) :: Name -> Name -> Bool #

max :: Name -> Name -> Name #

min :: Name -> Name -> Name #

Show Name Source # 
Instance details

Defined in EVM.TTY

Methods

showsPrec :: Int -> Name -> ShowS #

show :: Name -> String #

showList :: [Name] -> ShowS #

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 #