[commit: ghc] wip/nfs-locking: Add comments. (096f602)

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


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

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

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

commit 096f6029109bf36ab29f2178942b62fdce884e26
Author: Andrey Mokhov <andrey.mokhov at gmail.com>
Date:   Tue Aug 11 00:24:24 2015 +0100

    Add comments.


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

096f6029109bf36ab29f2178942b62fdce884e26
 src/Oracles/ArgsHash.hs | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/Oracles/ArgsHash.hs b/src/Oracles/ArgsHash.hs
index f67f8c4..422cacd 100644
--- a/src/Oracles/ArgsHash.hs
+++ b/src/Oracles/ArgsHash.hs
@@ -17,6 +17,12 @@ newtype ArgsHashKey = ArgsHashKey Target
 -- argument list and computes its hash. The resulting value is tracked in a
 -- Shake oracle, hence initiating rebuilts when the hash is changed (a hash
 -- change indicates changes in the build system).
+-- Note: we replace target sources with ["src"] for performance reasons -- to
+-- avoid storing long lists of source files passed to some builders (e.g. Ar)
+-- in the Shake database. This optimisation is harmless, because argument list
+-- constructors are assumed not to examine target sources, but only append them
+-- to argument lists where appropriate.
+-- TODO: enforce the above assumption via type trickery?
 checkArgsHash :: FullTarget -> Action ()
 checkArgsHash target = do
     tmp <- askOracle . ArgsHashKey $ target { sources = ["src"] } :: Action Int



More information about the ghc-commits mailing list