Safe Haskell | None |
---|---|
Language | GHC2021 |
GHC.Runtime.Interpreter.Types
Description
Types used by the runtime interpreter
Synopsis
- data Interp = Interp {}
- data InterpInstance
- 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 Source #
Constructors
ExternalInterp !ExtInterp | External interpreter |
InternalInterp | Internal interpreter |
data InterpProcess Source #
Constructors
InterpProcess | |
Fields
|
type ExtInterpStatusVar d = MVar (InterpStatus (ExtInterpInstance d)) Source #
data ExtInterpInstance c Source #
Common field between native external interpreter and the JS one
Constructors
ExtInterpInstance | |
Fields
|
data ExtInterpState cfg details Source #
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 Source #
Status of an external interpreter
Constructors
InterpPending | Not spawned yet |
InterpRunning !inst | Running |
IServ
type IServ = ExtInterpState IServConfig () Source #
data IServConfig Source #
Configuration needed to spawn an external interpreter
Constructors
IServConfig | |
Fields
|
JSInterp
data JSInterpExtra Source #
Constructors
JSInterpExtra | |
Fields
|
data JSInterpConfig Source #
Constructors
JSInterpConfig | |
Fields
|
Constructors
JSState | |
Fields
|
data NodeJsSettings Source #
NodeJs configuration
Constructors
NodeJsSettings | |
Fields
|