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 #