ghc-7.10.2: The GHC API

Safe Haskell | None
Language | Haskell2010

DynFlags

Contents

- Dynamic flags and associated configuration types
  - Safe Haskell
  - System tool settings and locations
  - Manipulating DynFlags
  - Parsing DynFlags
  - Available DynFlags
  - DynFlags C compiler options
- Configuration of the stg-to-stg passes
- Compiler configuration suitable for display to the user
- SSE and AVX
- Linker/compiler information

Description

Dynamic flags

Most flags are dynamic flags, which means they can change from compilation to compilation using `OPTIONS_GHC` pragmas, and in a multi-session GHC each session can be using different dynamic flags. Dynamic flags can also be set at the prompt in GHCi.

(c) The University of Glasgow 2005

Synopsis

- data DumpFlag
  - = Opt_D_dump_cmm
  - | Opt_D_dump_cmm_raw
  - | Opt_D_dump_cmm_cfg
  - | Opt_D_dump_cmm_cbe
  - | Opt_D_dump_cmm_proc
  - | Opt_D_dump_cmm_sink
  - | Opt_D_dump_cmm_sp
  - | Opt_D_dump_cmm_procmap
  - | Opt_D_dump_cmm_split
  - | Opt_D_dump_cmm_info
  - | Opt_D_dump_cmm_cps
  - | Opt_D_dump_asm
  - | Opt_D_dump_asm_native
  - | Opt_D_dump_asm_liveness
  - | Opt_D_dump_asm_regalloc
  - | Opt_D_dump_asm_regalloc_stages
  - | Opt_D_dump_asm_conflicts
  - | Opt_D_dump_asm_stats
  - | Opt_D_dump_asm_expanded
  - | Opt_D_dump_llvm
  - | Opt_D_dump_core_stats
  - | Opt_D_dump_deriv
  - | Opt_D_dump_ds
  - | Opt_D_dump_foreign
  - | Opt_D_dump_inlinings
  - | Opt_D_dump_rule_firings
  - | Opt_D_dump_rule_rewrites
  - | Opt_D_dump_simpl_trace
  - | Opt_D_dump_occur_anal
  - | Opt_D_dump_parsed
  - | Opt_D_dump_rn
  - | Opt_D_dump_simpl
  - | Opt_D_dump_simpl_iterations
  - | Opt_D_dump_spec
  - | Opt_D_dump_prep
  - | Opt_D_dump_stg
  - | Opt_D_dump_call_arity
  - | Opt_D_dump_stranal
  - | Opt_D_dump_strsigs
  - | Opt_D_dump_tc
  - | Opt_D_dump_types
  - | Opt_D_dump_rules
  - | Opt_D_dump_cse
  - | Opt_D_dump_worker_wrapper
  - | Opt_D_dump_rn_trace
  - | Opt_D_dump_rn_stats
  - | Opt_D_dump_opt_cmm
  - | Opt_D_dump_simpl_stats
  - | Opt_D_dump_cs_trace
  - | Opt_D_dump_tc_trace
  - | Opt_D_dump_if_trace
  - | Opt_D_dump_vt_trace
  - | Opt_D_dump_splices
  - | Opt_D_th_dec_file
  - | Opt_D_dump_BCOs
  - | Opt_D_dump_vect
  - | Opt_D_dump_ticked
  - | Opt_D_dump_rtti
  - | Opt_D_source_stats
  - | Opt_D_verbose_stg2stg
  - | Opt_D_dump_hi
  - | Opt_D_dump_hi_diffs
  - | Opt_D_dump_mod_cycles
  - | Opt_D_dump_mod_map
  - | Opt_D_dump_view_pattern_commoning
  - | Opt_D_verbose_core2core
  - | Opt_D_dump_debug
- data GeneralFlag
  - = Opt_DumpToFile
  - | Opt_D_faststring_stats
  - | Opt_D_dump_minimal_imports
  - | Opt_DoCoreLinting
  - | Opt_DoStgLinting
  - | Opt_DoCmmLinting
  - | Opt_DoAsmLinting
  - | Opt_DoAnnotationLinting
  - | Opt_NoLlvmMangler
  - | Opt_WarnIsError
  - | Opt_PrintExplicitForalls
  - | Opt_PrintExplicitKinds
  - | Opt_CallArity
  - | Opt_Strictness
  - | Opt_LateDmdAnal
  - | Opt_KillAbsence
  - | Opt_KillOneShot
  - | Opt_FullLaziness
  - | Opt_FloatIn
  - | Opt_Specialise
  - | Opt_SpecialiseAggressively
  - | Opt_StaticArgumentTransformation
  - | Opt_CSE
  - | Opt_LiberateCase
  - | Opt_SpecConstr
  - | Opt_DoLambdaEtaExpansion
  - | Opt_IgnoreAsserts
  - | Opt_DoEtaReduction
  - | Opt_CaseMerge
  - | Opt_UnboxStrictFields
  - | Opt_UnboxSmallStrictFields
  - | Opt_DictsCheap
  - | Opt_EnableRewriteRules
  - | Opt_Vectorise
  - | Opt_VectorisationAvoidance
  - | Opt_RegsGraph
  - | Opt_RegsIterative
  - | Opt_PedanticBottoms
  - | Opt_LlvmTBAA
  - | Opt_LlvmPassVectorsInRegisters
  - | Opt_IrrefutableTuples
  - | Opt_CmmSink
  - | Opt_CmmElimCommonBlocks
  - | Opt_OmitYields
  - | Opt_SimpleListLiterals
  - | Opt_FunToThunk
  - | Opt_DictsStrict
  - | Opt_DmdTxDictSel
  - | Opt_Loopification
  - | Opt_IgnoreInterfacePragmas
  - | Opt_OmitInterfacePragmas
  - | Opt_ExposeAllUnfoldings
  - | Opt_WriteInterface
  - | Opt_AutoSccsOnIndividualCafs
  - | Opt_ProfCountEntries
  - | Opt_Pp
  - | Opt_ForceRecomp
  - | Opt_ExcessPrecision
  - | Opt_EagerBlackHoling
  - | Opt_NoHsMain
  - | Opt_SplitObjs
  - | Opt_StgStats
  - | Opt_HideAllPackages
  - | Opt_PrintBindResult
  - | Opt_Haddock
  - | Opt_HaddockOptions
  - | Opt_Hpc_No_Auto
  - | Opt_BreakOnException
  - | Opt_BreakOnError
  - | Opt_PrintEvldWithShow
  - | Opt_PrintBindContents
  - | Opt_GenManifest
  - | Opt_EmbedManifest
  - | Opt_EmitExternalCore
  - | Opt_SharedImplib
  - | Opt_BuildingCabalPackage
  - | Opt_IgnoreDotGhci
  - | Opt_GhciSandbox
  - | Opt_GhciHistory
  - | Opt_HelpfulErrors
  - | Opt_DeferTypeErrors
  - | Opt_DeferTypedHoles
  - | Opt_Parallel
  - | Opt_GranMacros
  - | Opt_PIC
  - | Opt_SccProfilingOn
  - | Opt_Ticky
  - | Opt_Ticky_Allocd
  - | Opt_Ticky_LNE
  - | Opt_Ticky_Dyn_Thunk
  - | Opt_Static
  - | Opt_RPath
  - | Opt_RelativeDynlibPaths
  - | Opt_Hpc
  - | Opt_FlatCache
  - | Opt_SimplPreInlining
  - | Opt_ErrorSpans
  - | Opt_PprCaseAsLet
  - | Opt_PprShowTicks
  - | Opt_SuppressCoercions
  - | Opt_SuppressVarKinds
  - | Opt_SuppressModulePrefixes
  - | Opt_SuppressTypeApplications
  - | Opt_SuppressIdInfo
  - | Opt_SuppressTypeSignatures
  - | Opt_SuppressUniques
  - | Opt_AutoLinkPackages
  - | Opt_ImplicitImportQualified
  - | Opt_KeepHiDiffs
  - | Opt_KeepHcFiles
  - | Opt_KeepSFiles
  - | Opt_KeepTmpFiles
  - | Opt_KeepRawTokenStream
  - | Opt_KeepLlvmFiles
  - | Opt_BuildDynamicToo
  - | Opt_DistrustAllPackages
  - | Opt_PackageTrust
  - | Opt_Debug
- data WarningFlag
  - = Opt_WarnDuplicateExports
  - | Opt_WarnDuplicateConstraints
  - | Opt_WarnHiShadows
  - | Opt_WarnImplicitPrelude
  - | Opt_WarnIncompletePatterns
  - | Opt_WarnIncompleteUniPatterns
  - | Opt_WarnIncompletePatternsRecUpd
  - | Opt_WarnOverflowedLiterals
  - | Opt_WarnEmptyEnumerations
  - | Opt_WarnMissingFields
  - | Opt_WarnMissingImportList
  - | Opt_WarnMissingMethods
  - | Opt_WarnMissingSigs
  - | Opt_WarnMissingLocalSigs
  - | Opt_WarnNameShadowing
  - | Opt_WarnOverlappingPatterns
  - | Opt_WarnTypeDefaults
  - | Opt_WarnMonomorphism
  - | Opt_WarnUnusedBinds
  - | Opt_WarnUnusedImports
  - | Opt_WarnUnusedMatches
  - | Opt_WarnContextQuantification
  - | Opt_WarnWarningsDeprecations
  - | Opt_WarnDeprecatedFlags
  - | Opt_WarnAMP
  - | Opt_WarnDodgyExports
  - | Opt_WarnDodgyImports
  - | Opt_WarnOrphans
  - | Opt_WarnAutoOrphans
  - | Opt_WarnIdentities
  - | Opt_WarnTabs
  - | Opt_WarnUnrecognisedPragmas
  - | Opt_WarnDodgyForeignImports
  - | Opt_WarnUnusedDoBind
  - | Opt_WarnWrongDoBind
  - | Opt_WarnAlternativeLayoutRuleTransitional
  - | Opt_WarnUnsafe
  - | Opt_WarnSafe
  - | Opt_WarnTrustworthySafe
  - | Opt_WarnPointlessPragmas
  - | Opt_WarnUnsupportedCallingConventions
  - | Opt_WarnUnsupportedLlvmVersion
  - | Opt_WarnInlineRuleShadowing
  - | Opt_WarnTypedHoles
  - | Opt_WarnPartialTypeSignatures
  - | Opt_WarnMissingExportedSigs
  - | Opt_WarnUntickedPromotedConstructors
  - | Opt_WarnDerivingTypeable
- data ExtensionFlag
  - = Opt_Cpp
  - | Opt_OverlappingInstances
  - | Opt_UndecidableInstances
  - | Opt_IncoherentInstances
  - | Opt_MonomorphismRestriction
  - | Opt_MonoPatBinds
  - | Opt_MonoLocalBinds
  - | Opt_RelaxedPolyRec
  - | Opt_ExtendedDefaultRules
  - | Opt_ForeignFunctionInterface
  - | Opt_UnliftedFFITypes
  - | Opt_InterruptibleFFI
  - | Opt_CApiFFI
  - | Opt_GHCForeignImportPrim
  - | Opt_JavaScriptFFI
  - | Opt_ParallelArrays
  - | Opt_Arrows
  - | Opt_TemplateHaskell
  - | Opt_QuasiQuotes
  - | Opt_ImplicitParams
  - | Opt_ImplicitPrelude
  - | Opt_ScopedTypeVariables
  - | Opt_AllowAmbiguousTypes
  - | Opt_UnboxedTuples
  - | Opt_BangPatterns
  - | Opt_TypeFamilies
  - | Opt_OverloadedStrings
  - | Opt_OverloadedLists
  - | Opt_NumDecimals
  - | Opt_DisambiguateRecordFields
  - | Opt_RecordWildCards
  - | Opt_RecordPuns
  - | Opt_ViewPatterns
  - | Opt_GADTs
  - | Opt_GADTSyntax
  - | Opt_NPlusKPatterns
  - | Opt_DoAndIfThenElse
  - | Opt_RebindableSyntax
  - | Opt_ConstraintKinds
  - | Opt_PolyKinds
  - | Opt_DataKinds
  - | Opt_InstanceSigs
  - | Opt_StandaloneDeriving
  - | Opt_DeriveDataTypeable
  - | Opt_AutoDeriveTypeable
  - | Opt_DeriveFunctor
  - | Opt_DeriveTraversable
  - | Opt_DeriveFoldable
  - | Opt_DeriveGeneric
  - | Opt_DefaultSignatures
  - | Opt_DeriveAnyClass
  - | Opt_TypeSynonymInstances
  - | Opt_FlexibleContexts
  - | Opt_FlexibleInstances
  - | Opt_ConstrainedClassMethods
  - | Opt_MultiParamTypeClasses
  - | Opt_NullaryTypeClasses
  - | Opt_FunctionalDependencies
  - | Opt_UnicodeSyntax
  - | Opt_ExistentialQuantification
  - | Opt_MagicHash
  - | Opt_EmptyDataDecls
  - | Opt_KindSignatures
  - | Opt_RoleAnnotations
  - | Opt_ParallelListComp
  - | Opt_TransformListComp
  - | Opt_MonadComprehensions
  - | Opt_GeneralizedNewtypeDeriving
  - | Opt_RecursiveDo
  - | Opt_PostfixOperators
  - | Opt_TupleSections
  - | Opt_PatternGuards
  - | Opt_LiberalTypeSynonyms
  - | Opt_RankNTypes
  - | Opt_ImpredicativeTypes
  - | Opt_TypeOperators
  - | Opt_ExplicitNamespaces
  - | Opt_PackageImports
  - | Opt_ExplicitForAll
  - | Opt_AlternativeLayoutRule
  - | Opt_AlternativeLayoutRuleTransitional
  - | Opt_DatatypeContexts
  - | Opt_NondecreasingIndentation
  - | Opt_RelaxedLayout
  - | Opt_TraditionalRecordSyntax
  - | Opt_LambdaCase
  - | Opt_MultiWayIf
  - | Opt_BinaryLiterals
  - | Opt_NegativeLiterals
  - | Opt_EmptyCase
  - | Opt_PatternSynonyms
  - | Opt_PartialTypeSignatures
  - | Opt_NamedWildCards
  - | Opt_StaticPointers
