[commit: ghc] wip/nfs-locking: Handle GenPrimopCode builder in a special way. (17087d7)
git at git.haskell.org
git at git.haskell.org
Fri Oct 27 00:08:00 UTC 2017
Repository : ssh://git@git.haskell.org/ghc
On branch : wip/nfs-locking
Link : http://ghc.haskell.org/trac/ghc/changeset/17087d74a371ab996b81e8436f07839294a21cf8/ghc
>---------------------------------------------------------------
commit 17087d74a371ab996b81e8436f07839294a21cf8
Author: Andrey Mokhov <andrey.mokhov at gmail.com>
Date: Wed Sep 23 02:07:17 2015 +0100
Handle GenPrimopCode builder in a special way.
>---------------------------------------------------------------
17087d74a371ab996b81e8436f07839294a21cf8
src/Rules/Actions.hs | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/Rules/Actions.hs b/src/Rules/Actions.hs
index f261b4f..1e0472a 100644
--- a/src/Rules/Actions.hs
+++ b/src/Rules/Actions.hs
@@ -24,15 +24,23 @@ buildWithResources rs target = do
++ show builder ++ " with arguments:"
mapM_ (putBuild . ("| " ++)) $ interestingInfo builder argList
putBuild $ "\\--------"
- quietly $ if builder /= Ar
- then cmd [path] argList
- else do -- Split argument list into chunks as otherwise Ar chokes up
+ quietly $ case builder of
+ Ar -> do -- Split argument list into chunks as otherwise Ar chokes up
maxChunk <- cmdLineLengthLimit
let persistentArgs = take arPersistentArgsCount argList
remainingArgs = drop arPersistentArgsCount argList
forM_ (chunksOfSize maxChunk remainingArgs) $ \argsChunk ->
unit . cmd [path] $ persistentArgs ++ argsChunk
+ GenPrimopCode -> do
+ let src = head $ Target.sources target -- TODO: ugly
+ file = head $ Target.files target
+ input <- readFile' src
+ Stdout output <- cmd (Stdin input) [path] argList
+ writeFileChanged file output
+
+ _ -> cmd [path] argList
+
-- Most targets are built without explicitly acquiring resources
build :: Target -> Action ()
build = buildWithResources []
More information about the ghc-commits
mailing list