[commit: ghc] wip/nfs-locking: Minor revision. (9171856)

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


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

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

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

commit 9171856f647213aea42005a8dfec9bff0ff7223c
Author: Andrey Mokhov <andrey.mokhov at gmail.com>
Date:   Fri Feb 26 11:37:00 2016 +0000

    Minor revision.
    
    See #210.


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

9171856f647213aea42005a8dfec9bff0ff7223c
 src/Oracles/ModuleFiles.hs | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/Oracles/ModuleFiles.hs b/src/Oracles/ModuleFiles.hs
index 630a05f..508b554 100644
--- a/src/Oracles/ModuleFiles.hs
+++ b/src/Oracles/ModuleFiles.hs
@@ -34,7 +34,12 @@ determineBuilder file = case takeExtension file of
 --               ".build/stage1/base/build/Prelude.hs"
 -- == Nothing
 findGenerator :: Context -> FilePath -> Action (Maybe (FilePath, Builder))
-findGenerator context file = askOracle $ Generator (context, file)
+findGenerator context file = do
+    maybeSource <- askOracle $ Generator (context, file)
+    return $ do
+        source  <- maybeSource
+        builder <- determineBuilder source
+        return (source, builder)
 
 -- | Find all Haskell source files for a given 'Context'.
 haskellSources :: Context -> Action [FilePath]
@@ -44,8 +49,9 @@ haskellSources context = do
     -- that GHC/Prim.hs lives in build/autogen/. TODO: fix the inconsistency?
     let modFile ("GHC.Prim", _) = autogen -/- "GHC/Prim.hs"
         modFile (m, Nothing   ) = generatedFile context m
-        modFile (m, Just file ) | "//*hs" ?== file = file
-                                | otherwise        = modFile (m, Nothing)
+        modFile (m, Just file )
+            | takeExtension file `elem` [".hs", ".lhs"] = file
+            | otherwise = generatedFile context m
     map modFile <$> contextFiles context
 
 generatedFile :: Context -> String -> FilePath
@@ -53,7 +59,7 @@ generatedFile context moduleName =
     contextPath context -/- "build" -/- replaceEq '.' '/' moduleName <.> "hs"
 
 contextFiles :: Context -> Action [(String, Maybe FilePath)]
-contextFiles context @ Context {..} = do
+contextFiles context at Context {..} = do
     let path = contextPath context
     modules <- fmap sort . pkgDataList $ Modules path
     zip modules <$> askOracle (ModuleFilesKey context)
@@ -97,8 +103,8 @@ moduleFilesOracle = void $ do
 
     gens <- newCache $ \context -> do
         files <- contextFiles context
-        return $ Map.fromList [ (generatedFile context modName, (src, builder))
+        return $ Map.fromList [ (generatedFile context modName, src)
                               | (modName, Just src) <- files
-                              , let Just builder = determineBuilder src ]
+                              , takeExtension src `notElem` [".hs", ".lhs"] ]
 
     addOracle $ \(Generator (context, file)) -> Map.lookup file <$> gens context



More information about the ghc-commits mailing list