uhc-light-1.1.9.0: Part of UHC packaged as cabal/hackage installable library

Safe HaskellNone
LanguageHaskell98

UHC.Light.Compiler.EHC.Main.Utils

Synopsis

Documentation

type FileSuffMp = [(FileSuffix, FileSuffInitState, Bool)] Source

mkFileSuffMpHs :: EHCOpts -> FileSuffMp Source

Allowed suffixes, order is significant.

data EHCOpts Source

The options to use.

Constructors

EHCOpts 

Fields

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]
 

Instances

ehcOptFromJust :: EHCOpts -> String -> a -> Maybe a -> a Source

Either fromJust with a possible panic, or with a default value (when debugging)

ehcOptTargetFlavor :: EHCOpts -> TargetFlavor Source

ehcOptCoreSysF :: EHCOpts -> Bool Source

Generate system F (20120421 AD: very much under construction)

ehcOptCoreSysFCheck :: EHCOpts -> Bool Source

Typecheck system F (20120421 AD: very much under construction)

ehcOptCoreSysFGen :: EHCOpts -> Bool Source

Typecheck system F (20120421 AD: very much under construction)

ehcOptCoreSysFCheckOnlyVal :: EHCOpts -> Bool Source

Typecheck system F (20120421 AD: very much under construction)

ehcOptIsViaGrinCmmJavaScript :: EHCOpts -> Bool Source

Via Core -> Grin -> CMM -> JS ?

ehcOptBuiltin :: EHCOpts -> (EHBuiltinNames -> x) -> x Source

ehcOptBuiltin2 :: EHCOpts -> (EHBuiltinNames -> Int -> HsName) -> Int -> HsName Source

ehcOptDoExecLinking :: EHCOpts -> Bool Source

Do linking into executable?

data PkgOption Source

Build pkg options, all (except obligatory name) wrapped in Maybe/[] because of possible absence. 20140829 AD: will be used to construct config file

Constructors

PkgOption 

Fields

pkgoptName :: PkgName

build a package with name

pkgoptExposedModules :: [String]

20140829 AD not yet used: exposed modules

pkgoptBuildDepends :: [PkgName]

20140829 AD not yet used: depends on pkgs

data PgmExec Source

Pgm (internal program used) options, in particular alternate internal shell commands

data ExecOpt Source

Wrapper around options, adding semantics for adapting cmd specific behavior

Constructors

ExecOpt_Plain String

plain option

ExecOpt_Output (String -> String)

output file

optOptsIsYes :: Eq opt => Maybe [opt] -> opt -> Bool Source

defaultEHCOpts :: EHCOpts Source

The default EHC options.

ehcCmdLineOpts :: GetOptCmdLineOpts Source

Commandline opts for ehc/uhc (EHC)

ehcrunCmdLineOpts :: GetOptCmdLineOpts Source

Commandline opts for ehcr/uhcr (EHCRun)

type GetOptCmdLineOpts = [OptDescr (EHCOpts -> EHCOpts)] Source

The description for GetOpt

ehcCmdLineOptsApply :: [EHCOpts -> EHCOpts] -> [String] -> EHCOpts -> (Maybe EHCOpts, [String], [String]) Source

Apply the cmdline opts description for EHC to a EHCOpts, returning Nothing when there were no options

ehcrunCmdLineOptsApply :: [String] -> EHCOpts -> (Maybe EHCOpts, [String], [String]) Source

Apply the cmdline opts description for EHCRun to a EHCOpts, returning Nothing when there were no options

data Optimize Source

individual optimizations, unit of turning off/on. (Assumption) Names of alternatives must start with Optimize_

type PkgKey1 = PkgName Source

data PackageSearchFilter Source

Description of hiding/exposing pkgs, determining the used packages for looking up modules.

data PackageInfo Source

Per package info

Constructors

PackageInfo 

Fields

pkginfoLoc :: !FileLoc

directory location

pkginfoOrder :: !Int

for multiple packages the relative order , pkginfoKeyVals :: PackageCfgKeyVals -- key/value pairs of pkg config info

pkginfoExposedModules :: !HsNameS

exposed modules

pkginfoBuildDepends :: !(Set PkgKey)

pkgs dependend on

pkginfoIsExposed :: !Bool

pkg is exposed?

Instances

type PackageMp = Map PkgKey1 (Map PkgKey2 [PackageInfo]) Source

content of a package (keys are name, then version)

type Module2PackageMp = Map HsName [PkgKey] Source

reverse map from module name to package key

data PackageDatabase Source

A package database contains an actual package map, plus a function that maps modules to associated package maps. The latter is computed by "freezing" the package database using "pkgDbFreeze".

ehcOptOptimizes :: Optimize -> EHCOpts -> Bool Source

optimizes a particular option

fioMkFinal :: FIOpts -> FIOpts Source

Adapt options for extracting final ty

data FIOBind Source

Constructors

FIOBindYes 
FIOBindNoBut TyVarIdS 

Instances

fioBindNoSet :: FIOBind -> TyVarIdS Source

ehcOptUpdateWithPragmas :: Set Pragma -> EHCOpts -> (EHCOpts, Bool) Source

possibly adapt with pragmas

handleImmQuitOption :: GetOptCmdLineOpts -> [String] -> ImmediateQuitOption -> EHCOpts -> IO () Source

Handle a commandline option directly