[commit: ghc] wip/nfs-locking: Drop stringly-typed configuration keys. (4512f27)

git at git.haskell.org git at git.haskell.org
Thu Oct 26 23:13:42 UTC 2017


Repository : ssh://git@git.haskell.org/ghc

On branch  : wip/nfs-locking
Link       : http://ghc.haskell.org/trac/ghc/changeset/4512f2736c3fec57c6e067c760a229915abff307/ghc

>---------------------------------------------------------------

commit 4512f2736c3fec57c6e067c760a229915abff307
Author: Andrey Mokhov <andrey.mokhov at gmail.com>
Date:   Fri Jul 24 00:21:19 2015 +0100

    Drop stringly-typed configuration keys.


>---------------------------------------------------------------

4512f2736c3fec57c6e067c760a229915abff307
 src/Settings/GhcCabal.hs | 21 ++++++++++-----------
 src/Settings/Util.hs     | 29 ++++++++---------------------
 src/Switches.hs          | 11 +++++++----
 3 files changed, 25 insertions(+), 36 deletions(-)

diff --git a/src/Settings/GhcCabal.hs b/src/Settings/GhcCabal.hs
index 0e4db8f..05ec1fc 100644
--- a/src/Settings/GhcCabal.hs
+++ b/src/Settings/GhcCabal.hs
@@ -3,7 +3,6 @@ module Settings.GhcCabal (
     ) where
 
 import Way
-import Stage
 import Builder
 import Package
 import Util
@@ -36,7 +35,7 @@ cabalArgs = builder GhcCabal ? do
             , configureArgs
             , stage0 ? packageConstraints
             , with $ Gcc stage
-            , notStage Stage0 ? with Ld
+            , notStage0 ? with Ld
             , with Ar
             , with Alex
             , with Happy ]
@@ -65,25 +64,25 @@ configureArgs = do
     let conf key = appendSubD $ "--configure-option=" ++ key
         cFlags   = mconcat [ ccArgs
                            , remove ["-Werror"]
-                           , argStagedConfig "conf-cc-args" ]
-        ldFlags  = ldArgs <> argStagedConfig "conf-gcc-linker-args"
-        cppFlags = cppArgs <> argStagedConfig "conf-cpp-args"
+                           , argSettingList $ ConfCcArgs stage ]
+        ldFlags  = ldArgs <> (argSettingList $ ConfGccLinkerArgs stage)
+        cppFlags = cppArgs <> (argSettingList $ ConfCppArgs stage)
     mconcat
         [ conf "CFLAGS"   cFlags
         , conf "LDFLAGS"  ldFlags
         , conf "CPPFLAGS" cppFlags
         , appendSubD "--gcc-options" $ cFlags <> ldFlags
-        , conf "--with-iconv-includes"  $ argConfig "iconv-include-dirs"
-        , conf "--with-iconv-libraries" $ argConfig "iconv-lib-dirs"
-        , conf "--with-gmp-includes"    $ argConfig "gmp-include-dirs"
-        , conf "--with-gmp-libraries"   $ argConfig "gmp-lib-dirs"
+        , conf "--with-iconv-includes"  $ argSettingList IconvIncludeDirs
+        , conf "--with-iconv-libraries" $ argSettingList IconvLibDirs
+        , conf "--with-gmp-includes"    $ argSettingList GmpIncludeDirs
+        , conf "--with-gmp-libraries"   $ argSettingList GmpLibDirs
         -- TODO: why TargetPlatformFull and not host?
-        , crossCompiling ? (conf "--host" $ argConfig "target-platform-full")
+        , crossCompiling ? (conf "--host" $ argSetting TargetPlatformFull)
         , conf "--with-cc" . argM . builderPath $ Gcc stage ]
 
 bootPackageDbArgs :: Args
 bootPackageDbArgs = do
-    sourcePath <- lift $ askConfig "ghc-source-path"
+    sourcePath <- lift . setting $ GhcSourcePath
     arg $ "--package-db=" ++ sourcePath </> "libraries/bootstrapping.conf"
 
 -- This is a positional argument, hence:
diff --git a/src/Settings/Util.hs b/src/Settings/Util.hs
index 82be349..5f0d035 100644
--- a/src/Settings/Util.hs
+++ b/src/Settings/Util.hs
@@ -1,7 +1,7 @@
 module Settings.Util (
     -- Primitive settings elements
     arg, argPath, argM,
-    argConfig, argStagedConfig, argConfigList, argStagedConfigList,
+    argSetting, argSettingList,
     appendCcArgs,
     needBuilder
     -- argBuilderPath, argStagedBuilderPath,
@@ -13,11 +13,11 @@ module Settings.Util (
     ) where
 
 import Util
-import Stage
 import Builder
-import Settings.User
-import Oracles.Base
 import Expression
+import Oracles.Base
+import Oracles.Setting
+import Settings.User
 
 -- A single argument.
 arg :: String -> Args
@@ -30,24 +30,11 @@ argPath = append . return . unifyPath
 argM :: Action String -> Args
 argM = appendM . fmap return
 
-argConfig :: String -> Args
-argConfig = appendM . fmap return . askConfig
-
-argConfigList :: String -> Args
-argConfigList = appendM . fmap words . askConfig
+argSetting :: Setting -> Args
+argSetting = argM . setting
 
-stagedKey :: Stage -> String -> String
-stagedKey stage key = key ++ "-stage" ++ show stage
-
-argStagedConfig :: String -> Args
-argStagedConfig key = do
-    stage <- asks getStage
-    argConfig (stagedKey stage key)
-
-argStagedConfigList :: String -> Args
-argStagedConfigList key = do
-    stage <- asks getStage
-    argConfigList (stagedKey stage key)
+argSettingList :: SettingList -> Args
+argSettingList = appendM . settingList
 
 -- Pass arguments to Gcc and corresponding lists of sub-arguments of GhcCabal
 appendCcArgs :: [String] -> Args
diff --git a/src/Switches.hs b/src/Switches.hs
index 8d5e124..3a56a5a 100644
--- a/src/Switches.hs
+++ b/src/Switches.hs
@@ -1,5 +1,5 @@
 module Switches (
-    notStage, stage0, stage1, stage2,
+    stage0, stage1, stage2, notStage, notStage0,
     registerPackage, splitObjects
     ) where
 
@@ -9,9 +9,6 @@ import Oracles.Setting
 import Expression
 
 -- Derived predicates
-notStage :: Stage -> Predicate
-notStage = notP . stage
-
 stage0 :: Predicate
 stage0 = stage Stage0
 
@@ -21,6 +18,12 @@ stage1 = stage Stage1
 stage2 :: Predicate
 stage2 = stage Stage2
 
+notStage :: Stage -> Predicate
+notStage = notP . stage
+
+notStage0 :: Predicate
+notStage0 = notP stage0
+
 -- TODO: Actually, we don't register compiler in some circumstances -- fix.
 registerPackage :: Predicate
 registerPackage = return True



More information about the ghc-commits mailing list