HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

  • Packageghc-9.10.3
  • Exports34
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourcePipeline.hs

Run a series of compilation steps in a pipeline, for a

2 declarations

Interfaces for the compilation manager (interpreted/batch-mode)

5 declarations
valuecompileOne
  1. :: HscEnv
  2. -> ModSummary

    summary for module being compiled

  3. -> Int

    module N ...

  4. -> Int

    ... of M

  5. -> Maybe ModIface

    old interface, if we have one

  6. -> HomeModLinkable

    old linkable, if we have one

  7. -> IO HomeModInfo

    the complete HomeModInfo, if successful

#

Compile

Compile a single module, under the control of the compilation manager.

This is the interface between the compilation manager and the compiler proper (hsc), where we deal with tedious details like reading the OPTIONS pragma from the source file, converting the C or assembly that GHC produces into an object file, and compiling FFI stub files.

NB. No old interface can also mean that the source has changed.

Linking

3 declarations

PipeEnv

3 declarations

Running individual phases

3 declarations
datadata TPhase res where
#

Constructors

Instances1MonadUse
valuerunPhase :: TPhase out -> IO out
#

Default interpretation of each phase, in terms of IO.

Constructing Pipelines

17 declarations
classclass MonadUse (f :: k -> Type) (m :: k -> Type) where
#

Lift a f action into an m action.

Methods

  • use :: f a -> m a
Instances1MonadUse

Default method of running a pipeline

1 declaration