Build flavours
November 5, 2017 ยท View on GitHub
Hadrian supports a few predefined build flavours, i.e. collections of build
settings that fully define a GHC build (see src/Flavour.hs). Users can add their
own build flavours if need be, as described
here.
Arguments
The following table summarises extra arguments passed to GHC in different build flavours.
There are four groups of arguments: arguments in hsDefault are passed to GHC for all Haskell
source files, hsLibrary arguments are added when compiling libraries, hsCompiler
when compiling the compiler library, and hsGhc when compiling/linking the GHC program.
| Flavour | Extra arguments | |||||||
|---|---|---|---|---|---|---|---|---|
| hsDefault | hsLibrary | hsCompiler | hsGhc | |||||
| stage0 | stage1+ | stage0 | stage1+ | stage0 | stage1+ | stage0 | stage1+ | |
| default | -O -H64m |
-O2 -H64m |
||||||
| quick | -O0 -H64m |
-O0 -H64m |
-O | -O | -O | |||
| quickest | -O0 -H64m |
-O0 -H64m |
-O | -O | ||||
| perf | -O -H64m |
-O -H64m |
-O2 | -O | -O2 | -O | -O2 | |
| prof | -O0 -H64m |
-O0 -H64m |
-O | -O | -O | -O | -O | |
| devel1 | -O -H64m |
-O -H64m |
-dcore-lint | -O0 -DDEBUG |
-O0 -DDEBUG |
|||
| devel2 | -O -H64m |
-O -H64m |
-dcore-lint | -O0 -DDEBUG |
-O0 -DDEBUG |
|||
Ways
Libraries and GHC can be built in different ways, e.g. with or without profiling information. The following table lists ways that are built in different flavours.
| Flavour | Library ways | RTS ways | Profiled GHC | |||
|---|---|---|---|---|---|---|
| stage0 | stage1+ | stage0 | stage1+ | stage0 | stage1+ | |
| default perf prof devel1 devel2 | vanilla | vanilla profiling dynamic |
logging debug threaded threadedDebug threadedLogging debugDynamic threadedDynamic threadedDebugDynamic loggingDynamic threadedLoggingDynamic |
logging debug threaded threadedDebug threadedLogging threadedProfiling debugDynamic threadedDynamic threadedDebugDynamic loggingDynamic threadedLoggingDynamic |
Only in prof flavour |
Only in prof flavour |
| quick | vanilla | vanilla dynamic |
logging debug threaded threadedDebug threadedLogging debugDynamic threadedDynamic threadedDebugDynamic loggingDynamic threadedLoggingDynamic |
logging debug threaded threadedDebug threadedLogging debugDynamic threadedDynamic threadedDebugDynamic loggingDynamic threadedLoggingDynamic |
No | No |
| quickest | vanilla | vanilla | vanilla threaded |
vanilla threaded |
No | No |