ghci-9.8.0.20230809: The library supporting GHC's interactive interpreter
Safe HaskellNone
LanguageHaskell2010

GHCi.RemoteTypes

Description

Types for referring to remote objects in Remote GHCi. For more details, see Note [External GHCi pointers] in compilerGHCRuntime/Interpreter.hs

For details on Remote GHCi, see Note [Remote GHCi] in compilerGHCRuntime/Interpreter.hs.

Synopsis

Remote pointer

newtype RemotePtr a Source #

Constructors

RemotePtr Word64 

Instances

Instances details
Show (RemotePtr a) Source # 
Instance details

Defined in GHCi.RemoteTypes

Binary (RemotePtr a) Source # 
Instance details

Defined in GHCi.RemoteTypes

NFData (RemotePtr a) Source # 
Instance details

Defined in GHCi.RemoteTypes

Methods

rnf :: RemotePtr a -> () Source #

RemoteRef: reference to some heap object (potentially remote)

newtype RemoteRef a Source #

A reference to a heap object. Potentially in a remote heap! These are allocated and freed explicitly.

Constructors

RemoteRef (RemotePtr ()) 

Instances

Instances details
Show (RemoteRef a) Source # 
Instance details

Defined in GHCi.RemoteTypes

Binary (RemoteRef a) Source # 
Instance details

Defined in GHCi.RemoteTypes

mkRemoteRef :: a -> IO (RemoteRef a) Source #

Make a reference to a local value that we can send remotely. This reference will keep the value that it refers to alive until freeRemoteRef is called.

localRef :: RemoteRef a -> IO a Source #

Convert a RemoteRef to its carried type. Should only be used if the RemoteRef originated in this process.

freeRemoteRef :: RemoteRef a -> IO () Source #

Release a RemoteRef that originated in this process

ForeignRef: RemoteRef with a finalizer

data ForeignRef a Source #

An RemoteRef with a finalizer

Instances

Instances details
NFData (ForeignRef a) Source # 
Instance details

Defined in GHCi.RemoteTypes

Methods

rnf :: ForeignRef a -> () Source #

mkForeignRef :: RemoteRef a -> IO () -> IO (ForeignRef a) Source #

Create a ForeignRef from a RemoteRef. The finalizer should arrange to call freeRemoteRef on the RemoteRef. (since this function needs to be called in the process that created the RemoteRef, it cannot be called directly from the finalizer).

HValue

newtype HValue Source #

Constructors

HValue (Any :: Type) 

Instances

Instances details
Show HValue Source # 
Instance details

Defined in GHCi.RemoteTypes