Safe Haskell | None |
---|---|
Language | GHC2021 |
Types used by the runtime interpreter
Synopsis
- data Interp = Interp {
- interpInstance :: !InterpInstance
- interpLoader :: !Loader
- interpLookupSymbolCache :: !(MVar (UniqFM FastString (Ptr ())))
- data InterpInstance
- data InterpProcess = InterpProcess {
- interpPipe :: !Pipe
- interpHandle :: !ProcessHandle
- interpLock :: !(MVar ())
- data ExtInterp
- type ExtInterpStatusVar d = MVar (InterpStatus (ExtInterpInstance d))
- data ExtInterpInstance c = ExtInterpInstance {
- instProcess :: !InterpProcess
- instPendingFrees :: !(MVar [HValueRef])
- 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
- type WasmInterp = ExtInterpState WasmInterpConfig ()
- data WasmInterpConfig = WasmInterpConfig {}
Documentation
Interpreter
Interp | |
|
data InterpInstance Source #
ExternalInterp !ExtInterp | External interpreter |
InternalInterp | Internal interpreter |
data InterpProcess Source #
InterpProcess | |
|
type ExtInterpStatusVar d = MVar (InterpStatus (ExtInterpInstance d)) Source #
data ExtInterpInstance c Source #
Common field between native external interpreter and the JS one
ExtInterpInstance | |
|
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).
ExtInterpState | |
|
data InterpStatus inst Source #
Status of an external interpreter
InterpPending | Not spawned yet |
InterpRunning !inst | Running |
IServ
type IServ = ExtInterpState IServConfig () Source #
data IServConfig Source #
Configuration needed to spawn an external interpreter
IServConfig | |
|
JSInterp
data JSInterpExtra Source #
JSInterpExtra | |
|
data JSInterpConfig Source #
JSInterpConfig | |
|
JSState | |
|
data NodeJsSettings Source #
NodeJs configuration
NodeJsSettings | |
|
type WasmInterp = ExtInterpState WasmInterpConfig () Source #
data WasmInterpConfig Source #
WasmInterpConfig | |
|