| Safe Haskell | Ignore |
|---|---|
| Language | GHC2021 |
GHC.Runtime.Interpreter.Types
Description
Types used by the runtime interpreter
Synopsis
- data Interp = Interp {}
- data InterpInstance = ExternalInterp !ExtInterp
- data InterpProcess = InterpProcess {
- interpPipe :: !Pipe
- interpHandle :: !ProcessHandle
- data ExtInterp
- type ExtInterpStatusVar d = MVar (InterpStatus (ExtInterpInstance d))
- data ExtInterpInstance c = ExtInterpInstance {
- instProcess :: !InterpProcess
- instPendingFrees :: !(MVar [HValueRef])
- instLookupSymbolCache :: !(MVar (UniqFM FastString (Ptr ())))
- instExtra :: !c
- data ExtInterpState cfg details = ExtInterpState {
- interpConfig :: !cfg
- interpStatus :: !(ExtInterpStatusVar details)
- data InterpStatus inst
- = InterpPending
- | InterpRunning !inst
- type IServ = ExtInterpState IServConfig ()
- data IServConfig = IServConfig {
- iservConfProgram :: !String
- iservConfOpts :: ![String]
- iservConfProfiled :: !Bool
- iservConfDynamic :: !Bool
- iservConfHook :: !(Maybe (CreateProcess -> IO ProcessHandle))
- iservConfTrace :: IO ()
- type JSInterp = ExtInterpState JSInterpConfig JSInterpExtra
- data JSInterpExtra = JSInterpExtra {
- instStdIn :: !Handle
- instFinderCache :: !FinderCache
- instFinderOpts :: !FinderOpts
- instJSState :: !(MVar JSState)
- instGhciUnitId :: !UnitId
- data JSInterpConfig = JSInterpConfig {}
- data JSState = JSState {
- jsLinkState :: !LinkPlan
- jsServerStarted :: !Bool
- data NodeJsSettings = NodeJsSettings {}
- defaultNodeJsSettings :: NodeJsSettings
Documentation
Interpreter
Constructors
| Interp | |
Fields
| |
data InterpInstance #
Constructors
| ExternalInterp !ExtInterp | External interpreter |
data InterpProcess #
Constructors
| InterpProcess | |
Fields
| |
type ExtInterpStatusVar d = MVar (InterpStatus (ExtInterpInstance d)) #
data ExtInterpInstance c #
Common field between native external interpreter and the JS one
Constructors
| ExtInterpInstance | |
Fields
| |
data ExtInterpState cfg details #
External interpreter
The external interpreter is spawned lazily (on first use) to avoid slowing down sessions that don't require it. The contents of the MVar reflects the state of the interpreter (running or not).
Constructors
| ExtInterpState | |
Fields
| |
data InterpStatus inst #
Status of an external interpreter
Constructors
| InterpPending | Not spawned yet |
| InterpRunning !inst | Running |
IServ
type IServ = ExtInterpState IServConfig () #
data IServConfig #
Configuration needed to spawn an external interpreter
Constructors
| IServConfig | |
Fields
| |
JSInterp
data JSInterpExtra #
Constructors
| JSInterpExtra | |
Fields
| |
data JSInterpConfig #
Constructors
| JSInterpConfig | |
Fields
| |
Constructors
| JSState | |
Fields
| |
data NodeJsSettings #
NodeJs configuration
Constructors
| NodeJsSettings | |
Fields
| |