HORIZON HASKELLDocslts/ghc-10.0.xaa25b892026-10-10Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · aa25b89 · 2026-10-10

Moduleghc-10.0.0.20260917GHC2024

GHC.Linker.Types

  • 22 types
  • 40 values
datadata LoaderState
#

Constructors

Bytecode Loader State

32 declarations
datadata BytecodeLoaderState
#

The BytecodeLoaderState captures all the information about bytecode loaded into the interpreter. It is separated into two parts. One for bytecode objects loaded by the home package and one for bytecode objects loaded from bytecode libraries for external packages. Much like the HPT/EPS split, the home package state can be unloaded by calling unload.

Constructors

datadata LinkerEnv
#

Information about loaded bytecode

Constructors

  • LinkerEnv
    • closure_env :: !ClosureEnv

      Current global mapping from closure Names to their true values

    • itbl_env :: !ItblEnv

      The current global mapping from RdrNames of DataCons to info table addresses. When a new LinkablePart is linked into the running image, or an existing module in the image is replaced, the itbl_env must be updated appropriately.

    • addr_env :: !AddrEnv

      Like closure_env and itbl_env, but for top-level Addr# literals, see Note [Generating code for top-level string literal bindings] in GHC.StgToByteCode.

datadata LinkedBreaks
#

BreakArrays and CCSs are allocated per-module at link-time.

Specifically, a module's BreakArray is allocated either: - When a BCO for that module is linked - When :break is used on a given module *before* the BCO has been linked.

We keep this structure in the LoaderState

Constructors

Linkable

27 declarations
datadata LinkableWith parts
#

Information we can use to dynamically link modules into the compiler

Constructors

Instances4Functor, Foldable, Traversable, Outputable
datadata LinkableObjectSort
#

Classify the provenance of .o products.

Constructors

  • ModuleObject

    The object is the final product for a module. When linking splices, its file extension will be adapted to the interpreter's way if needed.

  • ForeignObject

    The object was created from generated code for foreign stubs or foreign sources added by the user. Its file extension must be preserved, since there are no objects for alternative ways available.