summaryrefslogtreecommitdiff
path: root/hadrian/src/Settings.hs
diff options
context:
space:
mode:
authorSylvain Henry <sylvain@haskus.fr>2020-02-11 09:38:18 +0100
committerBen Gamari <ben@smart-cactus.org>2020-06-17 16:22:04 -0400
commitdceecb093c3ee1e4dc970bb6669ff855ec37f6ac (patch)
tree74158d954b52c6c5cf0fbc294d79873a066e79cb /hadrian/src/Settings.hs
parentf817d816e60a487bca64037095c01e9956225b64 (diff)
downloadhaskell-dceecb093c3ee1e4dc970bb6669ff855ec37f6ac.tar.gz
Update Hadrian
* support ghc-bignum backend selection in flavours and command-line * support ghc-bignum "--check" flag (compare results of selected backend against results of the native one) in flavours and command-line (e.g. pass --bignum=check-gmp" to check the "gmp" backend) * remove the hack to workaround #15286 * build GMP only when the gmp backend is used * remove hacks to workaround `text` package flags about integer-*. We fix `text` to use ghc-bignum unconditionally in another patch
Diffstat (limited to 'hadrian/src/Settings.hs')
-rwxr-xr-xhadrian/src/Settings.hs15
1 files changed, 11 insertions, 4 deletions
diff --git a/hadrian/src/Settings.hs b/hadrian/src/Settings.hs
index 7c6a24af27..373e976b44 100755
--- a/hadrian/src/Settings.hs
+++ b/hadrian/src/Settings.hs
@@ -1,7 +1,7 @@
module Settings (
getArgs, getLibraryWays, getRtsWays, flavour, knownPackages,
findPackageByName, unsafeFindPackageByName, unsafeFindPackageByPath,
- isLibrary, stagePackages, getIntegerPackage, completeSetting
+ isLibrary, stagePackages, getBignumBackend, getBignumCheck, completeSetting
) where
import CommandLine
@@ -35,6 +35,16 @@ getLibraryWays = expr flavour >>= libraryWays
getRtsWays :: Ways
getRtsWays = expr flavour >>= rtsWays
+getBignumBackend :: Expr String
+getBignumBackend = expr $ cmdBignum >>= \case
+ Nothing -> bignumBackend <$> flavour
+ Just b -> pure b
+
+getBignumCheck :: Expr Bool
+getBignumCheck = expr $ cmdBignum >>= \case
+ Nothing -> bignumCheck <$> flavour
+ Just _ -> cmdBignumCheck
+
stagePackages :: Stage -> Action [Package]
stagePackages stage = do
f <- flavour
@@ -67,9 +77,6 @@ flavour = do
[f] -> tweak f
_ -> error $ "Multiple build flavours named " ++ flavourName
-getIntegerPackage :: Expr Package
-getIntegerPackage = expr (integerLibrary =<< flavour)
-
-- TODO: switch to Set Package as the order of packages should not matter?
-- Otherwise we have to keep remembering to sort packages from time to time.
knownPackages :: [Package]