ghc-lib-parser-9.14.1.20251220: The GHC API, decoupled from GHC versions

Safe Haskell | Ignore
Language | GHC2021

GHCi.ResolvedBCO

Synopsis

- data ResolvedBCO = ResolvedBCO {
  - resolvedBCOIsLE :: Bool
  - resolvedBCOArity :: !Int
  - resolvedBCOInstrs :: BCOByteArray Word16
  - resolvedBCOBitmap :: BCOByteArray Word
  - resolvedBCOLits :: BCOByteArray Word
  - resolvedBCOPtrs :: SizedSeq ResolvedBCOPtr
  }
- data ResolvedBCOPtr
  - = ResolvedBCORef !Int
  - | ResolvedBCOPtr !(RemoteRef HValue)
  - | ResolvedBCOStaticPtr !(RemotePtr ())
  - | ResolvedBCOPtrBCO ResolvedBCO
  - | ResolvedBCOPtrBreakArray !(RemoteRef BreakArray)
- isLittleEndian :: Bool
- data BCOByteArray (a :: k) = BCOByteArray {
  - getBCOByteArray :: !ByteArray#
  }
- mkBCOByteArray :: UArray Int a -> BCOByteArray a

# Documentation

data ResolvedBCO #

A `ResolvedBCO` is one in which all the `Name` references have been resolved to actual addresses or `RemoteHValues`.

Constructors

ResolvedBCO |

Fields

- resolvedBCOIsLE :: Bool
- resolvedBCOArity :: !Int
- resolvedBCOInstrs :: BCOByteArray Word16

  insns

- resolvedBCOBitmap :: BCOByteArray Word

  bitmap

- resolvedBCOLits :: BCOByteArray Word

  non-ptrs - subword sized entries still take up a full (host) word

- resolvedBCOPtrs :: SizedSeq ResolvedBCOPtr

  ptrs

#### Instances

Instances details

Binary ResolvedBCO # | The Binary instance for ResolvedBCOs. Note, that we do encode the endianness, however there is no support for mixed endianness setups. This is primarily to ensure that ghc and iserv share the same endianness.
Instance details Defined in GHCi.ResolvedBCO Methods put :: ResolvedBCO -> Put # get :: Get ResolvedBCO # putList :: [ResolvedBCO] -> Put #
Generic ResolvedBCO # |

Instance details

Defined in GHCi.ResolvedBCO

Associated Types

type Rep ResolvedBCO |

Instance details

Defined in GHCi.ResolvedBCO