- data Language
  - = Haskell98
  - | Haskell2010
- data PlatformConstants = PlatformConstants {
  - pc_platformConstants :: ()
  - pc_STD_HDR_SIZE :: Int
  - pc_PROF_HDR_SIZE :: Int
  - pc_BLOCK_SIZE :: Int
  - pc_BLOCKS_PER_MBLOCK :: Int
  - pc_OFFSET_StgRegTable_rR1 :: Int
  - pc_OFFSET_StgRegTable_rR2 :: Int
  - pc_OFFSET_StgRegTable_rR3 :: Int
  - pc_OFFSET_StgRegTable_rR4 :: Int
  - pc_OFFSET_StgRegTable_rR5 :: Int
  - pc_OFFSET_StgRegTable_rR6 :: Int
  - pc_OFFSET_StgRegTable_rR7 :: Int
  - pc_OFFSET_StgRegTable_rR8 :: Int
  - pc_OFFSET_StgRegTable_rR9 :: Int
  - pc_OFFSET_StgRegTable_rR10 :: Int
  - pc_OFFSET_StgRegTable_rF1 :: Int
  - pc_OFFSET_StgRegTable_rF2 :: Int
  - pc_OFFSET_StgRegTable_rF3 :: Int
  - pc_OFFSET_StgRegTable_rF4 :: Int
  - pc_OFFSET_StgRegTable_rF5 :: Int
  - pc_OFFSET_StgRegTable_rF6 :: Int
  - pc_OFFSET_StgRegTable_rD1 :: Int
  - pc_OFFSET_StgRegTable_rD2 :: Int
  - pc_OFFSET_StgRegTable_rD3 :: Int
  - pc_OFFSET_StgRegTable_rD4 :: Int
  - pc_OFFSET_StgRegTable_rD5 :: Int
  - pc_OFFSET_StgRegTable_rD6 :: Int
  - pc_OFFSET_StgRegTable_rXMM1 :: Int
  - pc_OFFSET_StgRegTable_rXMM2 :: Int
  - pc_OFFSET_StgRegTable_rXMM3 :: Int
  - pc_OFFSET_StgRegTable_rXMM4 :: Int
  - pc_OFFSET_StgRegTable_rXMM5 :: Int
  - pc_OFFSET_StgRegTable_rXMM6 :: Int
  - pc_OFFSET_StgRegTable_rYMM1 :: Int
  - pc_OFFSET_StgRegTable_rYMM2 :: Int
  - pc_OFFSET_StgRegTable_rYMM3 :: Int
  - pc_OFFSET_StgRegTable_rYMM4 :: Int
  - pc_OFFSET_StgRegTable_rYMM5 :: Int
  - pc_OFFSET_StgRegTable_rYMM6 :: Int
  - pc_OFFSET_StgRegTable_rZMM1 :: Int
  - pc_OFFSET_StgRegTable_rZMM2 :: Int
  - pc_OFFSET_StgRegTable_rZMM3 :: Int
  - pc_OFFSET_StgRegTable_rZMM4 :: Int
  - pc_OFFSET_StgRegTable_rZMM5 :: Int
  - pc_OFFSET_StgRegTable_rZMM6 :: Int
  - pc_OFFSET_StgRegTable_rL1 :: Int
  - pc_OFFSET_StgRegTable_rSp :: Int
  - pc_OFFSET_StgRegTable_rSpLim :: Int
  - pc_OFFSET_StgRegTable_rHp :: Int
  - pc_OFFSET_StgRegTable_rHpLim :: Int
  - pc_OFFSET_StgRegTable_rCCCS :: Int
  - pc_OFFSET_StgRegTable_rCurrentTSO :: Int
  - pc_OFFSET_StgRegTable_rCurrentNursery :: Int
  - pc_OFFSET_StgRegTable_rHpAlloc :: Int
  - pc_OFFSET_stgEagerBlackholeInfo :: Int
  - pc_OFFSET_stgGCEnter1 :: Int
  - pc_OFFSET_stgGCFun :: Int
  - pc_OFFSET_Capability_r :: Int
  - pc_OFFSET_bdescr_start :: Int
  - pc_OFFSET_bdescr_free :: Int
  - pc_OFFSET_bdescr_blocks :: Int
  - pc_SIZEOF_CostCentreStack :: Int
  - pc_OFFSET_CostCentreStack_mem_alloc :: Int
  - pc_REP_CostCentreStack_mem_alloc :: Int
  - pc_OFFSET_CostCentreStack_scc_count :: Int
  - pc_REP_CostCentreStack_scc_count :: Int
  - pc_OFFSET_StgHeader_ccs :: Int
  - pc_OFFSET_StgHeader_ldvw :: Int
  - pc_SIZEOF_StgSMPThunkHeader :: Int
  - pc_OFFSET_StgEntCounter_allocs :: Int
  - pc_REP_StgEntCounter_allocs :: Int
  - pc_OFFSET_StgEntCounter_allocd :: Int
  - pc_REP_StgEntCounter_allocd :: Int
  - pc_OFFSET_StgEntCounter_registeredp :: Int
  - pc_OFFSET_StgEntCounter_link :: Int
  - pc_OFFSET_StgEntCounter_entry_count :: Int
  - pc_SIZEOF_StgUpdateFrame_NoHdr :: Int
  - pc_SIZEOF_StgMutArrPtrs_NoHdr :: Int
  - pc_OFFSET_StgMutArrPtrs_ptrs :: Int
  - pc_OFFSET_StgMutArrPtrs_size :: Int
  - pc_SIZEOF_StgSmallMutArrPtrs_NoHdr :: Int
  - pc_OFFSET_StgSmallMutArrPtrs_ptrs :: Int
  - pc_SIZEOF_StgArrWords_NoHdr :: Int
  - pc_OFFSET_StgArrWords_bytes :: Int
  - pc_OFFSET_StgTSO_alloc_limit :: Int
  - pc_OFFSET_StgTSO_cccs :: Int
  - pc_OFFSET_StgTSO_stackobj :: Int
  - pc_OFFSET_StgStack_sp :: Int
  - pc_OFFSET_StgStack_stack :: Int
  - pc_OFFSET_StgUpdateFrame_updatee :: Int
  - pc_OFFSET_StgFunInfoExtraFwd_arity :: Int
  - pc_REP_StgFunInfoExtraFwd_arity :: Int
  - pc_SIZEOF_StgFunInfoExtraRev :: Int
  - pc_OFFSET_StgFunInfoExtraRev_arity :: Int
  - pc_REP_StgFunInfoExtraRev_arity :: Int
  - pc_MAX_SPEC_SELECTEE_SIZE :: Int
  - pc_MAX_SPEC_AP_SIZE :: Int
  - pc_MIN_PAYLOAD_SIZE :: Int
  - pc_MIN_INTLIKE :: Int
  - pc_MAX_INTLIKE :: Int
  - pc_MIN_CHARLIKE :: Int
  - pc_MAX_CHARLIKE :: Int
  - pc_MUT_ARR_PTRS_CARD_BITS :: Int
  - pc_MAX_Vanilla_REG :: Int
  - pc_MAX_Float_REG :: Int
  - pc_MAX_Double_REG :: Int
  - pc_MAX_Long_REG :: Int
  - pc_MAX_XMM_REG :: Int
  - pc_MAX_Real_Vanilla_REG :: Int
  - pc_MAX_Real_Float_REG :: Int
  - pc_MAX_Real_Double_REG :: Int
  - pc_MAX_Real_XMM_REG :: Int
  - pc_MAX_Real_Long_REG :: Int
  - pc_RESERVED_C_STACK_BYTES :: Int
  - pc_RESERVED_STACK_WORDS :: Int
  - pc_AP_STACK_SPLIM :: Int
  - pc_WORD_SIZE :: Int
  - pc_DOUBLE_SIZE :: Int
  - pc_CINT_SIZE :: Int
  - pc_CLONG_SIZE :: Int
  - pc_CLONG_LONG_SIZE :: Int
  - pc_BITMAP_BITS_SHIFT :: Int
  - pc_TAG_BITS :: Int
  - pc_WORDS_BIGENDIAN :: Bool
  - pc_DYNAMIC_BY_DEFAULT :: Bool
  - pc_LDV_SHIFT :: Int
  - pc_ILDV_CREATE_MASK :: Integer
  - pc_ILDV_STATE_CREATE :: Integer
  - pc_ILDV_STATE_USE :: Integer
  }
- type FatalMessager = String -> IO ()
- type LogAction = DynFlags -> Severity -> SrcSpan -> PprStyle -> MsgDoc -> IO ()
- newtype FlushOut = FlushOut (IO ())
- newtype FlushErr = FlushErr (IO ())
- data ProfAuto
  - = NoProfAuto
  - | ProfAutoAll
  - | ProfAutoTop
  - | ProfAutoExports
  - | ProfAutoCalls
