ghc-9.6.3: The GHC API

Safe Haskell | Safe-Inferred
Language | Haskell2010

GHC.Iface.Make

Description

Module for constructing `ModIface` values (interface files), writing them to disk and comparing two versions to see if recompilation is required.

Synopsis

- mkPartialIface :: HscEnv -> CoreProgram -> ModDetails -> ModSummary -> ModGuts -> PartialModIface
- mkFullIface :: HscEnv -> PartialModIface -> Maybe StgCgInfos -> Maybe CmmCgInfos -> IO ModIface
- mkIfaceTc :: HscEnv -> SafeHaskellMode -> ModDetails -> ModSummary -> Maybe CoreProgram -> TcGblEnv -> IO ModIface
- mkIfaceExports :: [AvailInfo] -> [IfaceExport]
- coAxiomToIfaceDecl :: CoAxiom br -> IfaceDecl
- tyThingToIfaceDecl :: Bool -> TyThing -> IfaceDecl

# Documentation

mkPartialIface :: HscEnv -> CoreProgram -> ModDetails -> ModSummary -> ModGuts -> PartialModIface Source #

mkFullIface :: HscEnv -> PartialModIface -> Maybe StgCgInfos -> Maybe CmmCgInfos -> IO ModIface Source #

Fully instantiate an interface. Adds fingerprints and potentially code generator produced information.

CmmCgInfos is not available when not generating code (-fno-code), or when not generating interface pragmas (-fomit-interface-pragmas). See also Note [Conveying CAF-info and LFInfo between modules] in GHC.StgToCmm.Types.

mkIfaceTc :: HscEnv -> SafeHaskellMode -> ModDetails -> ModSummary -> Maybe CoreProgram -> TcGblEnv -> IO ModIface Source #

Make an interface from the results of typechecking only. Useful for non-optimising compilation, or where we aren't generating any object code at all (`NoBackend`).

mkIfaceExports :: [AvailInfo] -> [IfaceExport] Source #

coAxiomToIfaceDecl :: CoAxiom br -> IfaceDecl Source #

tyThingToIfaceDecl :: Bool -> TyThing -> IfaceDecl Source #