type Rep ResolvedBCO = D1 ('MetaData "ResolvedBCO" "GHCi.ResolvedBCO" "ghc-lib-parser-9.14.1.20251220-PtFrlL5ZJN3Qo3Axa3c6X" 'False) (C1 ('MetaCons "ResolvedBCO" 'PrefixI 'True) ((S1 ('MetaSel ('Just "resolvedBCOIsLE") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "resolvedBCOArity") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Just "resolvedBCOInstrs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BCOByteArray Word16)))) :*: (S1 ('MetaSel ('Just "resolvedBCOBitmap") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BCOByteArray Word)) :*: (S1 ('MetaSel ('Just "resolvedBCOLits") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BCOByteArray Word)) :*: S1 ('MetaSel ('Just "resolvedBCOPtrs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SizedSeq ResolvedBCOPtr))))))

Methods

from :: ResolvedBCO -> Rep ResolvedBCO x #

to :: Rep ResolvedBCO x -> ResolvedBCO #

Show ResolvedBCO # |
Instance details Defined in GHCi.ResolvedBCO Methods showsPrec :: Int -> ResolvedBCO -> ShowS # show :: ResolvedBCO -> String # showList :: [ResolvedBCO] -> ShowS #
type Rep ResolvedBCO # |

Instance details

Defined in GHCi.ResolvedBCO

type Rep ResolvedBCO = D1 ('MetaData "ResolvedBCO" "GHCi.ResolvedBCO" "ghc-lib-parser-9.14.1.20251220-PtFrlL5ZJN3Qo3Axa3c6X" 'False) (C1 ('MetaCons "ResolvedBCO" 'PrefixI 'True) ((S1 ('MetaSel ('Just "resolvedBCOIsLE") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "resolvedBCOArity") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Just "resolvedBCOInstrs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BCOByteArray Word16)))) :*: (S1 ('MetaSel ('Just "resolvedBCOBitmap") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BCOByteArray Word)) :*: (S1 ('MetaSel ('Just "resolvedBCOLits") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BCOByteArray Word)) :*: S1 ('MetaSel ('Just "resolvedBCOPtrs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SizedSeq ResolvedBCOPtr))))))

data ResolvedBCOPtr #

Constructors

ResolvedBCORef !Int | reference to the Nth BCO in the current set
ResolvedBCOPtr !(RemoteRef HValue) | reference to a previously created BCO
ResolvedBCOStaticPtr !(RemotePtr ()) | reference to a static ptr
ResolvedBCOPtrBCO ResolvedBCO | a nested BCO
ResolvedBCOPtrBreakArray !(RemoteRef BreakArray) | Resolves to the MutableArray# inside the BreakArray

#### Instances

Instances details

Binary ResolvedBCOPtr # |
Instance details Defined in GHCi.ResolvedBCO Methods put :: ResolvedBCOPtr -> Put # get :: Get ResolvedBCOPtr # putList :: [ResolvedBCOPtr] -> Put #
Generic ResolvedBCOPtr # |

Instance details

Defined in GHCi.ResolvedBCO

Associated Types

type Rep ResolvedBCOPtr |

Instance details

Defined in GHCi.ResolvedBCO

type Rep ResolvedBCOPtr = D1 ('MetaData "ResolvedBCOPtr" "GHCi.ResolvedBCO" "ghc-lib-parser-9.14.1.20251220-PtFrlL5ZJN3Qo3Axa3c6X" 'False) ((C1 ('MetaCons "ResolvedBCORef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Int)) :+: C1 ('MetaCons "ResolvedBCOPtr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 (RemoteRef HValue)))) :+: (C1 ('MetaCons "ResolvedBCOStaticPtr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 (RemotePtr ()))) :+: (C1 ('MetaCons "ResolvedBCOPtrBCO" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ResolvedBCO)) :+: C1 ('MetaCons "ResolvedBCOPtrBreakArray" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 (RemoteRef BreakArray))))))

Methods

from :: ResolvedBCOPtr -> Rep ResolvedBCOPtr x #

to :: Rep ResolvedBCOPtr x -> ResolvedBCOPtr #

Show ResolvedBCOPtr # |
Instance details Defined in GHCi.ResolvedBCO Methods showsPrec :: Int -> ResolvedBCOPtr -> ShowS # show :: ResolvedBCOPtr -> String # showList :: [ResolvedBCOPtr] -> ShowS #
type Rep ResolvedBCOPtr # |

Instance details

Defined in GHCi.ResolvedBCO

type Rep ResolvedBCOPtr = D1 ('MetaData "ResolvedBCOPtr" "GHCi.ResolvedBCO" "ghc-lib-parser-9.14.1.20251220-PtFrlL5ZJN3Qo3Axa3c6X" 'False) ((C1 ('MetaCons "ResolvedBCORef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Int)) :+: C1 ('MetaCons "ResolvedBCOPtr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 (RemoteRef HValue)))) :+: (C1 ('MetaCons "ResolvedBCOStaticPtr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 (RemotePtr ()))) :+: (C1 ('MetaCons "ResolvedBCOPtrBCO" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ResolvedBCO)) :+: C1 ('MetaCons "ResolvedBCOPtrBreakArray" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 (RemoteRef BreakArray))))))

isLittleEndian :: Bool #

data BCOByteArray (a :: k) #

Wrapper for a `ByteArray#`. The phantom type tells what elements are stored in the `ByteArray#`. Creating a `ByteArray#` can be achieved using `UArray'`s API, where the underlying `ByteArray#` can be unpacked.

Constructors

BCOByteArray |

Fields

- getBCOByteArray :: !ByteArray#

#### Instances

Instances details

(Binary a, Storable a, IArray UArray a) => Binary (BCOByteArray a) # |
Instance details Defined in GHCi.ResolvedBCO Methods put :: BCOByteArray a -> Put # get :: Get (BCOByteArray a) # putList :: [BCOByteArray a] -> Put #
Show (BCOByteArray Word16) # |
Instance details Defined in GHCi.ResolvedBCO Methods showsPrec :: Int -> BCOByteArray Word16 -> ShowS # show :: BCOByteArray Word16 -> String # showList :: [BCOByteArray Word16] -> ShowS #
Show (BCOByteArray Word) # |
Instance details Defined in GHCi.ResolvedBCO Methods showsPrec :: Int -> BCOByteArray Word -> ShowS # show :: BCOByteArray Word -> String # showList :: [BCOByteArray Word] -> ShowS #

mkBCOByteArray :: UArray Int a -> BCOByteArray a #