[commit: ghc] wip/nfs-locking: Simplify build rule interfaces. (622d3c1)

git at git.haskell.org git at git.haskell.org
Thu Oct 26 23:27:57 UTC 2017


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

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

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

commit 622d3c164d3c36fba97e780a5d3e3b4049e18417
Author: Andrey Mokhov <andrey.mokhov at gmail.com>
Date:   Sat Jun 13 14:14:03 2015 +0100

    Simplify build rule interfaces.


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

622d3c164d3c36fba97e780a5d3e3b4049e18417
 src/Rules.hs         | 4 ++--
 src/Rules/Data.hs    | 9 ++++++---
 src/Rules/Package.hs | 3 +--
 3 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/Rules.hs b/src/Rules.hs
index 8f2825f..dd9e2e0 100644
--- a/src/Rules.hs
+++ b/src/Rules.hs
@@ -30,5 +30,5 @@ packageRules :: Rules ()
 packageRules =
     forM_ [Stage0, Stage1] $ \stage -> do
         forM_ targetPackages $ \pkg -> do
-            let dir = pkgPath pkg </> targetDirectory stage pkg
-            buildPackage stage pkg dir targetWays buildSettings
+            let env = defaultEnvironment { getStage = stage, getPackage = pkg }
+            buildPackage env targetWays buildSettings
diff --git a/src/Rules/Data.hs b/src/Rules/Data.hs
index 0a1abf1..7447e5e 100644
--- a/src/Rules/Data.hs
+++ b/src/Rules/Data.hs
@@ -140,8 +140,12 @@ postProcessPackageData file = do
 -- * otherwise, we must collapse it into one space-separated string
 
 -- Build package-data.mk by using GhcCabal to process pkgCabal file
-buildPackageData :: Stage -> Package -> FilePath -> Ways -> Settings -> Rules ()
-buildPackageData stage pkg dir ways settings =
+buildPackageData :: Environment -> Ways -> Settings -> Rules ()
+buildPackageData env ways settings =
+    let stage = getStage env
+        pkg   = getPackage env
+        dir   = pkgPath pkg </> targetDirectory stage pkg
+    in
     (dir </>) <$>
     [ "package-data.mk"
     , "haddock-prologue.txt"
@@ -152,7 +156,6 @@ buildPackageData stage pkg dir ways settings =
     -- , "build" </> "autogen" </> ("Paths_" ++ name) <.> "hs"
     ] &%> \_ -> do
         let configure = pkgPath pkg </> "configure"
-            env = defaultEnvironment { getStage = stage, getPackage = pkg }
         need [pkgPath pkg </> pkgCabal pkg]
         -- GhcCabal will run the configure script, so we depend on it
         -- We still don't know who build the configure script from configure.ac
diff --git a/src/Rules/Package.hs b/src/Rules/Package.hs
index 5ce0ed9..d56bb30 100644
--- a/src/Rules/Package.hs
+++ b/src/Rules/Package.hs
@@ -3,10 +3,9 @@ module Rules.Package (
     ) where
 
 import Base
-import Package
 import Rules.Data
 import Expression
 import Expression.Settings
 
-buildPackage :: Stage -> Package -> FilePath -> Ways -> Settings -> Rules ()
+buildPackage :: Environment -> Ways -> Settings -> Rules ()
 buildPackage = buildPackageData



More information about the ghc-commits mailing list