summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2020-11-11 17:00:57 -0500
committerBen Gamari <ben@smart-cactus.org>2020-11-21 15:53:08 -0500
commiteb581f0f50bd6c34bcbd8c3518e8d4c44bef495c (patch)
treebe99653440398bcd1b7a94f9e919a9c85ff70547
parenta47974a2d06a8f3d697a1ab2e62e4db85c249416 (diff)
downloadhaskell-wip/fix-hadrian-ticky.tar.gz
hadrian: Drop redundant flavour definitionswip/fix-hadrian-ticky
Drop the profiled, LLVM, and ThreadSanitizer flavour definitions as these can now be realized with flavour transformers.
-rw-r--r--hadrian/doc/flavours.md29
-rw-r--r--hadrian/hadrian.cabal3
-rwxr-xr-xhadrian/src/Settings.hs11
-rw-r--r--hadrian/src/Settings/Flavours/Llvm.hs25
-rw-r--r--hadrian/src/Settings/Flavours/Profiled.hs22
-rw-r--r--hadrian/src/Settings/Flavours/ThreadSanitizer.hs9
6 files changed, 5 insertions, 94 deletions
diff --git a/hadrian/doc/flavours.md b/hadrian/doc/flavours.md
index f10b698b58..4dac301dad 100644
--- a/hadrian/doc/flavours.md
+++ b/hadrian/doc/flavours.md
@@ -100,16 +100,6 @@ when compiling the `compiler` library, and `hsGhc` when compiling/linking the GH
<td>-O2</td>
</tr>
<tr>
- <th>prof</td>
- <td>-O0<br>-H64m</td>
- <td>-O0<br>-H64m</td>
- <td></td>
- <td>-O</td>
- <td>-O2</td>
- <td>-O</td>
- <td>-O</td>
- </tr>
- <tr>
<th>bench</td>
<td>-O<br>-H64m</td>
<td>-O<br>-H64m</td>
@@ -166,14 +156,6 @@ when compiling the `compiler` library, and `hsGhc` when compiling/linking the GH
</tr>
</table>
-### LLVM variants
-
-In addition to the above, there are LLVM variants for the flavours `quick`,
-`prof`, `perf` and `bench`, available by appending a `-llvm` suffix (i.e.,
-`quick-llvm` for the LLVM variant of `quick`). These differ only in that there
-is an additional `-fllvm` flag in `hsDefault` when the stage0 compiler is GHC.
-See `src/Settings/Flavours/Llvm.hs` for details.
-
## Flavour transformers
Each of the flavours described above is intended as a starting-point for
@@ -245,7 +227,6 @@ information. The following table lists ways that are built in different flavours
<th rowspan="2">Flavour</th>
<th colspan="2">Library ways</th>
<th colspan="2">RTS ways</th>
- <th colspan="2">Profiled GHC</th>
</tr>
<tr>
<th>stage0</th>
@@ -256,7 +237,7 @@ information. The following table lists ways that are built in different flavours
<th>stage1+</th>
</tr>
<tr>
- <th>default<br>perf<br>prof<br>devel1<br>devel2<br>perf-llvm<br>prof-llvm</td>
+ <th>default<br>perf<br>prof<br>devel1<br>devel2</td>
<td>vanilla</td>
<td>vanilla<br>profiling<br>dynamic</td>
<td>logging<br>debug<br>threaded<br>threadedDebug<br>threadedLogging
@@ -269,11 +250,9 @@ information. The following table lists ways that are built in different flavours
<br>debugDynamic<br>threadedDynamic<br>threadedDebugDynamic
<br>loggingDynamic<br>threadedLoggingDynamic
</td>
- <td>Only in<br>prof<br>flavour</td>
- <td>Only in<br>prof<br>flavour</td>
</tr>
<tr>
- <th>quick<br>quick-llvm<br>quick-validate<br>quick-debug</th>
+ <th>quick<br>quick-validate<br>quick-debug</th>
<td>vanilla</td>
<td>vanilla<br>dynamic</td>
<td>logging<br>debug<br>threaded<br>threadedDebug<br>threadedLogging
@@ -284,8 +263,6 @@ information. The following table lists ways that are built in different flavours
<br>debugDynamic<br>threadedDynamic<br>threadedDebugDynamic
<br>loggingDynamic<br>threadedLoggingDynamic
</td>
- <td>No</td>
- <td>No</td>
</tr>
<tr>
<th>quickest<br>bench</th>
@@ -293,7 +270,5 @@ information. The following table lists ways that are built in different flavours
<td>vanilla</td>
<td>vanilla<br>threaded</td>
<td>vanilla<br>threaded</td>
- <td>No</td>
- <td>No</td>
</tr>
</table>
diff --git a/hadrian/hadrian.cabal b/hadrian/hadrian.cabal
index 4184aadd5f..be2385262b 100644
--- a/hadrian/hadrian.cabal
+++ b/hadrian/hadrian.cabal
@@ -106,13 +106,10 @@ executable hadrian
, Settings.Flavours.Benchmark
, Settings.Flavours.Development
, Settings.Flavours.GhcInGhci
- , Settings.Flavours.Llvm
, Settings.Flavours.Performance
- , Settings.Flavours.Profiled
, Settings.Flavours.Quick
, Settings.Flavours.QuickCross
, Settings.Flavours.Quickest
- , Settings.Flavours.ThreadSanitizer
, Settings.Flavours.Validate
, Settings.Packages
, Settings.Parser
diff --git a/hadrian/src/Settings.hs b/hadrian/src/Settings.hs
index 43af1330ca..23f2708b9f 100755
--- a/hadrian/src/Settings.hs
+++ b/hadrian/src/Settings.hs
@@ -15,13 +15,10 @@ import {-# SOURCE #-} Settings.Default
import Settings.Flavours.Benchmark
import Settings.Flavours.Development
import Settings.Flavours.GhcInGhci
-import Settings.Flavours.Llvm
import Settings.Flavours.Performance
-import Settings.Flavours.Profiled
import Settings.Flavours.Quick
import Settings.Flavours.Quickest
import Settings.Flavours.QuickCross
-import Settings.Flavours.ThreadSanitizer
import Settings.Flavours.Validate
import Control.Monad.Except
@@ -54,13 +51,11 @@ stagePackages stage = do
hadrianFlavours :: [Flavour]
hadrianFlavours =
[ benchmarkFlavour, defaultFlavour, developmentFlavour Stage1
- , developmentFlavour Stage2, performanceFlavour, profiledFlavour
+ , developmentFlavour Stage2, performanceFlavour
, quickFlavour, quickValidateFlavour, quickDebugFlavour
, quickestFlavour
- , quickCrossFlavour, benchmarkLlvmFlavour
- , performanceLlvmFlavour, profiledLlvmFlavour, quickLlvmFlavour
- , ghcInGhciFlavour, validateFlavour, slowValidateFlavour
- , threadSanitizerFlavour ]
+ , quickCrossFlavour
+ , ghcInGhciFlavour, validateFlavour, slowValidateFlavour ]
-- | This action looks up a flavour with the name given on the
-- command line with @--flavour@, defaulting to 'userDefaultFlavour'
diff --git a/hadrian/src/Settings/Flavours/Llvm.hs b/hadrian/src/Settings/Flavours/Llvm.hs
deleted file mode 100644
index 3882e73f45..0000000000
--- a/hadrian/src/Settings/Flavours/Llvm.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-module Settings.Flavours.Llvm (
- benchmarkLlvmFlavour,
- performanceLlvmFlavour,
- profiledLlvmFlavour,
- quickLlvmFlavour,
-) where
-
-import Flavour
-
-import Settings.Flavours.Benchmark
-import Settings.Flavours.Performance
-import Settings.Flavours.Profiled
-import Settings.Flavours.Quick
-
--- Please update doc/flavours.md when changing this file.
-benchmarkLlvmFlavour, performanceLlvmFlavour, profiledLlvmFlavour, quickLlvmFlavour :: Flavour
-benchmarkLlvmFlavour = mkLlvmFlavour benchmarkFlavour
-performanceLlvmFlavour = mkLlvmFlavour performanceFlavour
-profiledLlvmFlavour = mkLlvmFlavour profiledFlavour
-quickLlvmFlavour = mkLlvmFlavour quickFlavour
-
--- | Turn a flavour into an LLVM flavour
-mkLlvmFlavour :: Flavour -> Flavour
-mkLlvmFlavour flav = viaLlvmBackend $ flav
- { name = name flav ++ "-llvm" }
diff --git a/hadrian/src/Settings/Flavours/Profiled.hs b/hadrian/src/Settings/Flavours/Profiled.hs
deleted file mode 100644
index 49339f1446..0000000000
--- a/hadrian/src/Settings/Flavours/Profiled.hs
+++ /dev/null
@@ -1,22 +0,0 @@
-module Settings.Flavours.Profiled (profiledFlavour) where
-
-import Expression
-import Flavour
-import {-# SOURCE #-} Settings.Default
-
--- Please update doc/flavours.md when changing this file.
-profiledFlavour :: Flavour
-profiledFlavour = defaultFlavour
- { name = "prof"
- , args = defaultBuilderArgs <> profiledArgs <> defaultPackageArgs
- , ghcProfiled = True
- , dynamicGhcPrograms = pure False }
-
-profiledArgs :: Args
-profiledArgs = sourceArgs SourceArgs
- { hsDefault = mconcat
- [ pure ["-O0", "-H64m"]
- ]
- , hsLibrary = notStage0 ? arg "-O"
- , hsCompiler = mconcat [stage0 ? arg "-O2", notStage0 ? arg "-O"]
- , hsGhc = arg "-O" }
diff --git a/hadrian/src/Settings/Flavours/ThreadSanitizer.hs b/hadrian/src/Settings/Flavours/ThreadSanitizer.hs
deleted file mode 100644
index 722370f5cd..0000000000
--- a/hadrian/src/Settings/Flavours/ThreadSanitizer.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Settings.Flavours.ThreadSanitizer (threadSanitizerFlavour) where
-
-import Flavour
-import Settings.Flavours.Validate
-
-threadSanitizerFlavour :: Flavour
-threadSanitizerFlavour =
- enableThreadSanitizer (validateFlavour
- { name = "thread-sanitizer" })