- glasgowExtsFlags :: [ExtensionFlag]
- dopt :: DumpFlag -> DynFlags -> Bool
- dopt_set :: DynFlags -> DumpFlag -> DynFlags
- dopt_unset :: DynFlags -> DumpFlag -> DynFlags
- gopt :: GeneralFlag -> DynFlags -> Bool
- gopt_set :: DynFlags -> GeneralFlag -> DynFlags
- gopt_unset :: DynFlags -> GeneralFlag -> DynFlags
- wopt :: WarningFlag -> DynFlags -> Bool
- wopt_set :: DynFlags -> WarningFlag -> DynFlags
- wopt_unset :: DynFlags -> WarningFlag -> DynFlags
- xopt :: ExtensionFlag -> DynFlags -> Bool
- xopt_set :: DynFlags -> ExtensionFlag -> DynFlags
- xopt_unset :: DynFlags -> ExtensionFlag -> DynFlags
- lang_set :: DynFlags -> Maybe Language -> DynFlags
- useUnicodeSyntax :: DynFlags -> Bool
- whenGeneratingDynamicToo :: MonadIO m => DynFlags -> m () -> m ()
- ifGeneratingDynamicToo :: MonadIO m => DynFlags -> m a -> m a -> m a
- whenCannotGenerateDynamicToo :: MonadIO m => DynFlags -> m () -> m ()
- dynamicTooMkDynamicDynFlags :: DynFlags -> DynFlags
- data DynFlags = DynFlags {
  - ghcMode :: GhcMode
  - ghcLink :: GhcLink
  - hscTarget :: HscTarget
  - settings :: Settings
  - sigOf :: SigOf
  - verbosity :: Int
  - optLevel :: Int
  - simplPhases :: Int
  - maxSimplIterations :: Int
  - ruleCheck :: Maybe String
  - strictnessBefore :: [Int]
  - parMakeCount :: Maybe Int
  - enableTimeStats :: Bool
  - ghcHeapSize :: Maybe Int
  - maxRelevantBinds :: Maybe Int
  - simplTickFactor :: Int
  - specConstrThreshold :: Maybe Int
  - specConstrCount :: Maybe Int
  - specConstrRecursive :: Int
  - liberateCaseThreshold :: Maybe Int
  - floatLamArgs :: Maybe Int
  - historySize :: Int
  - cmdlineHcIncludes :: [String]
  - importPaths :: [FilePath]
  - mainModIs :: Module
  - mainFunIs :: Maybe String
  - ctxtStkDepth :: Int
  - tyFunStkDepth :: Int
  - thisPackage :: PackageKey
  - ways :: [Way]
  - buildTag :: String
  - rtsBuildTag :: String
  - splitInfo :: Maybe (String, Int)
  - objectDir :: Maybe String
  - dylibInstallName :: Maybe String
  - hiDir :: Maybe String
  - stubDir :: Maybe String
  - dumpDir :: Maybe String
  - objectSuf :: String
  - hcSuf :: String
  - hiSuf :: String
  - canGenerateDynamicToo :: IORef Bool
  - dynObjectSuf :: String
  - dynHiSuf :: String
  - dllSplitFile :: Maybe FilePath
  - dllSplit :: Maybe [Set String]
  - outputFile :: Maybe String
  - dynOutputFile :: Maybe String
  - outputHi :: Maybe String
  - dynLibLoader :: DynLibLoader
  - dumpPrefix :: Maybe FilePath
  - dumpPrefixForce :: Maybe FilePath
  - ldInputs :: [Option]
  - includePaths :: [String]
  - libraryPaths :: [String]
  - frameworkPaths :: [String]
  - cmdlineFrameworks :: [String]
  - rtsOpts :: Maybe String
  - rtsOptsEnabled :: RtsOptsEnabled
  - hpcDir :: String
  - pluginModNames :: [ModuleName]
  - pluginModNameOpts :: [(ModuleName, String)]
  - hooks :: Hooks
  - depMakefile :: FilePath
  - depIncludePkgDeps :: Bool
  - depExcludeMods :: [ModuleName]
  - depSuffixes :: [String]
  - extraPkgConfs :: [PkgConfRef] -> [PkgConfRef]
  - packageFlags :: [PackageFlag]
  - packageEnv :: Maybe FilePath
  - pkgDatabase :: Maybe [PackageConfig]
  - pkgState :: PackageState
  - filesToClean :: IORef [FilePath]
  - dirsToClean :: IORef (Map FilePath FilePath)
  - filesToNotIntermediateClean :: IORef [FilePath]
  - nextTempSuffix :: IORef Int
  - generatedDumps :: IORef (Set FilePath)
  - dumpFlags :: IntSet
  - generalFlags :: IntSet
  - warningFlags :: IntSet
  - language :: Maybe Language
  - safeHaskell :: SafeHaskellMode
  - safeInfer :: Bool
  - safeInferred :: Bool
  - thOnLoc :: SrcSpan
  - newDerivOnLoc :: SrcSpan
  - overlapInstLoc :: SrcSpan
  - incoherentOnLoc :: SrcSpan
  - pkgTrustOnLoc :: SrcSpan
  - warnSafeOnLoc :: SrcSpan
  - warnUnsafeOnLoc :: SrcSpan
  - trustworthyOnLoc :: SrcSpan
  - extensions :: [OnOff ExtensionFlag]
  - extensionFlags :: IntSet
  - ufCreationThreshold :: Int
  - ufUseThreshold :: Int
  - ufFunAppDiscount :: Int
  - ufDictDiscount :: Int
  - ufKeenessFactor :: Float
  - ufDearOp :: Int
  - maxWorkerArgs :: Int
  - ghciHistSize :: Int
  - log_action :: LogAction
  - flushOut :: FlushOut
  - flushErr :: FlushErr
  - haddockOptions :: Maybe String
  - ghciScripts :: [String]
  - pprUserLength :: Int
  - pprCols :: Int
  - traceLevel :: Int
  - useUnicode :: Bool
  - profAuto :: ProfAuto
  - interactivePrint :: Maybe String
  - llvmVersion :: IORef Int
  - nextWrapperNum :: IORef (ModuleEnv Int)
  - sseVersion :: Maybe SseVersion
  - avx :: Bool
  - avx2 :: Bool
  - avx512cd :: Bool
  - avx512er :: Bool
  - avx512f :: Bool
  - avx512pf :: Bool
  - rtldInfo :: IORef (Maybe LinkerInfo)
  - rtccInfo :: IORef (Maybe CompilerInfo)
  - maxInlineAllocSize :: Int
  - maxInlineMemcpyInsns :: Int
  - maxInlineMemsetInsns :: Int
  }
- data FlagSpec flag = FlagSpec {
  - flagSpecName :: String
  - flagSpecFlag :: flag
  - flagSpecAction :: TurnOnFlag -> DynP ()
  - flagSpecGhcMode :: GhcFlagMode
  }
- class HasDynFlags m where
  - getDynFlags :: m DynFlags
- class ContainsDynFlags t where
  - extractDynFlags :: t -> DynFlags
  - replaceDynFlags :: t -> DynFlags -> t
- data RtsOptsEnabled
  - = RtsOptsNone
  - | RtsOptsSafeOnly
  - | RtsOptsAll
- data HscTarget
  - = HscC
  - | HscAsm
  - | HscLlvm
  - | HscInterpreted
  - | HscNothing
- isObjectTarget :: HscTarget -> Bool
- defaultObjectTarget :: Platform -> HscTarget
- targetRetainsAllBindings :: HscTarget -> Bool
- data GhcMode
  - = CompManager
  - | OneShot
  - | MkDepend
- isOneShot :: GhcMode -> Bool
- data GhcLink
  - = NoLink
  - | LinkBinary
  - | LinkInMemory
  - | LinkDynLib
  - | LinkStaticLib
- isNoLink :: GhcLink -> Bool
- data PackageFlag
  - = ExposePackage PackageArg ModRenaming
  - | HidePackage String
  - | IgnorePackage String
  - | TrustPackage String
  - | DistrustPackage String
- data PackageArg
  - = PackageArg String
  - | PackageIdArg String
  - | PackageKeyArg String
- data ModRenaming = ModRenaming Bool [(String, String)]
- data PkgConfRef
  - = GlobalPkgConf
  - | UserPkgConf
  - | PkgConfFile FilePath
- data Option
  - = FileOption String String
  - | Option String
- showOpt :: Option -> String
- data DynLibLoader
  - = Deployable
  - | SystemDependent
- fFlags :: [FlagSpec GeneralFlag]
- fWarningFlags :: [FlagSpec WarningFlag]
- fLangFlags :: [FlagSpec ExtensionFlag]
- xFlags :: [FlagSpec ExtensionFlag]
- dynFlagDependencies :: DynFlags -> [ModuleName]
- tablesNextToCode :: DynFlags -> Bool
- mkTablesNextToCode :: Bool -> Bool
- data SigOf
  - = NotSigOf
  - | SigOf Module
  - | SigOfMap (Map ModuleName Module)
- getSigOf :: DynFlags -> ModuleName -> Maybe Module
- checkOptLevel :: Int -> DynFlags -> Either String DynFlags
- data Way
  - = WayCustom String
  - | WayThreaded
  - | WayDebug
  - | WayProf
  - | WayEventLog
  - | WayPar
  - | WayGran
  - | WayNDP
  - | WayDyn
- mkBuildTag :: [Way] -> String
- wayRTSOnly :: Way -> Bool
- addWay' :: Way -> DynFlags -> DynFlags
- updateWays :: DynFlags -> DynFlags
- wayGeneralFlags :: Platform -> Way -> [GeneralFlag]
- wayUnsetGeneralFlags :: Platform -> Way -> [GeneralFlag]
- data SafeHaskellMode
  - = Sf_None
  - | Sf_Unsafe
  - | Sf_Trustworthy
  - | Sf_Safe
- safeHaskellOn :: DynFlags -> Bool
- safeImportsOn :: DynFlags -> Bool
- safeLanguageOn :: DynFlags -> Bool
- safeInferOn :: DynFlags -> Bool
- packageTrustOn :: DynFlags -> Bool
- safeDirectImpsReq :: DynFlags -> Bool
- safeImplicitImpsReq :: DynFlags -> Bool
- unsafeFlags :: [(String, DynFlags -> SrcSpan, DynFlags -> Bool, DynFlags -> DynFlags)]
- unsafeFlagsForInfer :: [(String, DynFlags -> SrcSpan, DynFlags -> Bool, DynFlags -> DynFlags)]
- data Settings = Settings {
  - sTargetPlatform :: Platform
  - sGhcUsagePath :: FilePath
  - sGhciUsagePath :: FilePath
  - sTopDir :: FilePath
  - sTmpDir :: String
  - sProgramName :: String
  - sProjectVersion :: String
  - sRawSettings :: [(String, String)]
  - sExtraGccViaCFlags :: [String]
  - sSystemPackageConfig :: FilePath
  - sLdSupportsCompactUnwind :: Bool
  - sLdSupportsBuildId :: Bool
  - sLdSupportsFilelist :: Bool
  - sLdIsGnuLd :: Bool
  - sPgm_L :: String
  - sPgm_P :: (String, [Option])
  - sPgm_F :: String
  - sPgm_c :: (String, [Option])
  - sPgm_s :: (String, [Option])
  - sPgm_a :: (String, [Option])
  - sPgm_l :: (String, [Option])
  - sPgm_dll :: (String, [Option])
  - sPgm_T :: String
  - sPgm_sysman :: String
  - sPgm_windres :: String
  - sPgm_libtool :: String
  - sPgm_lo :: (String, [Option])
  - sPgm_lc :: (String, [Option])
  - sOpt_L :: [String]
  - sOpt_P :: [String]
  - sOpt_F :: [String]
  - sOpt_c :: [String]
  - sOpt_a :: [String]
  - sOpt_l :: [String]
  - sOpt_windres :: [String]
  - sOpt_lo :: [String]
  - sOpt_lc :: [String]
  - sPlatformConstants :: PlatformConstants
  }
- targetPlatform :: DynFlags -> Platform
- programName :: DynFlags -> String
- projectVersion :: DynFlags -> String
- ghcUsagePath :: DynFlags -> FilePath
- ghciUsagePath :: DynFlags -> FilePath
- topDir :: DynFlags -> FilePath
- tmpDir :: DynFlags -> String
- rawSettings :: DynFlags -> [(String, String)]
- versionedAppDir :: DynFlags -> IO FilePath
- extraGccViaCFlags :: DynFlags -> [String]
- systemPackageConfig :: DynFlags -> FilePath
- pgm_L :: DynFlags -> String
- pgm_P :: DynFlags -> (String, [Option])
- pgm_F :: DynFlags -> String
- pgm_c :: DynFlags -> (String, [Option])
- pgm_s :: DynFlags -> (String, [Option])
- pgm_a :: DynFlags -> (String, [Option])
- pgm_l :: DynFlags -> (String, [Option])
- pgm_dll :: DynFlags -> (String, [Option])
- pgm_T :: DynFlags -> String
- pgm_sysman :: DynFlags -> String
- pgm_windres :: DynFlags -> String
- pgm_libtool :: DynFlags -> String
- pgm_lo :: DynFlags -> (String, [Option])
- pgm_lc :: DynFlags -> (String, [Option])
- opt_L :: DynFlags -> [String]
- opt_P :: DynFlags -> [String]
- opt_F :: DynFlags -> [String]
- opt_c :: DynFlags -> [String]
- opt_a :: DynFlags -> [String]
- opt_l :: DynFlags -> [String]
- opt_windres :: DynFlags -> [String]
- opt_lo :: DynFlags -> [String]
- opt_lc :: DynFlags -> [String]
- defaultDynFlags :: Settings -> DynFlags
- defaultWays :: Settings -> [Way]
- interpWays :: [Way]
- initDynFlags :: DynFlags -> IO DynFlags
- defaultFatalMessager :: FatalMessager
- defaultLogAction :: LogAction
- defaultLogActionHPrintDoc :: DynFlags -> Handle -> SDoc -> PprStyle -> IO ()
- defaultLogActionHPutStrDoc :: DynFlags -> Handle -> SDoc -> PprStyle -> IO ()
- defaultFlushOut :: FlushOut
- defaultFlushErr :: FlushErr
- getOpts :: DynFlags -> (DynFlags -> [a]) -> [a]
- getVerbFlags :: DynFlags -> [String]
- updOptLevel :: Int -> DynFlags -> DynFlags
- setTmpDir :: FilePath -> DynFlags -> DynFlags
- setPackageKey :: String -> DynFlags -> DynFlags
- interpretPackageEnv :: DynFlags -> IO DynFlags
- parseDynamicFlagsCmdLine :: MonadIO m => DynFlags -> [Located String] -> m (DynFlags, [Located String], [Located String])
- parseDynamicFilePragma :: MonadIO m => DynFlags -> [Located String] -> m (DynFlags, [Located String], [Located String])
- parseDynamicFlagsFull :: MonadIO m => [Flag (CmdLineP DynFlags)] -> Bool -> DynFlags -> [Located String] -> m (DynFlags, [Located String], [Located String])
- allFlags :: [String]
- flagsAll :: [Flag (CmdLineP DynFlags)]
- flagsDynamic :: [Flag (CmdLineP DynFlags)]
- flagsPackage :: [Flag (CmdLineP DynFlags)]
- flagsForCompletion :: Bool -> [String]
- supportedLanguagesAndExtensions :: [String]
- languageExtensions :: Maybe Language -> [ExtensionFlag]
- picCCOpts :: DynFlags -> [String]
- picPOpts :: DynFlags -> [String]
- data StgToDo
  - = StgDoMassageForProfiling
  - | D_stg_stats
