[commit: ghc] wip/nfs-locking: Minor revisions (add comments, move Condition to Oracles.hs). (618d90d)
git at git.haskell.org
git at git.haskell.org
Thu Oct 26 23:45:11 UTC 2017
Repository : ssh://git@git.haskell.org/ghc
On branch : wip/nfs-locking
Link : http://ghc.haskell.org/trac/ghc/changeset/618d90dc2bc41256a18c42776d701a9a4fc23d26/ghc
>---------------------------------------------------------------
commit 618d90dc2bc41256a18c42776d701a9a4fc23d26
Author: Andrey Mokhov <andrey.mokhov at gmail.com>
Date: Sun Dec 28 03:33:55 2014 +0000
Minor revisions (add comments, move Condition to Oracles.hs).
>---------------------------------------------------------------
618d90dc2bc41256a18c42776d701a9a4fc23d26
src/Base.hs | 4 +---
src/Oracles.hs | 21 +++++++++++++--------
2 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/src/Base.hs b/src/Base.hs
index e44b3bb..b4ea8cb 100644
--- a/src/Base.hs
+++ b/src/Base.hs
@@ -7,7 +7,7 @@ module Base (
module Data.Monoid,
module Data.List,
Stage (..),
- Args, arg, Condition,
+ Args, arg,
joinArgs, joinArgsWithSpaces,
filterOut,
) where
@@ -22,8 +22,6 @@ data Stage = Stage0 | Stage1 | Stage2 | Stage3 deriving (Eq, Enum)
type Args = Action [String]
-type Condition = Action Bool
-
instance Monoid a => Monoid (Action a) where
mempty = return mempty
mappend p q = mappend <$> p <*> q
diff --git a/src/Oracles.hs b/src/Oracles.hs
index e03d6a3..9ceb121 100644
--- a/src/Oracles.hs
+++ b/src/Oracles.hs
@@ -1,5 +1,5 @@
{-# LANGUAGE TypeFamilies, FlexibleInstances, FlexibleContexts, MultiParamTypeClasses #-}
-{-# LANGUAGE DeriveDataTypeable, GeneralizedNewtypeDeriving, DeriveGeneric, ConstraintKinds #-}
+{-# LANGUAGE DeriveDataTypeable, GeneralizedNewtypeDeriving, ConstraintKinds #-}
module Oracles (
module Control.Monad,
@@ -8,7 +8,7 @@ module Oracles (
Builder (..), Flag (..), Option (..),
path, with, run, argPath,
option, argOption,
- test, when, unless, not, (&&), (||),
+ Condition, test, when, unless, not, (&&), (||),
oracleRules
) where
@@ -50,7 +50,7 @@ path builder = do
if (windows && "/" `isPrefixOf` cfgPathExe)
then do
root <- option Root
- return $ root ++ cfgPathExe
+ return $ root ++ (drop 1 $ cfgPathExe)
else
return cfgPathExe
@@ -59,19 +59,22 @@ argPath builder = do
path <- path builder
arg [path]
--- Explain!
--- TODO: document change in behaviour (LaxDeps)
+-- When LaxDeps flag is set (by adding 'lax-dependencies = YES' to user.config),
+-- dependencies on the GHC executable are turned into order-only dependencies to
+-- avoid needless recompilation when making changes to GHC's sources. In certain
+-- situations this can lead to build failures, in which case you should reset
+-- the flag (at least temporarily).
needBuilder :: Builder -> Action ()
needBuilder ghc @ (Ghc stage) = do
target <- path ghc
- laxDeps <- test LaxDeps -- TODO: get rid of test?
+ laxDeps <- test LaxDeps
if laxDeps then orderOnly [target] else need [target]
needBuilder builder = do
target <- path builder
need [target]
--- 'with Gcc' generates --with-gcc=/usr/bin/gcc and needs it
+-- Action 'with Gcc' returns an argument '--with-gcc=/path/to/gcc' and needs the builder
with :: Builder -> Args
with builder = do
let prefix = case builder of
@@ -163,7 +166,7 @@ test flag = do
Validating -> ("validating" , False)
let defaultString = if defaultValue then "YES" else "NO"
value <- askConfigWithDefault key $
- do putLoud $ "\nFlag '"
+ do putLoud $ "\nFlag '" -- TODO: Give the warning *only once* per key
++ key
++ "' not set in configuration files. "
++ "Proceeding with default value '"
@@ -172,6 +175,8 @@ test flag = do
return defaultString
return $ value == "YES"
+type Condition = Action Bool
+
class ToCondition a where
toCondition :: a -> Condition
More information about the ghc-commits
mailing list