GHC.Iface.Recomp.Types

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

Safe Haskell | Ignore
Language | GHC2021

GHC.Iface.Recomp.Types

Synopsis

- data IfaceSelfRecomp = IfaceSelfRecomp {
  - mi_sr_src_hash :: !Fingerprint
  - mi_sr_usages :: [Usage]
  - mi_sr_flag_hash :: !(FingerprintWithValue IfaceDynFlags)
  - mi_sr_opt_hash :: !Fingerprint
  - mi_sr_hpc_hash :: !Fingerprint
  - mi_sr_plugin_hash :: !Fingerprint
  }
- data IfaceDynFlags = IfaceDynFlags {
  - ifaceMainIs :: Maybe (Maybe String)
  - ifaceSafeMode :: IfaceTrustInfo
  - ifaceLang :: Maybe IfaceLanguage
  - ifaceExts :: [IfaceExtension]
  - ifaceCppOptions :: IfaceCppOptions
  - ifaceJsOptions :: IfaceCppOptions
  - ifaceCmmOptions :: IfaceCppOptions
  - ifacePaths :: [String]
  - ifaceProf :: Maybe IfaceProfAuto
  - ifaceTicky :: [IfaceGeneralFlag]
  - ifaceCodeGen :: [IfaceGeneralFlag]
  - ifaceFatIface :: Bool
  - ifaceDebugLevel :: Int
  - ifaceCallerCCFilters :: [CallerCcFilter]
  }
- pprIfaceDynFlags :: IfaceDynFlags -> SDoc
- missingExtraFlagInfo :: SDoc

# Documentation

data IfaceSelfRecomp #

The information for a module which is only used when deciding whether to recompile itself.

See Note [Self recompilation information in interface files]

Constructors

IfaceSelfRecomp |
Fields mi_sr_src_hash :: !Fingerprint Hash of the .hs source, used for recompilation checking. mi_sr_usages :: [Usage] Usages; kept sorted so that it's easy to decide whether to write a new iface file (changing usages doesn't affect the hash of this module) NOT STRICT! we read this field lazily from the interface file It is *only* consulted by the recompilation checker mi_sr_flag_hash :: !(FingerprintWithValue IfaceDynFlags) Hash of the important flags used when compiling the module, excluding optimisation flags mi_sr_opt_hash :: !Fingerprint Hash of optimisation flags mi_sr_hpc_hash :: !Fingerprint Hash of hpc flags mi_sr_plugin_hash :: !Fingerprint Hash of plugins

#### Instances

Instances details

NFData IfaceSelfRecomp # |
Instance details Defined in GHC.Iface.Recomp.Types Methods rnf :: IfaceSelfRecomp -> () #
Binary IfaceSelfRecomp # |
Instance details Defined in GHC.Iface.Recomp.Types Methods put_ :: WriteBinHandle -> IfaceSelfRecomp -> IO () # put :: WriteBinHandle -> IfaceSelfRecomp -> IO (Bin IfaceSelfRecomp) # get :: ReadBinHandle -> IO IfaceSelfRecomp #
Outputable IfaceSelfRecomp # |
Instance details Defined in GHC.Iface.Recomp.Types Methods ppr :: IfaceSelfRecomp -> SDoc #

data IfaceDynFlags #

Constructors

IfaceDynFlags |
Fields ifaceMainIs :: Maybe (Maybe String) ifaceSafeMode :: IfaceTrustInfo ifaceLang :: Maybe IfaceLanguage ifaceExts :: [IfaceExtension] ifaceCppOptions :: IfaceCppOptions ifaceJsOptions :: IfaceCppOptions ifaceCmmOptions :: IfaceCppOptions ifacePaths :: [String] ifaceProf :: Maybe IfaceProfAuto ifaceTicky :: [IfaceGeneralFlag] ifaceCodeGen :: [IfaceGeneralFlag] ifaceFatIface :: Bool ifaceDebugLevel :: Int ifaceCallerCCFilters :: [CallerCcFilter]

#### Instances

Instances details

NFData IfaceDynFlags # |
Instance details Defined in GHC.Iface.Flags Methods rnf :: IfaceDynFlags -> () #
Binary IfaceDynFlags # |
Instance details Defined in GHC.Iface.Flags Methods put_ :: WriteBinHandle -> IfaceDynFlags -> IO () # put :: WriteBinHandle -> IfaceDynFlags -> IO (Bin IfaceDynFlags) # get :: ReadBinHandle -> IO IfaceDynFlags #

pprIfaceDynFlags :: IfaceDynFlags -> SDoc #

missingExtraFlagInfo :: SDoc #