[commit: ghc] wip/nfs-locking: Need rts at the top-level to allow more parallelism (adc8e35)

git at git.haskell.org git at git.haskell.org
Fri Oct 27 00:42:23 UTC 2017


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

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

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

commit adc8e3531a5e301b4c00eaf4372c8a3b8a0205cc
Author: Andrey Mokhov <andrey.mokhov at gmail.com>
Date:   Thu Sep 14 18:23:47 2017 +0100

    Need rts at the top-level to allow more parallelism
    
    See #393


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

adc8e3531a5e301b4c00eaf4372c8a3b8a0205cc
 src/Rules.hs | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/Rules.hs b/src/Rules.hs
index fcf3f65..ea3df45 100644
--- a/src/Rules.hs
+++ b/src/Rules.hs
@@ -32,7 +32,7 @@ allStages = [minBound ..]
 -- 'Stage1Only' flag.
 topLevelTargets :: Rules ()
 topLevelTargets = action $ do
-    let libraryPackages = filter isLibrary (knownPackages \\ [rts, libffi])
+    let libraryPackages = filter isLibrary (knownPackages \\ [libffi])
     need =<< if stage1Only
              then do
                  libs <- concatForM [Stage0, Stage1] $ \stage ->
@@ -41,11 +41,10 @@ topLevelTargets = action $ do
                  return $ libs ++ prgs ++ inplaceLibCopyTargets
              else do
                  targets <- concatForM allStages $ \stage ->
-                     concatForM (knownPackages \\ [rts, libffi]) $
+                     concatForM (knownPackages \\ [libffi]) $
                         packageTargets False stage
                  return $ targets ++ inplaceLibCopyTargets
 
-
 -- TODO: Get rid of the @includeGhciLib@ hack.
 -- | Return the list of targets associated with a given 'Stage' and 'Package'.
 -- By setting the Boolean parameter to False it is possible to exclude the GHCi
@@ -62,14 +61,15 @@ packageTargets includeGhciLib stage pkg = do
     then return [] -- Skip inactive packages.
     else if isLibrary pkg
         then do -- Collect all targets of a library package.
-            ways    <- interpretInContext context getLibraryWays
+            let pkgWays = if pkg == rts then getRtsWays else getLibraryWays
+            ways    <- interpretInContext context pkgWays
             libs    <- mapM (pkgLibraryFile . Context stage pkg) ways
             docs    <- interpretInContext context =<< buildHaddock <$> flavour
             more    <- libraryTargets includeGhciLib context
             setup   <- pkgSetupConfigFile context
             haddock <- pkgHaddockFile     context
-            return $ [ setup   | nonCabalContext context ]
-                  ++ [ haddock | docs && stage == Stage1 ]
+            return $ [ setup   | not $ nonCabalContext context ]
+                  ++ [ haddock | pkg /= rts && docs && stage == Stage1 ]
                   ++ libs ++ more
         else do -- The only target of a program package is the executable.
             prgContext <- programContext stage pkg



More information about the ghc-commits mailing list