ddc-driver-0.4.2.1: Disciplined Disciple Compiler top-level driver.

Safe HaskellNone
LanguageHaskell98

DDC.Driver.Config

Synopsis

Documentation

data Config Source

Configuration for main compiler stages.

Constructors

Config 

Fields

configLogBuild :: Bool

Print status to console during builds.

configDump :: Bool

Dump intermediate code.

configInferTypes :: Bool

Use bidirectional type inference on the input code.

configSimplSalt :: Simplifier Int () Name

Simplifiers to apply to intermediate code

configViaBackend :: ViaBackend

Backend code generator to use

configRuntime :: Config

Runtime system configuration

configRuntimeLinkStrategy :: RuntimeLinkStrategy

Linking strategy for the runtime.

configBuilder :: Builder

The builder to use for the target architecture

configPretty :: ConfigPretty

Core langauge pretty printer configuration.

configSuppressHashImports :: Bool

Suppress the #import prelude in C modules

configModuleBaseDirectories :: [FilePath]

Base directories to look for modules sources during build.

configOutputFile :: Maybe FilePath

Override output file

configOutputDir :: Maybe FilePath

Override directory for build products

configKeepLlvmFiles :: Bool

Keep intermediate .ddc.ll files

configKeepSeaFiles :: Bool

Keep intermediate .ddc.c files

configKeepAsmFiles :: Bool

Keep intermediate .ddc.s files

configTaintAvoidTypeChecks :: Bool

Avoid running the type checker where possible. When debugging program transformations, use this to get the invalid code rather than just the type error message.

defaultConfigPretty :: ConfigPretty Source

Default pretty printer configuration.

prettyModeOfConfig :: (Eq n, Pretty n) => ConfigPretty -> PrettyMode (Module a n) Source

Convert a the pretty configuration into the mode to use to print a module. We keep the ConfigPretty type separate from PrettyMode because the former can be non-recursive with other types, and does not need to be parameterised by the annotation or name types.

objectPathOfConfig :: Config -> FilePath -> FilePath Source

Given the name of a source file, determine the name of the associated object file.

exePathOfConfig :: Config -> FilePath -> FilePath Source

Given the name of a source file, determine the name of an associated executable file.

data ViaBackend Source

Constructors

ViaC

Compile via the C backend.

ViaLLVM

Compile via the LLVM backend.

data RuntimeLinkStrategy Source

Constructors

LinkDefault

Use the platform's default strategy.

LinkStatic

Link the runtime statically.