| ghc-6.10.4: The GHC API | Contents | Index
InteractiveEval
Synopsis
data RunResult
= RunOk [Name]
| RunFailed
| RunException SomeException
| RunBreak ThreadId [Name] (Maybe BreakInfo)
data Status
= Break Bool HValue BreakInfo ThreadId
| Complete (Either SomeException [HValue])
data Resume = Resume {
resumeStmt :: String
resumeThreadId :: ThreadId
resumeBreakMVar :: MVar ()
resumeStatMVar :: MVar Status
resumeBindings :: ([Id], TyVarSet)
resumeFinalIds :: [Id]
resumeApStack :: HValue
resumeBreakInfo :: Maybe BreakInfo
resumeSpan :: SrcSpan
resumeHistory :: [History]
resumeHistoryIx :: Int
}
data History = History {
historyApStack :: HValue
historyBreakInfo :: BreakInfo
historyEnclosingDecl :: Id
}
runStmt :: GhcMonad m => String -> SingleStep -> m RunResult
data SingleStep
= RunToCompletion
| SingleStep
| RunAndLogSteps
resume :: GhcMonad m => (SrcSpan -> Bool) -> SingleStep -> m RunResult
abandon :: GhcMonad m => m Bool
abandonAll :: GhcMonad m => m Bool
getResumeContext :: GhcMonad m => m [Resume]
getHistorySpan :: HscEnv -> History -> SrcSpan
getModBreaks :: HomeModInfo -> ModBreaks
getHistoryModule :: History -> Module
back :: GhcMonad m => m ([Name], Int, SrcSpan)
forward :: GhcMonad m => m ([Name], Int, SrcSpan)
setContext :: GhcMonad m => [Module] -> [Module] -> m ()
getContext :: GhcMonad m => m ([Module], [Module])
nameSetToGlobalRdrEnv :: NameSet -> ModuleName -> GlobalRdrEnv
getNamesInScope :: GhcMonad m => m [Name]
getRdrNamesInScope :: GhcMonad m => m [RdrName]
moduleIsInterpreted :: GhcMonad m => Module -> m Bool
getInfo :: GhcMonad m => Name -> m (Maybe (TyThing, Fixity, [Instance]))
exprType :: GhcMonad m => String -> m Type
typeKind :: GhcMonad m => String -> m Kind
parseName :: GhcMonad m => String -> m [Name]
showModule :: GhcMonad m => ModSummary -> m String
isModuleInterpreted :: GhcMonad m => ModSummary -> m Bool
compileExpr :: GhcMonad m => String -> m HValue
dynCompileExpr :: GhcMonad m => String -> m Dynamic
lookupName :: GhcMonad m => Name -> m (Maybe TyThing)
data Term
= Term {
ty :: RttiType
dc :: Either String DataCon
val :: HValue
subTerms :: [Term]
}
| Prim {
ty :: RttiType
value :: [Word]
}
| Suspension {
ctype :: ClosureType
ty :: RttiType
val :: HValue
bound_to :: Maybe Name
}
| NewtypeWrap {
ty :: RttiType
dc :: Either String DataCon
wrapped_term :: Term
}
| RefWrap {
ty :: RttiType
wrapped_term :: Term
}
obtainTermFromId :: HscEnv -> Int -> Bool -> Id -> IO Term
obtainTermFromVal :: HscEnv -> Int -> Bool -> Type -> a -> IO Term
reconstructType :: HscEnv -> Int -> Id -> IO (Maybe Type)
skolemiseSubst :: TvSubst -> (TvSubst, TyVarSet)
skolemiseTy :: Type -> (Type, TyVarSet)
Documentation
data RunResult
Constructors
RunOk [Name] | names bound by this evaluation
RunFailed | statement failed compilation
RunException SomeException | statement raised an exception
RunBreak ThreadId [Name] (Maybe BreakInfo) |
data Status
Constructors
Break Bool HValue BreakInfo ThreadId | the computation hit a breakpoint (Bool = was an exception)
Complete (Either SomeException [HValue]) | the computation completed with either an exception or a value
data Resume
Constructors
Resume |
resumeStmt :: String |
resumeThreadId :: ThreadId |
resumeBreakMVar :: MVar () |
resumeStatMVar :: MVar Status |
resumeBindings :: ([Id], TyVarSet) |
resumeFinalIds :: [Id] |
resumeApStack :: HValue |
resumeBreakInfo :: Maybe BreakInfo |
resumeSpan :: SrcSpan |
resumeHistory :: [History] |
resumeHistoryIx :: Int |
data History
Constructors
History |
historyApStack :: HValue |
historyBreakInfo :: BreakInfo |
historyEnclosingDecl :: Id | ^ A cache of the enclosing top level declaration, for convenience
runStmt :: GhcMonad m => String -> SingleStep -> m RunResult
Run a statement in the current interactive context. Statement may bind multple values.
data SingleStep
Constructors
RunToCompletion |
SingleStep |
RunAndLogSteps |
resume :: GhcMonad m => (SrcSpan -> Bool) -> SingleStep -> m RunResult
abandon :: GhcMonad m => m Bool
abandonAll :: GhcMonad m => m Bool
getResumeContext :: GhcMonad m => m [Resume]
getHistorySpan :: HscEnv -> History -> SrcSpan
getModBreaks :: HomeModInfo -> ModBreaks
getHistoryModule :: History -> Module
back :: GhcMonad m => m ([Name], Int, SrcSpan)
forward :: GhcMonad m => m ([Name], Int, SrcSpan)
setContext
:: GhcMonad m |
=> [Module] | entire top level scope of these modules
-> [Module] | exports only of these modules
-> m () |
Set the interactive evaluation context. Setting the context doesn't throw away any bindings; the bindings we've built up in the InteractiveContext simply move to the new module. They always shadow anything in scope in the current context.
getContext :: GhcMonad m => m ([Module], [Module])
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.
nameSetToGlobalRdrEnv :: NameSet -> ModuleName -> GlobalRdrEnv
getNamesInScope :: GhcMonad m => m [Name]
Returns all names in scope in the current interactive context
getRdrNamesInScope :: GhcMonad m => m [RdrName]
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 => Name -> m (Maybe (TyThing, Fixity, [Instance]))
Looks up an identifier in the current interactive context (for :info) Filter the instances by the ones whose tycons (or clases 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 Trac #1581)
exprType :: GhcMonad m => String -> m Type
Get the type of an expression
typeKind :: GhcMonad m => String -> m Kind
Get the kind of a type
parseName :: GhcMonad m => String -> m [Name]
Parses a string as an identifier, and returns the list of `Name`s that the identifier can refer to in the current interactive context.
showModule :: GhcMonad m => ModSummary -> m String
isModuleInterpreted :: GhcMonad m => ModSummary -> m Bool
compileExpr :: GhcMonad m => String -> m HValue
dynCompileExpr :: GhcMonad m => String -> m Dynamic
lookupName :: GhcMonad m => Name -> m (Maybe TyThing)
Returns the `TyThing` for a `Name`. The `Name` may refer to any entity known to GHC, including `Name`s defined using `runStmt`.
data Term
Constructors
Term |
ty :: RttiType |
dc :: Either String DataCon |
val :: HValue |
subTerms :: [Term] |
Prim |
ty :: RttiType |
value :: [Word] |
Suspension |
ctype :: ClosureType |
ty :: RttiType |
val :: HValue |
bound_to :: Maybe Name |
NewtypeWrap |
ty :: RttiType |
dc :: Either String DataCon |
wrapped_term :: Term |
RefWrap |
ty :: RttiType |
wrapped_term :: Term |
Instances
Outputable Term
obtainTermFromId :: HscEnv -> Int -> Bool -> Id -> IO Term
obtainTermFromVal :: HscEnv -> Int -> Bool -> Type -> a -> IO Term
reconstructType :: HscEnv -> Int -> Id -> IO (Maybe Type)
skolemiseSubst :: TvSubst -> (TvSubst, TyVarSet)
skolemiseTy :: Type -> (Type, TyVarSet)
Produced by Haddock version 2.4.2