- getStgToDo :: DynFlags -> [StgToDo]
- compilerInfo :: DynFlags -> [(String, String)]
- rtsIsProfiled :: Bool
- dynamicGhc :: Bool
- sTD_HDR_SIZE :: DynFlags -> Int
- pROF_HDR_SIZE :: DynFlags -> Int
- bLOCK_SIZE :: DynFlags -> Int
- bLOCKS_PER_MBLOCK :: DynFlags -> Int
- oFFSET_StgRegTable_rR1 :: DynFlags -> Int
- oFFSET_StgRegTable_rR2 :: DynFlags -> Int
- oFFSET_StgRegTable_rR3 :: DynFlags -> Int
- oFFSET_StgRegTable_rR4 :: DynFlags -> Int
- oFFSET_StgRegTable_rR5 :: DynFlags -> Int
- oFFSET_StgRegTable_rR6 :: DynFlags -> Int
- oFFSET_StgRegTable_rR7 :: DynFlags -> Int
- oFFSET_StgRegTable_rR8 :: DynFlags -> Int
- oFFSET_StgRegTable_rR9 :: DynFlags -> Int
- oFFSET_StgRegTable_rR10 :: DynFlags -> Int
- oFFSET_StgRegTable_rF1 :: DynFlags -> Int
- oFFSET_StgRegTable_rF2 :: DynFlags -> Int
- oFFSET_StgRegTable_rF3 :: DynFlags -> Int
- oFFSET_StgRegTable_rF4 :: DynFlags -> Int
- oFFSET_StgRegTable_rF5 :: DynFlags -> Int
- oFFSET_StgRegTable_rF6 :: DynFlags -> Int
- oFFSET_StgRegTable_rD1 :: DynFlags -> Int
- oFFSET_StgRegTable_rD2 :: DynFlags -> Int
- oFFSET_StgRegTable_rD3 :: DynFlags -> Int
- oFFSET_StgRegTable_rD4 :: DynFlags -> Int
- oFFSET_StgRegTable_rD5 :: DynFlags -> Int
- oFFSET_StgRegTable_rD6 :: DynFlags -> Int
- oFFSET_StgRegTable_rXMM1 :: DynFlags -> Int
- oFFSET_StgRegTable_rXMM2 :: DynFlags -> Int
- oFFSET_StgRegTable_rXMM3 :: DynFlags -> Int
- oFFSET_StgRegTable_rXMM4 :: DynFlags -> Int
- oFFSET_StgRegTable_rXMM5 :: DynFlags -> Int
- oFFSET_StgRegTable_rXMM6 :: DynFlags -> Int
- oFFSET_StgRegTable_rYMM1 :: DynFlags -> Int
- oFFSET_StgRegTable_rYMM2 :: DynFlags -> Int
- oFFSET_StgRegTable_rYMM3 :: DynFlags -> Int
- oFFSET_StgRegTable_rYMM4 :: DynFlags -> Int
- oFFSET_StgRegTable_rYMM5 :: DynFlags -> Int
- oFFSET_StgRegTable_rYMM6 :: DynFlags -> Int
- oFFSET_StgRegTable_rZMM1 :: DynFlags -> Int
- oFFSET_StgRegTable_rZMM2 :: DynFlags -> Int
- oFFSET_StgRegTable_rZMM3 :: DynFlags -> Int
- oFFSET_StgRegTable_rZMM4 :: DynFlags -> Int
- oFFSET_StgRegTable_rZMM5 :: DynFlags -> Int
- oFFSET_StgRegTable_rZMM6 :: DynFlags -> Int
- oFFSET_StgRegTable_rL1 :: DynFlags -> Int
- oFFSET_StgRegTable_rSp :: DynFlags -> Int
- oFFSET_StgRegTable_rSpLim :: DynFlags -> Int
- oFFSET_StgRegTable_rHp :: DynFlags -> Int
- oFFSET_StgRegTable_rHpLim :: DynFlags -> Int
- oFFSET_StgRegTable_rCCCS :: DynFlags -> Int
- oFFSET_StgRegTable_rCurrentTSO :: DynFlags -> Int
- oFFSET_StgRegTable_rCurrentNursery :: DynFlags -> Int
- oFFSET_StgRegTable_rHpAlloc :: DynFlags -> Int
- oFFSET_stgEagerBlackholeInfo :: DynFlags -> Int
- oFFSET_stgGCEnter1 :: DynFlags -> Int
- oFFSET_stgGCFun :: DynFlags -> Int
- oFFSET_Capability_r :: DynFlags -> Int
- oFFSET_bdescr_start :: DynFlags -> Int
- oFFSET_bdescr_free :: DynFlags -> Int
- oFFSET_bdescr_blocks :: DynFlags -> Int
- sIZEOF_CostCentreStack :: DynFlags -> Int
- oFFSET_CostCentreStack_mem_alloc :: DynFlags -> Int
- oFFSET_CostCentreStack_scc_count :: DynFlags -> Int
- oFFSET_StgHeader_ccs :: DynFlags -> Int
- oFFSET_StgHeader_ldvw :: DynFlags -> Int
- sIZEOF_StgSMPThunkHeader :: DynFlags -> Int
- oFFSET_StgEntCounter_allocs :: DynFlags -> Int
- oFFSET_StgEntCounter_allocd :: DynFlags -> Int
- oFFSET_StgEntCounter_registeredp :: DynFlags -> Int
- oFFSET_StgEntCounter_link :: DynFlags -> Int
- oFFSET_StgEntCounter_entry_count :: DynFlags -> Int
- sIZEOF_StgUpdateFrame_NoHdr :: DynFlags -> Int
- sIZEOF_StgMutArrPtrs_NoHdr :: DynFlags -> Int
- oFFSET_StgMutArrPtrs_ptrs :: DynFlags -> Int
- oFFSET_StgMutArrPtrs_size :: DynFlags -> Int
- sIZEOF_StgSmallMutArrPtrs_NoHdr :: DynFlags -> Int
- oFFSET_StgSmallMutArrPtrs_ptrs :: DynFlags -> Int
- sIZEOF_StgArrWords_NoHdr :: DynFlags -> Int
- oFFSET_StgArrWords_bytes :: DynFlags -> Int
- oFFSET_StgTSO_alloc_limit :: DynFlags -> Int
- oFFSET_StgTSO_cccs :: DynFlags -> Int
- oFFSET_StgTSO_stackobj :: DynFlags -> Int
- oFFSET_StgStack_sp :: DynFlags -> Int
- oFFSET_StgStack_stack :: DynFlags -> Int
- oFFSET_StgUpdateFrame_updatee :: DynFlags -> Int
- oFFSET_StgFunInfoExtraFwd_arity :: DynFlags -> Int
- sIZEOF_StgFunInfoExtraRev :: DynFlags -> Int
- oFFSET_StgFunInfoExtraRev_arity :: DynFlags -> Int
- mAX_SPEC_SELECTEE_SIZE :: DynFlags -> Int
- mAX_SPEC_AP_SIZE :: DynFlags -> Int
- mIN_PAYLOAD_SIZE :: DynFlags -> Int
- mIN_INTLIKE :: DynFlags -> Int
- mAX_INTLIKE :: DynFlags -> Int
- mIN_CHARLIKE :: DynFlags -> Int
- mAX_CHARLIKE :: DynFlags -> Int
- mUT_ARR_PTRS_CARD_BITS :: DynFlags -> Int
- mAX_Vanilla_REG :: DynFlags -> Int
- mAX_Float_REG :: DynFlags -> Int
- mAX_Double_REG :: DynFlags -> Int
- mAX_Long_REG :: DynFlags -> Int
- mAX_XMM_REG :: DynFlags -> Int
- mAX_Real_Vanilla_REG :: DynFlags -> Int
- mAX_Real_Float_REG :: DynFlags -> Int
- mAX_Real_Double_REG :: DynFlags -> Int
- mAX_Real_XMM_REG :: DynFlags -> Int
- mAX_Real_Long_REG :: DynFlags -> Int
- rESERVED_C_STACK_BYTES :: DynFlags -> Int
- rESERVED_STACK_WORDS :: DynFlags -> Int
- aP_STACK_SPLIM :: DynFlags -> Int
- wORD_SIZE :: DynFlags -> Int
- dOUBLE_SIZE :: DynFlags -> Int
- cINT_SIZE :: DynFlags -> Int
- cLONG_SIZE :: DynFlags -> Int
- cLONG_LONG_SIZE :: DynFlags -> Int
- bITMAP_BITS_SHIFT :: DynFlags -> Int
- tAG_BITS :: DynFlags -> Int
- wORDS_BIGENDIAN :: DynFlags -> Bool
- dYNAMIC_BY_DEFAULT :: DynFlags -> Bool
- lDV_SHIFT :: DynFlags -> Int
- iLDV_CREATE_MASK :: DynFlags -> Integer
- iLDV_STATE_CREATE :: DynFlags -> Integer
- iLDV_STATE_USE :: DynFlags -> Integer
- bLOCK_SIZE_W :: DynFlags -> Int
- wORD_SIZE_IN_BITS :: DynFlags -> Int
- tAG_MASK :: DynFlags -> Int
- mAX_PTR_TAG :: DynFlags -> Int
- tARGET_MIN_INT :: DynFlags -> Integer
- tARGET_MAX_INT :: DynFlags -> Integer
- tARGET_MAX_WORD :: DynFlags -> Integer
- unsafeGlobalDynFlags :: DynFlags
- setUnsafeGlobalDynFlags :: DynFlags -> IO ()
- isSseEnabled :: DynFlags -> Bool
- isSse2Enabled :: DynFlags -> Bool
- isSse4_2Enabled :: DynFlags -> Bool
- isAvxEnabled :: DynFlags -> Bool
- isAvx2Enabled :: DynFlags -> Bool
- isAvx512cdEnabled :: DynFlags -> Bool
- isAvx512erEnabled :: DynFlags -> Bool
- isAvx512fEnabled :: DynFlags -> Bool
- isAvx512pfEnabled :: DynFlags -> Bool
- data LinkerInfo
  - = GnuLD [Option]
  - | GnuGold [Option]
  - | DarwinLD [Option]
  - | SolarisLD [Option]
  - | UnknownLD
- data CompilerInfo
  - = GCC
  - | Clang
  - | AppleClang
  - | AppleClang51
  - | UnknownCC

# Dynamic flags and associated configuration types

data DumpFlag Source

Constructors

Opt_D_dump_cmm |
Opt_D_dump_cmm_raw |
Opt_D_dump_cmm_cfg |
Opt_D_dump_cmm_cbe |
Opt_D_dump_cmm_proc |
Opt_D_dump_cmm_sink |
Opt_D_dump_cmm_sp |
Opt_D_dump_cmm_procmap |
Opt_D_dump_cmm_split |
Opt_D_dump_cmm_info |
Opt_D_dump_cmm_cps |
Opt_D_dump_asm |
Opt_D_dump_asm_native |
Opt_D_dump_asm_liveness |
Opt_D_dump_asm_regalloc |
Opt_D_dump_asm_regalloc_stages |
Opt_D_dump_asm_conflicts |
Opt_D_dump_asm_stats |
Opt_D_dump_asm_expanded |
Opt_D_dump_llvm |
Opt_D_dump_core_stats |
Opt_D_dump_deriv |
Opt_D_dump_ds |
Opt_D_dump_foreign |
Opt_D_dump_inlinings |
Opt_D_dump_rule_firings |
Opt_D_dump_rule_rewrites |
Opt_D_dump_simpl_trace |
Opt_D_dump_occur_anal |
Opt_D_dump_parsed |
Opt_D_dump_rn |
Opt_D_dump_simpl |
Opt_D_dump_simpl_iterations |
Opt_D_dump_spec |
Opt_D_dump_prep |
Opt_D_dump_stg |
Opt_D_dump_call_arity |
Opt_D_dump_stranal |
Opt_D_dump_strsigs |
Opt_D_dump_tc |
Opt_D_dump_types |
Opt_D_dump_rules |
Opt_D_dump_cse |
Opt_D_dump_worker_wrapper |
Opt_D_dump_rn_trace |
Opt_D_dump_rn_stats |
Opt_D_dump_opt_cmm |
Opt_D_dump_simpl_stats |
Opt_D_dump_cs_trace |
Opt_D_dump_tc_trace |
Opt_D_dump_if_trace |
Opt_D_dump_vt_trace |
Opt_D_dump_splices |
Opt_D_th_dec_file |
Opt_D_dump_BCOs |
Opt_D_dump_vect |
Opt_D_dump_ticked |
Opt_D_dump_rtti |
Opt_D_source_stats |
Opt_D_verbose_stg2stg |
Opt_D_dump_hi |
Opt_D_dump_hi_diffs |
Opt_D_dump_mod_cycles |
Opt_D_dump_mod_map |
Opt_D_dump_view_pattern_commoning |
Opt_D_verbose_core2core |
Opt_D_dump_debug |

Instances

Enum DumpFlag |
Eq DumpFlag |
Show DumpFlag |

data GeneralFlag Source

Enumerates the simple on-or-off dynamic flags

Constructors

