Safe Haskell | None |
---|---|
Language | Haskell2010 |
Types used by the runtime interpreter
Synopsis
- data Interp = ExternalInterp !IServ
- newtype IServ = IServ (MVar IServState)
- data IServInstance = IServInstance {
- iservPipe :: !Pipe
- iservProcess :: !ProcessHandle
- iservLookupSymbolCache :: !(UniqFM (Ptr ()))
- iservPendingFrees :: ![HValueRef]
- iservConfig :: !IServConfig
- data IServConfig = IServConfig {
- iservConfProgram :: !String
- iservConfOpts :: ![String]
- iservConfHook :: !(Maybe (CreateProcess -> IO ProcessHandle))
- iservConfTrace :: IO ()
- data IServState
Documentation
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).
data IServInstance Source #
External interpreter instance
IServInstance | |
|
data IServConfig Source #
Configuration needed to spawn an external interpreter
IServConfig | |
|
data IServState Source #
State of an external interpreter
IServPending !IServConfig | Not spawned yet |
IServRunning !IServInstance | Running |