Safe Haskell | None |
---|---|
Language | Haskell98 |
Base Public API (provisional, to be refactored)
- data EHCOpts = EHCOpts {
- ehcOptTrace :: forall a. String -> a -> a
- ehcOptAspects :: String
- ehcOptShowHS :: Bool
- ehcOptShowEH :: Bool
- ehcOptPriv :: Bool
- ehcOptHsChecksInEH :: Bool
- ehcOptShowTopTyPP :: Bool
- ehcOptImmQuit :: Maybe ImmediateQuitOption
- ehcOptDebug :: Bool
- ehcStopAtPoint :: CompilePoint
- ehcOptPolyKinds :: Bool
- ehcOptExtensibleRecords :: Bool
- ehcOptMbTarget :: MaybeOk Target
- ehcOptMbTargetFlavor :: MaybeOk TargetFlavor
- ehcOptBangPatterns :: Bool
- ehcOptOptimizationLevel :: OptimizationLevel
- ehcOptOptimizationScope :: OptimizationScope
- ehcOptOptimizations :: OptimizeS
- ehcOptOptimizeOptionMp :: OptimizeOptionMp
- ehcOptDumpCoreStages :: Bool
- ehcOptCoreOpts :: [CoreOpt]
- ehcOptGenTrampoline_ :: Bool
- ehcOptGenTrace :: Bool
- ehcOptEmitHS :: Bool
- ehcOptEmitEH :: Bool
- ehcOptImportFileLocPath :: FileLocPath
- ehcOptVerbosity :: Verbosity
- ehcOptBuiltinNames :: EHBuiltinNames
- ehcOptEnvironment :: EHCEnvironment
- ehcCfgInstFldHaveSelf :: Bool
- ehcOptPrfCutOffAt :: Int
- ehcCfgClassViaRec :: Bool
- ehcOptTyBetaRedCutOffAt :: Int
- ehcDebugStopAtCoreError :: Bool
- ehcOptCheckRecompile :: Bool
- ehcDebugStopAtHIError :: Bool
- ehcOptLinkingStyle :: LinkingStyle
- ehcOptGenGenerics :: Bool
- ehcOptFusion :: Bool
- ehcOptAltDriver :: Bool
- ehcOptHiValidityCheck :: Bool
- ehcOptLibFileLocPath :: FileLocPath
- ehcOptPkgdirLocPath :: StringPath
- ehcOptPkgDb :: PackageDatabase
- ehcProgName :: FPath
- ehcCurDir :: String
- ehcOptUserDir :: String
- ehcOptMbOutputFile :: Maybe FPath
- ehcOptCPP :: Bool
- ehcOptUseAssumePrelude :: Bool
- ehcOptPackageSearchFilter :: [PackageSearchFilter]
- ehcOptOutputDir :: Maybe String
- ehcOptKeepIntermediateFiles :: Bool
- ehcOptPkgOpt :: Maybe PkgOption
- ehcOptCfgInstallRoot :: Maybe String
- ehcOptCfgInstallVariant :: Maybe String
- ehcOptCmdLineOpts :: CmdLineOpts
- ehcOptCmdLineOptsDoneViaPragma :: Bool
- ehcOptOverloadedStrings :: Bool
- ehcOptPgmExecMp :: Map PgmExec FilePath
- ehcOptExecOptsMp :: Map FilePath [ExecOpt]
- defaultEHCOpts :: EHCOpts
- mkUniqueHsName :: String -> [String] -> String -> HsName
- addHsNamePrefix :: String -> HsName -> HsName
- mkHsName :: [String] -> String -> HsName
- mkHsName1 :: String -> HsName
- data CTag
- data HsName
- class HSNM a where
- data Target
- = Target_None
- | Target_None_Core_AsIs
- | Target_None_Core_CoreRun
- | Target_None_TyCore_None
- | Target_Interpreter_Core_Jazy
- | Target_Interpreter_Core_JavaScript
- | Target_Interpreter_GrinCmm_JavaScript
- | Target_FullProgAnal_Grin_C
- | Target_FullProgAnal_Grin_LLVM
- | Target_FullProgAnal_Grin_JVM
- | Target_Interpreter_Grin_C
- | Target_FullProgAnal_Grin_CLR
- data OptimizationScope
- data Err
- data MaybeOk a
- data Verbosity
- hsnEhcRunMain :: HsName
- hsnMain :: HsName
Opts
Options to the compiler.
The options to use.
defaultEHCOpts :: EHCOpts Source
The default EHC options.
Names
Names in UHC have to be of the form P1.P2....Pn.Ident . All names in module M must have the form M.Ident . Datatype and constructor names have to start with an uppercase letter, functions with a lowercase letter.
:: String | Name prefix. Used to distinguish names generated by different API consumers, but may also be used to differentiate between different varieties by one API consumer. Use reverse-dns notation if possible, e.g. "nl.uu.agda.identOfVarietyA" |
-> [String] | The module prefix. |
-> String | The name to make unique. |
-> HsName |
Creates a new Core name. All names generated with this function live in the "Core API" namespace and will not collide with names in other namespaces. Names in the "Core API" namespace cannot be called from Haskell code.
Use this function to create names used only inside Core code generated by your own Compiler, e.g. module-scoped or local functions.
addHsNamePrefix :: String -> HsName -> HsName Source
Adds an additional prefix to a HsName
. This can be used to derive a new
unique name from an existing name.
Creates a new Core name. The generated name lives in the default namespace, hence may clash with Haskell-defined names.
mkHsName1 :: String -> HsName Source
Creates a new Core name. The generated name lives in the default namespace, hence may clash with Haskell-defined names.
Constructor Tags
Names
Haskell name representation, exports of constructors only intented for internal use
Possible targets, optimization, ...
All possible targets, even though they may not be configured (done in supportedTargetMp)
data OptimizationScope Source
Scope of optimizations, increasingly more global