Opt_DumpToFile | Append dump output to files instead of stdout.
Opt_D_faststring_stats |
Opt_D_dump_minimal_imports |
Opt_DoCoreLinting |
Opt_DoStgLinting |
Opt_DoCmmLinting |
Opt_DoAsmLinting |
Opt_DoAnnotationLinting |
Opt_NoLlvmMangler |
Opt_WarnIsError |
Opt_PrintExplicitForalls |
Opt_PrintExplicitKinds |
Opt_CallArity |
Opt_Strictness |
Opt_LateDmdAnal |
Opt_KillAbsence |
Opt_KillOneShot |
Opt_FullLaziness |
Opt_FloatIn |
Opt_Specialise |
Opt_SpecialiseAggressively |
Opt_StaticArgumentTransformation |
Opt_CSE |
Opt_LiberateCase |
Opt_SpecConstr |
Opt_DoLambdaEtaExpansion |
Opt_IgnoreAsserts |
Opt_DoEtaReduction |
Opt_CaseMerge |
Opt_UnboxStrictFields |
Opt_UnboxSmallStrictFields |
Opt_DictsCheap |
Opt_EnableRewriteRules |
Opt_Vectorise |
Opt_VectorisationAvoidance |
Opt_RegsGraph |
Opt_RegsIterative |
Opt_PedanticBottoms |
Opt_LlvmTBAA |
Opt_LlvmPassVectorsInRegisters |
Opt_IrrefutableTuples |
Opt_CmmSink |
Opt_CmmElimCommonBlocks |
Opt_OmitYields |
Opt_SimpleListLiterals |
Opt_FunToThunk |
Opt_DictsStrict |
Opt_DmdTxDictSel |
Opt_Loopification |
Opt_IgnoreInterfacePragmas |
Opt_OmitInterfacePragmas |
Opt_ExposeAllUnfoldings |
Opt_WriteInterface |
Opt_AutoSccsOnIndividualCafs |
Opt_ProfCountEntries |
Opt_Pp |
Opt_ForceRecomp |
Opt_ExcessPrecision |
Opt_EagerBlackHoling |
Opt_NoHsMain |
Opt_SplitObjs |
Opt_StgStats |
Opt_HideAllPackages |
Opt_PrintBindResult |
Opt_Haddock |
Opt_HaddockOptions |
Opt_Hpc_No_Auto |
Opt_BreakOnException |
Opt_BreakOnError |
Opt_PrintEvldWithShow |
Opt_PrintBindContents |
Opt_GenManifest |
Opt_EmbedManifest |
Opt_EmitExternalCore |
Opt_SharedImplib |
Opt_BuildingCabalPackage |
Opt_IgnoreDotGhci |
Opt_GhciSandbox |
Opt_GhciHistory |
Opt_HelpfulErrors |
Opt_DeferTypeErrors |
Opt_DeferTypedHoles |
Opt_Parallel |
Opt_GranMacros |
Opt_PIC |
Opt_SccProfilingOn |
Opt_Ticky |
Opt_Ticky_Allocd |
Opt_Ticky_LNE |
Opt_Ticky_Dyn_Thunk |
Opt_Static |
Opt_RPath |
Opt_RelativeDynlibPaths |
Opt_Hpc |
Opt_FlatCache |
Opt_SimplPreInlining |
Opt_ErrorSpans |
Opt_PprCaseAsLet |
Opt_PprShowTicks |
Opt_SuppressCoercions |
Opt_SuppressVarKinds |
Opt_SuppressModulePrefixes |
Opt_SuppressTypeApplications |
Opt_SuppressIdInfo |
Opt_SuppressTypeSignatures |
Opt_SuppressUniques |
Opt_AutoLinkPackages |
Opt_ImplicitImportQualified |
Opt_KeepHiDiffs |
Opt_KeepHcFiles |
Opt_KeepSFiles |
Opt_KeepTmpFiles |
Opt_KeepRawTokenStream |
Opt_KeepLlvmFiles |
Opt_BuildDynamicToo |
Opt_DistrustAllPackages |
Opt_PackageTrust |
Opt_Debug |

Instances

Enum GeneralFlag |
Eq GeneralFlag |
Show GeneralFlag |

data WarningFlag Source

Constructors

Opt_WarnDuplicateExports |
Opt_WarnDuplicateConstraints |
Opt_WarnHiShadows |
Opt_WarnImplicitPrelude |
Opt_WarnIncompletePatterns |
Opt_WarnIncompleteUniPatterns |
Opt_WarnIncompletePatternsRecUpd |
Opt_WarnOverflowedLiterals |
Opt_WarnEmptyEnumerations |
Opt_WarnMissingFields |
Opt_WarnMissingImportList |
Opt_WarnMissingMethods |
Opt_WarnMissingSigs |
Opt_WarnMissingLocalSigs |
Opt_WarnNameShadowing |
Opt_WarnOverlappingPatterns |
Opt_WarnTypeDefaults |
Opt_WarnMonomorphism |
Opt_WarnUnusedBinds |
Opt_WarnUnusedImports |
Opt_WarnUnusedMatches |
Opt_WarnContextQuantification |
Opt_WarnWarningsDeprecations |
Opt_WarnDeprecatedFlags |
Opt_WarnAMP |
Opt_WarnDodgyExports |
Opt_WarnDodgyImports |
Opt_WarnOrphans |
Opt_WarnAutoOrphans |
Opt_WarnIdentities |
Opt_WarnTabs |
Opt_WarnUnrecognisedPragmas |
Opt_WarnDodgyForeignImports |
Opt_WarnUnusedDoBind |
Opt_WarnWrongDoBind |
Opt_WarnAlternativeLayoutRuleTransitional |
Opt_WarnUnsafe |
Opt_WarnSafe |
Opt_WarnTrustworthySafe |
Opt_WarnPointlessPragmas |
Opt_WarnUnsupportedCallingConventions |
Opt_WarnUnsupportedLlvmVersion |
Opt_WarnInlineRuleShadowing |
Opt_WarnTypedHoles |
Opt_WarnPartialTypeSignatures |
Opt_WarnMissingExportedSigs |
Opt_WarnUntickedPromotedConstructors |
Opt_WarnDerivingTypeable |

Instances

Enum WarningFlag |
Eq WarningFlag |
Show WarningFlag |

data ExtensionFlag Source

Constructors

Opt_Cpp |
Opt_OverlappingInstances |
Opt_UndecidableInstances |
Opt_IncoherentInstances |
Opt_MonomorphismRestriction |
Opt_MonoPatBinds |
Opt_MonoLocalBinds |
Opt_RelaxedPolyRec |
Opt_ExtendedDefaultRules |
Opt_ForeignFunctionInterface |
Opt_UnliftedFFITypes |
Opt_InterruptibleFFI |
Opt_CApiFFI |
Opt_GHCForeignImportPrim |
Opt_JavaScriptFFI |
Opt_ParallelArrays |
Opt_Arrows |
Opt_TemplateHaskell |
Opt_QuasiQuotes |
Opt_ImplicitParams |
Opt_ImplicitPrelude |
Opt_ScopedTypeVariables |
Opt_AllowAmbiguousTypes |
Opt_UnboxedTuples |
Opt_BangPatterns |
Opt_TypeFamilies |
Opt_OverloadedStrings |
Opt_OverloadedLists |
Opt_NumDecimals |
Opt_DisambiguateRecordFields |
Opt_RecordWildCards |
Opt_RecordPuns |
Opt_ViewPatterns |
Opt_GADTs |
Opt_GADTSyntax |
Opt_NPlusKPatterns |
Opt_DoAndIfThenElse |
Opt_RebindableSyntax |
Opt_ConstraintKinds |
Opt_PolyKinds |
Opt_DataKinds |
Opt_InstanceSigs |
Opt_StandaloneDeriving |
Opt_DeriveDataTypeable |
Opt_AutoDeriveTypeable |
Opt_DeriveFunctor |
Opt_DeriveTraversable |
Opt_DeriveFoldable |
Opt_DeriveGeneric |
Opt_DefaultSignatures |
Opt_DeriveAnyClass |
Opt_TypeSynonymInstances |
Opt_FlexibleContexts |
Opt_FlexibleInstances |
Opt_ConstrainedClassMethods |
Opt_MultiParamTypeClasses |
Opt_NullaryTypeClasses |
Opt_FunctionalDependencies |
Opt_UnicodeSyntax |
Opt_ExistentialQuantification |
Opt_MagicHash |
Opt_EmptyDataDecls |
Opt_KindSignatures |
Opt_RoleAnnotations |
Opt_ParallelListComp |
Opt_TransformListComp |
Opt_MonadComprehensions |
Opt_GeneralizedNewtypeDeriving |
Opt_RecursiveDo |
Opt_PostfixOperators |
Opt_TupleSections |
Opt_PatternGuards |
Opt_LiberalTypeSynonyms |
Opt_RankNTypes |
Opt_ImpredicativeTypes |
Opt_TypeOperators |
Opt_ExplicitNamespaces |
Opt_PackageImports |
Opt_ExplicitForAll |
Opt_AlternativeLayoutRule |
Opt_AlternativeLayoutRuleTransitional |
Opt_DatatypeContexts |
Opt_NondecreasingIndentation |
Opt_RelaxedLayout |
Opt_TraditionalRecordSyntax |
Opt_LambdaCase |
Opt_MultiWayIf |
Opt_BinaryLiterals |
Opt_NegativeLiterals |
Opt_EmptyCase |
Opt_PatternSynonyms |
Opt_PartialTypeSignatures |
Opt_NamedWildCards |
Opt_StaticPointers |

Instances

Enum ExtensionFlag |
Eq ExtensionFlag |
Show ExtensionFlag |

data Language Source

Constructors

Haskell98 |
Haskell2010 |

Instances

Enum Language |

data PlatformConstants Source

Constructors

