ghc-9.12: The GHC API
Safe HaskellNone
LanguageGHC2021

GHC.Runtime.Interpreter.Types

Description

Types used by the runtime interpreter

Synopsis

Documentation

data Interp Source #

Interpreter

Constructors

Interp 

Fields

data InterpInstance Source #

Constructors

ExternalInterp !ExtInterp

External interpreter

InternalInterp

Internal interpreter

data InterpProcess Source #

Constructors

InterpProcess 

Fields

data ExtInterpInstance c Source #

Common field between native external interpreter and the JS one

Constructors

ExtInterpInstance 

Fields

  • instProcess :: !InterpProcess

    External interpreter process and its pipe (communication channel)

  • instPendingFrees :: !(MVar [HValueRef])

    Values that need to be freed before the next command is sent. Finalizers for ForeignRefs can append values to this list asynchronously.

  • instExtra :: !c

    Instance specific extra 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

data IServConfig Source #

Configuration needed to spawn an external interpreter

Constructors

IServConfig 

Fields

JSInterp

data JSInterpExtra Source #

Constructors

JSInterpExtra 

Fields

data JSState Source #

Constructors

JSState 

Fields

data NodeJsSettings Source #

NodeJs configuration

Constructors

NodeJsSettings 

Fields