ghc-9.14.0.20251128: The GHC API
Safe HaskellNone
LanguageGHC2021

GHC.Runtime.Eval

Synopsis

Documentation

data History #

Constructors

History 

Fields

execStmt #

Arguments

:: GhcMonad m 
=> String

a statement (bind or expression)

-> ExecOptions 
-> m ExecResult 

Run a statement in the current interactive context.

execStmt' :: GhcMonad m => GhciLStmt GhcPs -> String -> ExecOptions -> m ExecResult #

Like execStmt, but takes a parsed statement as argument. Useful when doing preprocessing on the AST before execution, e.g. in GHCi (see GHCi.UI.runStmt).

data ExecOptions #

Constructors

ExecOptions 

Fields

execOptions :: ExecOptions #

default ExecOptions

data ExecResult #

Constructors

ExecComplete

Execution is complete with either an exception or the list of user-visible names that were brought into scope.

ExecBreak

Execution stopped at a breakpoint.

Note: ExecBreak is only returned by handleRunStatus when GHCi should definitely stop at this breakpoint. GHCi is not responsible for subsequently deciding whether to really stop here. ExecBreak always means GHCi breaks.

runDecls :: GhcMonad m => String -> m [Name] #

runDeclsWithLocation :: GhcMonad m => String -> Int -> String -> m [Name] #

Run some declarations and return any user-visible names that were brought into scope.

runParsedDecls :: GhcMonad m => [LHsDecl GhcPs] -> m [Name] #

Like runDeclsWithLocation, but takes parsed declarations as argument. Useful when doing preprocessing on the AST before execution, e.g. in GHCi (see GHCi.UI.runStmt).

data SingleStep #

What kind of stepping are we doing?

Constructors

RunToCompletion 
RunAndLogSteps

:trace [expr]

SingleStep

:step [expr]

StepOut

:stepout

Fields

  • initiatedFrom :: Maybe SrcSpan

    Step-out locations are filtered to make sure we don't stop at a continuation that is within the function from which step-out was initiated. See Note [Debugger: Step-out]

LocalStep

:steplocal [expr]

Fields

ModuleStep

:stepmodule [expr]

Fields

getModBreaks :: HomeModInfo -> Maybe InternalModBreaks #

Get the breakpoint information from the ByteCode object associated to this HomeModInfo.

back :: GhcMonad m => Int -> m ([Name], Int, SrcSpan) #

forward :: GhcMonad m => Int -> m ([Name], Int, SrcSpan) #

setContext :: GhcMonad m => [InteractiveImport] -> m () #

Set the interactive evaluation context.

(setContext imports) sets the ic_imports field (which in turn determines what is in scope at the prompt) to imports, and updates the icReaderEnv environment to reflect it.

We retain in scope all the things defined at the prompt, and kept in ic_tythings. (Indeed, they shadow stuff from ic_imports.)

getContext :: GhcMonad m => m [InteractiveImport] #

Get the interactive evaluation context, consisting of a pair of the set of modules from which we take the full top-level scope, and the set of modules from which we take just the exports respectively.

mkTopLevImportedEnv :: HscEnv -> HomeModInfo -> IO GlobalRdrEnv #

Make the top-level environment with all bindings imported by this module. Exported bindings from this module are not included in the result.

getNamesInScope :: GhcMonad m => m [Name] #

Returns all names in scope in the current interactive context

getRdrNamesInScope :: GhcMonad m => m [RdrName] #

Returns all RdrNames in scope in the current interactive context, excluding any that are internally-generated.

moduleIsInterpreted :: GhcMonad m => Module -> m Bool #

Returns True if the specified module is interpreted, and hence has its full top-level scope available.

getInfo :: GhcMonad m => Bool -> Name -> m (Maybe (TyThing, Fixity, [ClsInst], [FamInst], SDoc)) #

Looks up an identifier in the current interactive context (for :info) Filter the instances by the ones whose tycons (or classes resp) are in scope (qualified or otherwise). Otherwise we list a whole lot too many! The exact choice of which ones to show, and which to hide, is a judgement call. (see #1581)

exprType :: GhcMonad m => TcRnExprMode -> String -> m Type #

Get the type of an expression Returns the type as described by TcRnExprMode

typeKind :: GhcMonad m => Bool -> String -> m (Type, Kind) #

Get the kind of a type

parseName :: GhcMonad m => String -> m (NonEmpty Name) #

Parses a string as an identifier, and returns the list of Names that the identifier can refer to in the current interactive context.

data GetDocsFailure #

Failure modes for getDocs.

Constructors

NameHasNoModule Name

nameModule_maybe returned Nothing.

NoDocsInIface

The module was loaded without -haddock,

Fields

InteractiveName

The Name was defined interactively.

Instances

Instances details
Outputable GetDocsFailure # 
Instance details

Defined in GHC.Runtime.Eval

Methods

ppr :: GetDocsFailure -> SDoc #

parseExpr :: GhcMonad m => String -> m (LHsExpr GhcPs) #

Parse an expression, the parsed expression can be further processed and passed to compileParsedExpr.

compileExpr :: GhcMonad m => String -> m HValue #

Compile an expression, run it, and deliver the resulting HValue.

dynCompileExpr :: GhcMonad m => String -> m Dynamic #

Compile an expression, run it and return the result as a Dynamic.

compileExprRemote :: GhcMonad m => String -> m ForeignHValue #

Compile an expression, run it, and deliver the resulting HValue.

compileParsedExprRemote :: GhcMonad m => LHsExpr GhcPs -> m ForeignHValue #

Compile a parsed expression (before renaming), run it, and deliver the resulting HValue.

data Term #

Constructors

Term 

Fields

Prim 

Fields

Suspension 
NewtypeWrap 

Fields

RefWrap 

Fields

Instances

Instances details
Outputable Term # 
Instance details

Defined in GHC.Runtime.Heap.Inspect

Methods

ppr :: Term -> SDoc #