PlatformConstants |
Fields pc_platformConstants :: () pc_STD_HDR_SIZE :: Int pc_PROF_HDR_SIZE :: Int pc_BLOCK_SIZE :: Int pc_BLOCKS_PER_MBLOCK :: Int pc_OFFSET_StgRegTable_rR1 :: Int pc_OFFSET_StgRegTable_rR2 :: Int pc_OFFSET_StgRegTable_rR3 :: Int pc_OFFSET_StgRegTable_rR4 :: Int pc_OFFSET_StgRegTable_rR5 :: Int pc_OFFSET_StgRegTable_rR6 :: Int pc_OFFSET_StgRegTable_rR7 :: Int pc_OFFSET_StgRegTable_rR8 :: Int pc_OFFSET_StgRegTable_rR9 :: Int pc_OFFSET_StgRegTable_rR10 :: Int pc_OFFSET_StgRegTable_rF1 :: Int pc_OFFSET_StgRegTable_rF2 :: Int pc_OFFSET_StgRegTable_rF3 :: Int pc_OFFSET_StgRegTable_rF4 :: Int pc_OFFSET_StgRegTable_rF5 :: Int pc_OFFSET_StgRegTable_rF6 :: Int pc_OFFSET_StgRegTable_rD1 :: Int pc_OFFSET_StgRegTable_rD2 :: Int pc_OFFSET_StgRegTable_rD3 :: Int pc_OFFSET_StgRegTable_rD4 :: Int pc_OFFSET_StgRegTable_rD5 :: Int pc_OFFSET_StgRegTable_rD6 :: Int pc_OFFSET_StgRegTable_rXMM1 :: Int pc_OFFSET_StgRegTable_rXMM2 :: Int pc_OFFSET_StgRegTable_rXMM3 :: Int pc_OFFSET_StgRegTable_rXMM4 :: Int pc_OFFSET_StgRegTable_rXMM5 :: Int pc_OFFSET_StgRegTable_rXMM6 :: Int pc_OFFSET_StgRegTable_rYMM1 :: Int pc_OFFSET_StgRegTable_rYMM2 :: Int pc_OFFSET_StgRegTable_rYMM3 :: Int pc_OFFSET_StgRegTable_rYMM4 :: Int pc_OFFSET_StgRegTable_rYMM5 :: Int pc_OFFSET_StgRegTable_rYMM6 :: Int pc_OFFSET_StgRegTable_rZMM1 :: Int pc_OFFSET_StgRegTable_rZMM2 :: Int pc_OFFSET_StgRegTable_rZMM3 :: Int pc_OFFSET_StgRegTable_rZMM4 :: Int pc_OFFSET_StgRegTable_rZMM5 :: Int pc_OFFSET_StgRegTable_rZMM6 :: Int pc_OFFSET_StgRegTable_rL1 :: Int pc_OFFSET_StgRegTable_rSp :: Int pc_OFFSET_StgRegTable_rSpLim :: Int pc_OFFSET_StgRegTable_rHp :: Int pc_OFFSET_StgRegTable_rHpLim :: Int pc_OFFSET_StgRegTable_rCCCS :: Int pc_OFFSET_StgRegTable_rCurrentTSO :: Int pc_OFFSET_StgRegTable_rCurrentNursery :: Int pc_OFFSET_StgRegTable_rHpAlloc :: Int pc_OFFSET_stgEagerBlackholeInfo :: Int pc_OFFSET_stgGCEnter1 :: Int pc_OFFSET_stgGCFun :: Int pc_OFFSET_Capability_r :: Int pc_OFFSET_bdescr_start :: Int pc_OFFSET_bdescr_free :: Int pc_OFFSET_bdescr_blocks :: Int pc_SIZEOF_CostCentreStack :: Int pc_OFFSET_CostCentreStack_mem_alloc :: Int pc_REP_CostCentreStack_mem_alloc :: Int pc_OFFSET_CostCentreStack_scc_count :: Int pc_REP_CostCentreStack_scc_count :: Int pc_OFFSET_StgHeader_ccs :: Int pc_OFFSET_StgHeader_ldvw :: Int pc_SIZEOF_StgSMPThunkHeader :: Int pc_OFFSET_StgEntCounter_allocs :: Int pc_REP_StgEntCounter_allocs :: Int pc_OFFSET_StgEntCounter_allocd :: Int pc_REP_StgEntCounter_allocd :: Int pc_OFFSET_StgEntCounter_registeredp :: Int pc_OFFSET_StgEntCounter_link :: Int pc_OFFSET_StgEntCounter_entry_count :: Int pc_SIZEOF_StgUpdateFrame_NoHdr :: Int pc_SIZEOF_StgMutArrPtrs_NoHdr :: Int pc_OFFSET_StgMutArrPtrs_ptrs :: Int pc_OFFSET_StgMutArrPtrs_size :: Int pc_SIZEOF_StgSmallMutArrPtrs_NoHdr :: Int pc_OFFSET_StgSmallMutArrPtrs_ptrs :: Int pc_SIZEOF_StgArrWords_NoHdr :: Int pc_OFFSET_StgArrWords_bytes :: Int pc_OFFSET_StgTSO_alloc_limit :: Int pc_OFFSET_StgTSO_cccs :: Int pc_OFFSET_StgTSO_stackobj :: Int pc_OFFSET_StgStack_sp :: Int pc_OFFSET_StgStack_stack :: Int pc_OFFSET_StgUpdateFrame_updatee :: Int pc_OFFSET_StgFunInfoExtraFwd_arity :: Int pc_REP_StgFunInfoExtraFwd_arity :: Int pc_SIZEOF_StgFunInfoExtraRev :: Int pc_OFFSET_StgFunInfoExtraRev_arity :: Int pc_REP_StgFunInfoExtraRev_arity :: Int pc_MAX_SPEC_SELECTEE_SIZE :: Int pc_MAX_SPEC_AP_SIZE :: Int pc_MIN_PAYLOAD_SIZE :: Int pc_MIN_INTLIKE :: Int pc_MAX_INTLIKE :: Int pc_MIN_CHARLIKE :: Int pc_MAX_CHARLIKE :: Int pc_MUT_ARR_PTRS_CARD_BITS :: Int pc_MAX_Vanilla_REG :: Int pc_MAX_Float_REG :: Int pc_MAX_Double_REG :: Int pc_MAX_Long_REG :: Int pc_MAX_XMM_REG :: Int pc_MAX_Real_Vanilla_REG :: Int pc_MAX_Real_Float_REG :: Int pc_MAX_Real_Double_REG :: Int pc_MAX_Real_XMM_REG :: Int pc_MAX_Real_Long_REG :: Int pc_RESERVED_C_STACK_BYTES :: Int pc_RESERVED_STACK_WORDS :: Int pc_AP_STACK_SPLIM :: Int pc_WORD_SIZE :: Int pc_DOUBLE_SIZE :: Int pc_CINT_SIZE :: Int pc_CLONG_SIZE :: Int pc_CLONG_LONG_SIZE :: Int pc_BITMAP_BITS_SHIFT :: Int pc_TAG_BITS :: Int pc_WORDS_BIGENDIAN :: Bool pc_DYNAMIC_BY_DEFAULT :: Bool pc_LDV_SHIFT :: Int pc_ILDV_CREATE_MASK :: Integer pc_ILDV_STATE_CREATE :: Integer pc_ILDV_STATE_USE :: Integer

Instances

Read PlatformConstants |

type FatalMessager = String -> IO () Source

type LogAction = DynFlags -> Severity -> SrcSpan -> PprStyle -> MsgDoc -> IO () Source

newtype FlushOut Source

Constructors

FlushOut (IO ()) |

newtype FlushErr Source

Constructors

FlushErr (IO ()) |

data ProfAuto Source

Constructors

NoProfAuto | no SCC annotations added
ProfAutoAll | top-level and nested functions are annotated
ProfAutoTop | top-level functions annotated only
ProfAutoExports | exported functions annotated only
ProfAutoCalls | annotate call-sites

Instances

Enum ProfAuto |
Eq ProfAuto |

glasgowExtsFlags :: [ExtensionFlag] Source

dopt :: DumpFlag -> DynFlags -> Bool Source

Test whether a `DumpFlag` is set

dopt_set :: DynFlags -> DumpFlag -> DynFlags Source

Set a `DumpFlag`

dopt_unset :: DynFlags -> DumpFlag -> DynFlags Source

Unset a `DumpFlag`

gopt :: GeneralFlag -> DynFlags -> Bool Source

Test whether a `GeneralFlag` is set

gopt_set :: DynFlags -> GeneralFlag -> DynFlags Source

Set a `GeneralFlag`

gopt_unset :: DynFlags -> GeneralFlag -> DynFlags Source

Unset a `GeneralFlag`

wopt :: WarningFlag -> DynFlags -> Bool Source

Test whether a `WarningFlag` is set

wopt_set :: DynFlags -> WarningFlag -> DynFlags Source

Set a `WarningFlag`

wopt_unset :: DynFlags -> WarningFlag -> DynFlags Source

Unset a `WarningFlag`

xopt :: ExtensionFlag -> DynFlags -> Bool Source

Test whether a `ExtensionFlag` is set

xopt_set :: DynFlags -> ExtensionFlag -> DynFlags Source

Set a `ExtensionFlag`

xopt_unset :: DynFlags -> ExtensionFlag -> DynFlags Source

Unset a `ExtensionFlag`

lang_set :: DynFlags -> Maybe Language -> DynFlags Source

useUnicodeSyntax :: DynFlags -> Bool Source

whenGeneratingDynamicToo :: MonadIO m => DynFlags -> m () -> m () Source

ifGeneratingDynamicToo :: MonadIO m => DynFlags -> m a -> m a -> m a Source

whenCannotGenerateDynamicToo :: MonadIO m => DynFlags -> m () -> m () Source

dynamicTooMkDynamicDynFlags :: DynFlags -> DynFlags Source

data DynFlags Source

Contains not only a collection of `GeneralFlag`s but also a plethora of information relating to the compilation of a single file or GHC session

Constructors

DynFlags |
  Fields ghcMode :: GhcMode ghcLink :: GhcLink hscTarget :: HscTarget settings :: Settings sigOf :: SigOf Compiling an hs-boot against impl. verbosity :: Int Verbosity level: see Note [Verbosity levels] optLevel :: Int Optimisation level simplPhases :: Int Number of simplifier phases maxSimplIterations :: Int Max simplifier iterations ruleCheck :: Maybe String strictnessBefore :: [Int] Additional demand analysis parMakeCount :: Maybe Int The number of modules to compile in parallel in --make mode, where Nothing ==> compile as many in parallel as there are CPUs. enableTimeStats :: Bool Enable RTS timing statistics? ghcHeapSize :: Maybe Int The heap size to set. maxRelevantBinds :: Maybe Int Maximum number of bindings from the type envt to show in type error messages simplTickFactor :: Int Multiplier for simplifier ticks specConstrThreshold :: Maybe Int Threshold for SpecConstr specConstrCount :: Maybe Int Max number of specialisations for any one function specConstrRecursive :: Int Max number of specialisations for recursive types Not optional; otherwise ForceSpecConstr can diverge. liberateCaseThreshold :: Maybe Int Threshold for LiberateCase floatLamArgs :: Maybe Int Arg count for lambda floating See CoreMonad.FloatOutSwitches historySize :: Int cmdlineHcIncludes :: [String]
      -#includes
importPaths :: [FilePath] mainModIs :: Module mainFunIs :: Maybe String ctxtStkDepth :: Int Typechecker context stack depth tyFunStkDepth :: Int Typechecker type function stack depth thisPackage :: PackageKey name of package currently being compiled ways :: [Way] Way flags from the command line buildTag :: String The global "way" (e.g. "p" for prof) rtsBuildTag :: String The RTS "way" splitInfo :: Maybe (String, Int) objectDir :: Maybe String dylibInstallName :: Maybe String hiDir :: Maybe String stubDir :: Maybe String dumpDir :: Maybe String objectSuf :: String hcSuf :: String hiSuf :: String canGenerateDynamicToo :: IORef Bool dynObjectSuf :: String dynHiSuf :: String dllSplitFile :: Maybe FilePath dllSplit :: Maybe [Set String] outputFile :: Maybe String dynOutputFile :: Maybe String outputHi :: Maybe String dynLibLoader :: DynLibLoader dumpPrefix :: Maybe FilePath This is set by `runPipeline` based on where its output is going. dumpPrefixForce :: Maybe FilePath Override the `dumpPrefix` set by `runPipeline`. Set by `-ddump-file-prefix` ldInputs :: [Option] includePaths :: [String] libraryPaths :: [String] frameworkPaths :: [String] cmdlineFrameworks :: [String] rtsOpts :: Maybe String rtsOptsEnabled :: RtsOptsEnabled hpcDir :: String Path to store the .mix files pluginModNames :: [ModuleName] pluginModNameOpts :: [(ModuleName, String)] hooks :: Hooks depMakefile :: FilePath depIncludePkgDeps :: Bool depExcludeMods :: [ModuleName] depSuffixes :: [String] extraPkgConfs :: [PkgConfRef] -> [PkgConfRef] The `-package-db` flags given on the command line, in the order they appeared. packageFlags :: [PackageFlag] The `-package` and `-hide-package` flags from the command-line packageEnv :: Maybe FilePath Filepath to the package environment file (if overriding default) pkgDatabase :: Maybe [PackageConfig] pkgState :: PackageState filesToClean :: IORef [FilePath] dirsToClean :: IORef (Map FilePath FilePath) filesToNotIntermediateClean :: IORef [FilePath] nextTempSuffix :: IORef Int generatedDumps :: IORef (Set FilePath) dumpFlags :: IntSet generalFlags :: IntSet warningFlags :: IntSet language :: Maybe Language safeHaskell :: SafeHaskellMode Safe Haskell mode safeInfer :: Bool safeInferred :: Bool thOnLoc :: SrcSpan newDerivOnLoc :: SrcSpan overlapInstLoc :: SrcSpan incoherentOnLoc :: SrcSpan pkgTrustOnLoc :: SrcSpan warnSafeOnLoc :: SrcSpan warnUnsafeOnLoc :: SrcSpan trustworthyOnLoc :: SrcSpan extensions :: [OnOff ExtensionFlag] extensionFlags :: IntSet ufCreationThreshold :: Int ufUseThreshold :: Int ufFunAppDiscount :: Int ufDictDiscount :: Int ufKeenessFactor :: Float ufDearOp :: Int maxWorkerArgs :: Int ghciHistSize :: Int log_action :: LogAction MsgDoc output action: use ErrUtils instead of this if you can flushOut :: FlushOut flushErr :: FlushErr haddockOptions :: Maybe String ghciScripts :: [String] pprUserLength :: Int pprCols :: Int traceLevel :: Int useUnicode :: Bool profAuto :: ProfAuto what kind of {--} to add automatically interactivePrint :: Maybe String llvmVersion :: IORef Int nextWrapperNum :: IORef (ModuleEnv Int) sseVersion :: Maybe SseVersion Machine dependant flags (-mblah stuff) avx :: Bool avx2 :: Bool avx512cd :: Bool avx512er :: Bool avx512f :: Bool avx512pf :: Bool rtldInfo :: IORef (Maybe LinkerInfo) Run-time linker information (what options we need, etc.) rtccInfo :: IORef (Maybe CompilerInfo) Run-time compiler information maxInlineAllocSize :: Int Max size, in bytes, of inline array allocations. maxInlineMemcpyInsns :: Int Only inline memcpy if it generates no more than this many pseudo (roughly: Cmm) instructions. maxInlineMemsetInsns :: Int Only inline memset if it generates no more than this many pseudo (roughly: Cmm) instructions.

data FlagSpec flag Source

Constructors

FlagSpec |
Fields flagSpecName :: String Flag in string form flagSpecFlag :: flag Flag in internal form flagSpecAction :: TurnOnFlag -> DynP () Extra action to run when the flag is found Typically, emit a warning or error flagSpecGhcMode :: GhcFlagMode In which ghc mode the flag has effect

class HasDynFlags m where Source

Methods

getDynFlags :: m DynFlags Source

Instances

