Skip to content
This repository has been archived by the owner on Aug 2, 2020. It is now read-only.

Latest commit

 

History

History
176 lines (169 loc) · 4.24 KB

flavours.md

File metadata and controls

176 lines (169 loc) · 4.24 KB

Build flavours

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