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

Safe HaskellNone




data Config Source

Configuration for main compiler stages.




configDump :: Bool

Dump intermediate code.

configInferTypes :: Bool

Use bidirectional type inference on the input code.

configSimplLite :: Simplifier Int () Name

Simplifiers to apply to intermediate code

configSimplSalt :: Simplifier Int () Name
configViaBackend :: ViaBackend

Backend code generator to use

configRuntime :: Config

Runtime system configuration

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

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 :: ConfigPrettySource

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.

data ViaBackend Source



Compile via the C backend.


Compile via the LLVM backend.