HasDynFlags P |
HasDynFlags LlvmM |
HasDynFlags NatM |
HasDynFlags FCode |
HasDynFlags CmmParse |
HasDynFlags Hsc |
HasDynFlags Ghc |
HasDynFlags CompPipeline |
HasDynFlags CoreM |
HasDynFlags SimplM |
HasDynFlags VM |
HasDynFlags TcS |
ContainsDynFlags env => HasDynFlags (IOEnv env) |
HasDynFlags (RegM a) |
(Functor m, ExceptionMonad m, MonadIO m) => HasDynFlags (GhcT m) |

class ContainsDynFlags t where Source

Methods

extractDynFlags :: t -> DynFlags Source

replaceDynFlags :: t -> DynFlags -> t Source

Instances

ContainsDynFlags HscEnv |
ContainsDynFlags (Env gbl lcl) |

data RtsOptsEnabled Source

Constructors

RtsOptsNone |
RtsOptsSafeOnly |
RtsOptsAll |

Instances

Show RtsOptsEnabled |

data HscTarget Source

The target code type of the compilation (if any).

Whenever you change the target, also make sure to set `ghcLink` to something sensible.

`HscNothing` can be used to avoid generating any output, however, note that:

- If a program uses Template Haskell the typechecker may try to run code from an imported module. This will fail if no code has been generated for this module. You can use `needsTemplateHaskell` to detect whether this might be the case and choose to either switch to a different target or avoid typechecking such modules. (The latter may be preferable for security reasons.)

Constructors

HscC | Generate C code.
HscAsm | Generate assembly using the native code generator.
HscLlvm | Generate assembly using the llvm code generator.
HscInterpreted | Generate bytecode. (Requires `LinkInMemory`)
HscNothing | Don't generate any code. See notes above.

Instances

Eq HscTarget |
Show HscTarget |

isObjectTarget :: HscTarget -> Bool Source

Will this target result in an object file on the disk?

defaultObjectTarget :: Platform -> HscTarget Source

The `HscTarget` value corresponding to the default way to create object files on the current platform.

targetRetainsAllBindings :: HscTarget -> Bool Source

Does this target retain *all* top-level bindings for a module, rather than just the exported bindings, in the TypeEnv and compiled code (if any)? In interpreted mode we do this, so that GHCi can call functions inside a module. In HscNothing mode we also do it, so that Haddock can get access to the GlobalRdrEnv for a module after typechecking it.

data GhcMode Source

The `GhcMode` tells us whether we're doing multi-module compilation (controlled via the GHC API) or one-shot (single-module) compilation. This makes a difference primarily to the Finder: in one-shot mode we look for interface files for imported modules, but in multi-module mode we look for source files in order to check whether they need to be recompiled.

Constructors

CompManager | `--make`, GHCi, etc.
OneShot |
    ghc -c Foo.hs
MkDepend | `ghc -M`, see Finder for why we need this

Instances

Eq GhcMode |
Outputable GhcMode |

isOneShot :: GhcMode -> Bool Source

data GhcLink Source

What to do in the link step, if there is one.

Constructors

NoLink | Don't link at all
LinkBinary | Link object code into a binary
LinkInMemory | Use the in-memory dynamic linker (works for both bytecode and object code).
LinkDynLib | Link objects into a dynamic lib (DLL on Windows, DSO on ELF platforms)
LinkStaticLib | Link objects into a static lib

Instances

Eq GhcLink |
Show GhcLink |

isNoLink :: GhcLink -> Bool Source

data PackageFlag Source

Constructors

ExposePackage PackageArg ModRenaming |
HidePackage String |
IgnorePackage String |
TrustPackage String |
DistrustPackage String |

Instances

Eq PackageFlag |
Show PackageFlag |

data PackageArg Source

Constructors

PackageArg String |
PackageIdArg String |
PackageKeyArg String |

Instances

Eq PackageArg |
Show PackageArg |

data ModRenaming Source

Constructors

ModRenaming Bool [(String, String)] |

Instances

Eq ModRenaming |
Show ModRenaming |

data PkgConfRef Source

Constructors

GlobalPkgConf |
UserPkgConf |
PkgConfFile FilePath |

data Option Source

When invoking external tools as part of the compilation pipeline, we pass these a sequence of options on the command-line. Rather than just using a list of Strings, we use a type that allows us to distinguish between filepaths and 'other stuff'. The reason for this is that this type gives us a handle on transforming filenames, and filenames only, to whatever format they're expected to be on a particular platform.

Constructors

FileOption String String |
Option String |

Instances

Eq Option |

showOpt :: Option -> String Source

data DynLibLoader Source

Constructors

Deployable |
SystemDependent |

Instances

Eq DynLibLoader |

fFlags :: [FlagSpec GeneralFlag] Source

These `-f<blah>` flags can all be reversed with `-fno-<blah>`

fWarningFlags :: [FlagSpec WarningFlag] Source

These `-f<blah>` flags can all be reversed with `-fno-<blah>`

fLangFlags :: [FlagSpec ExtensionFlag] Source

These `-f<blah>` flags can all be reversed with `-fno-<blah>`

xFlags :: [FlagSpec ExtensionFlag] Source

These -Xblah flags can all be reversed with -XNoblah

dynFlagDependencies :: DynFlags -> [ModuleName] Source

Some modules have dependencies on others through the DynFlags rather than textual imports

tablesNextToCode :: DynFlags -> Bool Source

mkTablesNextToCode :: Bool -> Bool Source

data SigOf Source

Constructors

NotSigOf |
SigOf Module |
SigOfMap (Map ModuleName Module) |

getSigOf :: DynFlags -> ModuleName -> Maybe Module Source

checkOptLevel :: Int -> DynFlags -> Either String DynFlags Source

data Way Source

Constructors

WayCustom String |
WayThreaded |
WayDebug |
WayProf |
WayEventLog |
WayPar |
WayGran |
WayNDP |
WayDyn |

Instances

Eq Way |
Ord Way |
Show Way |

mkBuildTag :: [Way] -> String Source

wayRTSOnly :: Way -> Bool Source

addWay' :: Way -> DynFlags -> DynFlags Source

updateWays :: DynFlags -> DynFlags Source

wayGeneralFlags :: Platform -> Way -> [GeneralFlag] Source

wayUnsetGeneralFlags :: Platform -> Way -> [GeneralFlag] Source

## Safe Haskell

data SafeHaskellMode Source

The various Safe Haskell modes

Constructors

Sf_None |
Sf_Unsafe |
Sf_Trustworthy |
Sf_Safe |

Instances

Eq SafeHaskellMode |
Show SafeHaskellMode |
Outputable SafeHaskellMode |

safeHaskellOn :: DynFlags -> Bool Source

Is Safe Haskell on in some way (including inference mode)

safeImportsOn :: DynFlags -> Bool Source

Test if Safe Imports are on in some form

safeLanguageOn :: DynFlags -> Bool Source

Is the Safe Haskell safe language in use

safeInferOn :: DynFlags -> Bool Source

Is the Safe Haskell safe inference mode active

packageTrustOn :: DynFlags -> Bool Source

Is the -fpackage-trust mode on

safeDirectImpsReq :: DynFlags -> Bool Source

Are all direct imports required to be safe for this Safe Haskell mode? Direct imports are when the code explicitly imports a module

safeImplicitImpsReq :: DynFlags -> Bool Source

Are all implicit imports required to be safe for this Safe Haskell mode? Implicit imports are things in the prelude. e.g System.IO when print is used.

unsafeFlags :: [(String, DynFlags -> SrcSpan, DynFlags -> Bool, DynFlags -> DynFlags)] Source

A list of unsafe flags under Safe Haskell. Tuple elements are: * name of the flag * function to get srcspan that enabled the flag * function to test if the flag is on * function to turn the flag off

unsafeFlagsForInfer :: [(String, DynFlags -> SrcSpan, DynFlags -> Bool, DynFlags -> DynFlags)] Source

A list of unsafe flags under Safe Haskell. Tuple elements are: * name of the flag * function to get srcspan that enabled the flag * function to test if the flag is on * function to turn the flag off

## System tool settings and locations

data Settings Source

Constructors

Settings |
Fields sTargetPlatform :: Platform sGhcUsagePath :: FilePath sGhciUsagePath :: FilePath sTopDir :: FilePath sTmpDir :: String sProgramName :: String sProjectVersion :: String sRawSettings :: [(String, String)] sExtraGccViaCFlags :: [String] sSystemPackageConfig :: FilePath sLdSupportsCompactUnwind :: Bool sLdSupportsBuildId :: Bool sLdSupportsFilelist :: Bool sLdIsGnuLd :: Bool sPgm_L :: String sPgm_P :: (String, [Option]) sPgm_F :: String sPgm_c :: (String, [Option]) sPgm_s :: (String, [Option]) sPgm_a :: (String, [Option]) sPgm_l :: (String, [Option]) sPgm_dll :: (String, [Option]) sPgm_T :: String sPgm_sysman :: String sPgm_windres :: String sPgm_libtool :: String sPgm_lo :: (String, [Option]) sPgm_lc :: (String, [Option]) sOpt_L :: [String] sOpt_P :: [String] sOpt_F :: [String] sOpt_c :: [String] sOpt_a :: [String] sOpt_l :: [String] sOpt_windres :: [String] sOpt_lo :: [String] sOpt_lc :: [String] sPlatformConstants :: PlatformConstants

targetPlatform :: DynFlags -> Platform Source

programName :: DynFlags -> String Source

projectVersion :: DynFlags -> String Source

ghcUsagePath :: DynFlags -> FilePath Source

ghciUsagePath :: DynFlags -> FilePath Source

topDir :: DynFlags -> FilePath Source

tmpDir :: DynFlags -> String Source

rawSettings :: DynFlags -> [(String, String)] Source

versionedAppDir :: DynFlags -> IO FilePath Source

The directory for this version of ghc in the user's app directory (typically something like `~.ghcx86_64-linux-7.6.3`)

extraGccViaCFlags :: DynFlags -> [String] Source

systemPackageConfig :: DynFlags -> FilePath Source

pgm_L :: DynFlags -> String Source

pgm_P :: DynFlags -> (String, [Option]) Source

pgm_F :: DynFlags -> String Source

pgm_c :: DynFlags -> (String, [Option]) Source

pgm_s :: DynFlags -> (String, [Option]) Source

pgm_a :: DynFlags -> (String, [Option]) Source

pgm_l :: DynFlags -> (String, [Option]) Source

pgm_dll :: DynFlags -> (String, [Option]) Source

pgm_T :: DynFlags -> String Source

pgm_sysman :: DynFlags -> String Source

pgm_windres :: DynFlags -> String Source

pgm_libtool :: DynFlags -> String Source

pgm_lo :: DynFlags -> (String, [Option]) Source

pgm_lc :: DynFlags -> (String, [Option]) Source

opt_L :: DynFlags -> [String] Source

opt_P :: DynFlags -> [String] Source

opt_F :: DynFlags -> [String] Source

opt_c :: DynFlags -> [String] Source

opt_a :: DynFlags -> [String] Source

opt_l :: DynFlags -> [String] Source

opt_windres :: DynFlags -> [String] Source

opt_lo :: DynFlags -> [String] Source

opt_lc :: DynFlags -> [String] Source

## Manipulating DynFlags

defaultDynFlags :: Settings -> DynFlags Source

The normal `DynFlags`. Note that they are not suitable for use in this form and must be fully initialized by `runGhc` first.

defaultWays :: Settings -> [Way] Source

interpWays :: [Way] Source

initDynFlags :: DynFlags -> IO DynFlags Source

Used by `runGhc` to partially initialize a new `DynFlags` value

defaultFatalMessager :: FatalMessager Source

defaultLogAction :: LogAction Source

defaultLogActionHPrintDoc :: DynFlags -> Handle -> SDoc -> PprStyle -> IO () Source

defaultLogActionHPutStrDoc :: DynFlags -> Handle -> SDoc -> PprStyle -> IO () Source

defaultFlushOut :: FlushOut Source

defaultFlushErr :: FlushErr Source

getOpts Source

Arguments

:: DynFlags | `DynFlags` to retrieve the options from
-> (DynFlags -> [a]) | Relevant record accessor: one of the `opt_*` accessors
-> [a] | Correctly ordered extracted options

Retrieve the options corresponding to a particular `opt_*` field in the correct order

getVerbFlags :: DynFlags -> [String] Source

Gets the verbosity flag for the current verbosity level. This is fed to other tools, so GHC-specific verbosity flags like `-ddump-most` are not included

updOptLevel :: Int -> DynFlags -> DynFlags Source

Sets the `DynFlags` to be appropriate to the optimisation level

setTmpDir :: FilePath -> DynFlags -> DynFlags Source

setPackageKey :: String -> DynFlags -> DynFlags Source

interpretPackageEnv :: DynFlags -> IO DynFlags Source

Find the package environment (if one exists)

We interpret the package environment as a set of package flags; to be specific, if we find a package environment

    id1
    id2
    ..
    idn

we interpret this as

    [ -hide-all-packages
    , -package-id id1
    , -package-id id2
    , ..
    , -package-id idn
    ]

## Parsing DynFlags

parseDynamicFlagsCmdLine Source

Arguments

:: MonadIO m |
=> DynFlags |
-> [Located String] |
-> m (DynFlags, [Located String], [Located String]) | Updated `DynFlags`, left-over arguments, and list of warnings.

Parse dynamic flags from a list of command line arguments. Returns the the parsed `DynFlags`, the left-over arguments, and a list of warnings. Throws a `UsageError` if errors occurred during parsing (such as unknown flags or missing arguments).

parseDynamicFilePragma Source

Arguments

:: MonadIO m |
=> DynFlags |
-> [Located String] |
-> m (DynFlags, [Located String], [Located String]) | Updated `DynFlags`, left-over arguments, and list of warnings.

Like `parseDynamicFlagsCmdLine` but does not allow the package flags (-package, -hide-package, -ignore-package, -hide-all-packages, -package-db). Used to parse flags set in a modules pragma.

parseDynamicFlagsFull Source

Arguments

:: MonadIO m |
=> [Flag (CmdLineP DynFlags)] | valid flags to match against
-> Bool | are the arguments from the command line?
-> DynFlags | current dynamic flags
-> [Located String] | arguments to parse
-> m (DynFlags, [Located String], [Located String]) |

Parses the dynamically set flags for GHC. This is the most general form of the dynamic flag parser that the other methods simply wrap. It allows saying which flags are valid flags and indicating if we are parsing arguments from the command line or from a file pragma.

## Available DynFlags

allFlags :: [String] Source

All dynamic flags option strings. These are the user facing strings for enabling and disabling options.

flagsAll :: [Flag (CmdLineP DynFlags)] Source

flagsDynamic :: [Flag (CmdLineP DynFlags)] Source

flagsPackage :: [Flag (CmdLineP DynFlags)] Source

flagsForCompletion :: Bool -> [String] Source

Make a list of flags for shell completion. Filter all available flags into two groups, for interactive GHC vs all other.

supportedLanguagesAndExtensions :: [String] Source

languageExtensions :: Maybe Language -> [ExtensionFlag] Source

## DynFlags C compiler options

picCCOpts :: DynFlags -> [String] Source

picPOpts :: DynFlags -> [String] Source

# Configuration of the stg-to-stg passes

data StgToDo Source

Constructors

StgDoMassageForProfiling |
D_stg_stats |

getStgToDo :: DynFlags -> [StgToDo] Source

# Compiler configuration suitable for display to the user

compilerInfo :: DynFlags -> [(String, String)] Source

rtsIsProfiled :: Bool Source

dynamicGhc :: Bool Source

sTD_HDR_SIZE :: DynFlags -> Int Source

pROF_HDR_SIZE :: DynFlags -> Int Source

bLOCK_SIZE :: DynFlags -> Int Source

bLOCKS_PER_MBLOCK :: DynFlags -> Int Source

oFFSET_StgRegTable_rR1 :: DynFlags -> Int Source

oFFSET_StgRegTable_rR2 :: DynFlags -> Int Source

oFFSET_StgRegTable_rR3 :: DynFlags -> Int Source

oFFSET_StgRegTable_rR4 :: DynFlags -> Int Source

oFFSET_StgRegTable_rR5 :: DynFlags -> Int Source

oFFSET_StgRegTable_rR6 :: DynFlags -> Int Source

oFFSET_StgRegTable_rR7 :: DynFlags -> Int Source

oFFSET_StgRegTable_rR8 :: DynFlags -> Int Source

oFFSET_StgRegTable_rR9 :: DynFlags -> Int Source

oFFSET_StgRegTable_rR10 :: DynFlags -> Int Source

oFFSET_StgRegTable_rF1 :: DynFlags -> Int Source

oFFSET_StgRegTable_rF2 :: DynFlags -> Int Source

oFFSET_StgRegTable_rF3 :: DynFlags -> Int Source

oFFSET_StgRegTable_rF4 :: DynFlags -> Int Source

oFFSET_StgRegTable_rF5 :: DynFlags -> Int Source

oFFSET_StgRegTable_rF6 :: DynFlags -> Int Source

oFFSET_StgRegTable_rD1 :: DynFlags -> Int Source

oFFSET_StgRegTable_rD2 :: DynFlags -> Int Source

oFFSET_StgRegTable_rD3 :: DynFlags -> Int Source

oFFSET_StgRegTable_rD4 :: DynFlags -> Int Source

oFFSET_StgRegTable_rD5 :: DynFlags -> Int Source

oFFSET_StgRegTable_rD6 :: DynFlags -> Int Source

oFFSET_StgRegTable_rXMM1 :: DynFlags -> Int Source

oFFSET_StgRegTable_rXMM2 :: DynFlags -> Int Source

oFFSET_StgRegTable_rXMM3 :: DynFlags -> Int Source

oFFSET_StgRegTable_rXMM4 :: DynFlags -> Int Source

oFFSET_StgRegTable_rXMM5 :: DynFlags -> Int Source

oFFSET_StgRegTable_rXMM6 :: DynFlags -> Int Source

oFFSET_StgRegTable_rYMM1 :: DynFlags -> Int Source

oFFSET_StgRegTable_rYMM2 :: DynFlags -> Int Source

oFFSET_StgRegTable_rYMM3 :: DynFlags -> Int Source

oFFSET_StgRegTable_rYMM4 :: DynFlags -> Int Source

oFFSET_StgRegTable_rYMM5 :: DynFlags -> Int Source

oFFSET_StgRegTable_rYMM6 :: DynFlags -> Int Source

oFFSET_StgRegTable_rZMM1 :: DynFlags -> Int Source

oFFSET_StgRegTable_rZMM2 :: DynFlags -> Int Source

oFFSET_StgRegTable_rZMM3 :: DynFlags -> Int Source

oFFSET_StgRegTable_rZMM4 :: DynFlags -> Int Source

oFFSET_StgRegTable_rZMM5 :: DynFlags -> Int Source

oFFSET_StgRegTable_rZMM6 :: DynFlags -> Int Source

oFFSET_StgRegTable_rL1 :: DynFlags -> Int Source

oFFSET_StgRegTable_rSp :: DynFlags -> Int Source

oFFSET_StgRegTable_rSpLim :: DynFlags -> Int Source

oFFSET_StgRegTable_rHp :: DynFlags -> Int Source

oFFSET_StgRegTable_rHpLim :: DynFlags -> Int Source

oFFSET_StgRegTable_rCCCS :: DynFlags -> Int Source

oFFSET_StgRegTable_rCurrentTSO :: DynFlags -> Int Source

oFFSET_StgRegTable_rCurrentNursery :: DynFlags -> Int Source

oFFSET_StgRegTable_rHpAlloc :: DynFlags -> Int Source

oFFSET_stgEagerBlackholeInfo :: DynFlags -> Int Source

oFFSET_stgGCEnter1 :: DynFlags -> Int Source

oFFSET_stgGCFun :: DynFlags -> Int Source

oFFSET_Capability_r :: DynFlags -> Int Source

oFFSET_bdescr_start :: DynFlags -> Int Source

oFFSET_bdescr_free :: DynFlags -> Int Source

oFFSET_bdescr_blocks :: DynFlags -> Int Source

sIZEOF_CostCentreStack :: DynFlags -> Int Source

oFFSET_CostCentreStack_mem_alloc :: DynFlags -> Int Source

oFFSET_CostCentreStack_scc_count :: DynFlags -> Int Source

oFFSET_StgHeader_ccs :: DynFlags -> Int Source

oFFSET_StgHeader_ldvw :: DynFlags -> Int Source

sIZEOF_StgSMPThunkHeader :: DynFlags -> Int Source

oFFSET_StgEntCounter_allocs :: DynFlags -> Int Source

oFFSET_StgEntCounter_allocd :: DynFlags -> Int Source

oFFSET_StgEntCounter_registeredp :: DynFlags -> Int Source

oFFSET_StgEntCounter_link :: DynFlags -> Int Source

oFFSET_StgEntCounter_entry_count :: DynFlags -> Int Source

sIZEOF_StgUpdateFrame_NoHdr :: DynFlags -> Int Source

sIZEOF_StgMutArrPtrs_NoHdr :: DynFlags -> Int Source

oFFSET_StgMutArrPtrs_ptrs :: DynFlags -> Int Source

oFFSET_StgMutArrPtrs_size :: DynFlags -> Int Source

sIZEOF_StgSmallMutArrPtrs_NoHdr :: DynFlags -> Int Source

oFFSET_StgSmallMutArrPtrs_ptrs :: DynFlags -> Int Source

sIZEOF_StgArrWords_NoHdr :: DynFlags -> Int Source

oFFSET_StgArrWords_bytes :: DynFlags -> Int Source

oFFSET_StgTSO_alloc_limit :: DynFlags -> Int Source

oFFSET_StgTSO_cccs :: DynFlags -> Int Source

oFFSET_StgTSO_stackobj :: DynFlags -> Int Source

oFFSET_StgStack_sp :: DynFlags -> Int Source

oFFSET_StgStack_stack :: DynFlags -> Int Source

oFFSET_StgUpdateFrame_updatee :: DynFlags -> Int Source

oFFSET_StgFunInfoExtraFwd_arity :: DynFlags -> Int Source

sIZEOF_StgFunInfoExtraRev :: DynFlags -> Int Source

oFFSET_StgFunInfoExtraRev_arity :: DynFlags -> Int Source

mAX_SPEC_SELECTEE_SIZE :: DynFlags -> Int Source

mAX_SPEC_AP_SIZE :: DynFlags -> Int Source

mIN_PAYLOAD_SIZE :: DynFlags -> Int Source

mIN_INTLIKE :: DynFlags -> Int Source

mAX_INTLIKE :: DynFlags -> Int Source

mIN_CHARLIKE :: DynFlags -> Int Source

mAX_CHARLIKE :: DynFlags -> Int Source

mUT_ARR_PTRS_CARD_BITS :: DynFlags -> Int Source

mAX_Vanilla_REG :: DynFlags -> Int Source

mAX_Float_REG :: DynFlags -> Int Source

mAX_Double_REG :: DynFlags -> Int Source

mAX_Long_REG :: DynFlags -> Int Source

mAX_XMM_REG :: DynFlags -> Int Source

mAX_Real_Vanilla_REG :: DynFlags -> Int Source

mAX_Real_Float_REG :: DynFlags -> Int Source

mAX_Real_Double_REG :: DynFlags -> Int Source

mAX_Real_XMM_REG :: DynFlags -> Int Source

mAX_Real_Long_REG :: DynFlags -> Int Source

rESERVED_C_STACK_BYTES :: DynFlags -> Int Source

rESERVED_STACK_WORDS :: DynFlags -> Int Source

aP_STACK_SPLIM :: DynFlags -> Int Source

wORD_SIZE :: DynFlags -> Int Source

dOUBLE_SIZE :: DynFlags -> Int Source

cINT_SIZE :: DynFlags -> Int Source

cLONG_SIZE :: DynFlags -> Int Source

cLONG_LONG_SIZE :: DynFlags -> Int Source

bITMAP_BITS_SHIFT :: DynFlags -> Int Source

tAG_BITS :: DynFlags -> Int Source

wORDS_BIGENDIAN :: DynFlags -> Bool Source

dYNAMIC_BY_DEFAULT :: DynFlags -> Bool Source

lDV_SHIFT :: DynFlags -> Int Source

iLDV_CREATE_MASK :: DynFlags -> Integer Source

iLDV_STATE_CREATE :: DynFlags -> Integer Source

iLDV_STATE_USE :: DynFlags -> Integer Source

bLOCK_SIZE_W :: DynFlags -> Int Source

wORD_SIZE_IN_BITS :: DynFlags -> Int Source

tAG_MASK :: DynFlags -> Int Source

mAX_PTR_TAG :: DynFlags -> Int Source

tARGET_MIN_INT :: DynFlags -> Integer Source

tARGET_MAX_INT :: DynFlags -> Integer Source

tARGET_MAX_WORD :: DynFlags -> Integer Source

unsafeGlobalDynFlags :: DynFlags Source

setUnsafeGlobalDynFlags :: DynFlags -> IO () Source

# SSE and AVX

isSseEnabled :: DynFlags -> Bool Source

isSse2Enabled :: DynFlags -> Bool Source

isSse4_2Enabled :: DynFlags -> Bool Source

isAvxEnabled :: DynFlags -> Bool Source

isAvx2Enabled :: DynFlags -> Bool Source

isAvx512cdEnabled :: DynFlags -> Bool Source

isAvx512erEnabled :: DynFlags -> Bool Source

isAvx512fEnabled :: DynFlags -> Bool Source

isAvx512pfEnabled :: DynFlags -> Bool Source

# Linker/compiler information

data LinkerInfo Source

Constructors

GnuLD [Option] |
GnuGold [Option] |
DarwinLD [Option] |
SolarisLD [Option] |
UnknownLD |

Instances

Eq LinkerInfo |

data CompilerInfo Source

Constructors

GCC |
Clang |
AppleClang |
AppleClang51 |
UnknownCC |

Instances

Eq CompilerInfo |