on master help sign in
Remove warnings
commit1bc90402b2d6e96a2ed42ae05401763ec05466d1 authorMichael Snoyman <michael@snoyman.com> dateMon 28 Jan 2013, 11:49 (14 years ago) parentc46a308
6 files changed+9−90
Stackage/Build.hs+5−49 Stackage/BuildPlan.hs+1−2 Stackage/CheckCabalVersion.hs+1−19 Stackage/InstallInfo.hs−1 Stackage/Select.hs−17 Stackage/Util.hs+2−2
Stackage/Build.hs+5−49
@@ -4,31 +4,17 @@ module Stackage.Build
44 , BuildSettings (..)
55 ) where
66
7−import Control.Exception (assert)
8−import Control.Monad (unless, when)
9−import qualified Data.Map as Map
10−import Data.Maybe (mapMaybe)
11−import Data.Set (empty)
12−import qualified Data.Set as Set
13−import Distribution.Text (simpleParse)
14−import Distribution.Version (withinRange)
7+import Control.Monad (unless)
158import Prelude hiding (pi)
16−import Stackage.CheckPlan
179import Stackage.Config
1810import Stackage.InstallInfo
19−import Stackage.Tarballs
20−import Stackage.Test
2111import Stackage.Types
2212import Stackage.Util
23−import System.Directory (canonicalizePath,
24− createDirectoryIfMissing,
25− doesDirectoryExist)
2613import System.Exit (ExitCode (ExitSuccess), exitWith)
2714import System.IO (IOMode (WriteMode), hPutStrLn,
2815 withBinaryFile)
29−import System.Process (rawSystem, readProcess, runProcess,
16+import System.Process (rawSystem, runProcess,
3017 waitForProcess)
31−import Stackage.Select (select)
3218import Stackage.CheckCabalVersion (checkCabalVersion)
3319
3420defaultBuildSettings :: BuildSettings
@@ -74,10 +60,10 @@ build settings' bp = do
7460 ]
7561 hPutStrLn handle ("cabal " ++ unwords (map (\s -> "'" ++ s ++ "'") args))
7662 runCabal args handle
77− ec1 <- waitForProcess ph1
78− unless (ec1 == ExitSuccess) $ do
63+ ec2 <- waitForProcess ph1
64+ unless (ec2 == ExitSuccess) $ do
7965 putStrLn "Building of build tools failed, please see build-tools.log"
80− exitWith ec1
66+ exitWith ec2
8167 putStrLn "Build tools built"
8268
8369 ph <- withBinaryFile "build.log" WriteMode $ \handle -> do
@@ -96,33 +82,3 @@ build settings' bp = do
9682 unless (ec == ExitSuccess) $ do
9783 putStrLn "Build failed, please see build.log"
9884 exitWith ec
99−
100−-- | Get all of the build tools required.
101−iiBuildTools :: InstallInfo -> [String]
102−iiBuildTools InstallInfo { iiPackageDB = PackageDB m, iiPackages = packages } =
103− -- FIXME possible improvement: track the dependencies between the build
104− -- tools themselves, and install them in the correct order.
105− map unPackageName
106− $ filter (flip Set.notMember coreTools)
107− $ mapMaybe (flip Map.lookup buildToolMap)
108− $ Set.toList
109− $ Set.unions
110− $ map piBuildTools
111− $ Map.elems
112− $ Map.filterWithKey isSelected m
113− where
114− unPackageName (PackageName pn) = pn
115− isSelected name _ = name `Set.member` selected
116− selected = Set.fromList $ Map.keys packages
117−
118− -- Build tools shipped with GHC which we should not attempt to build
119− -- ourselves.
120− coreTools = Set.fromList $ map PackageName $ words "hsc2hs"
121−
122− -- The map from build tool name to the package it comes from.
123− buildToolMap = Map.unions $ map toBuildToolMap $ Map.toList m
124− toBuildToolMap :: (PackageName, PackageInfo) -> Map Executable PackageName
125− toBuildToolMap (pn, pi) = Map.unions
126− $ map (flip Map.singleton pn)
127− $ Set.toList
128− $ piExecs pi
Stackage/BuildPlan.hs+1−2
@@ -9,8 +9,6 @@ import Stackage.Types
99import qualified Data.Map as Map
1010import qualified Data.Set as Set
1111import Distribution.Text (simpleParse, display)
12−import Distribution.Package (PackageName (..))
13−import Control.Applicative ((<$>), (<*>))
1412
1513readBuildPlan :: FilePath -> IO BuildPlan
1614readBuildPlan fp = do
@@ -76,6 +74,7 @@ takeWord s =
7674 if null s'
7775 then Right (x', y)
7876 else Left $ "Unconsumed input in takeWord call"
77+ (_, []) -> Left "takeWord failed"
7978
8079instance AsString SelectedPackageInfo where
8180 toString SelectedPackageInfo {..} = unwords
Stackage/CheckCabalVersion.hs+1−19
@@ -3,28 +3,10 @@ module Stackage.CheckCabalVersion
33 ) where
44
55import Control.Exception (assert)
6−import Control.Monad (unless, when)
7−import qualified Data.Map as Map
8−import Data.Maybe (mapMaybe)
9−import Data.Set (empty)
10−import qualified Data.Set as Set
116import Distribution.Text (simpleParse)
127import Distribution.Version (withinRange)
138import Prelude hiding (pi)
14−import Stackage.Config
15−import Stackage.InstallInfo
16−import Stackage.Tarballs
17−import Stackage.Test
18−import Stackage.Types
19−import Stackage.Util
20−import System.Directory (canonicalizePath,
21− createDirectoryIfMissing,
22− doesDirectoryExist)
23−import System.Exit (ExitCode (ExitSuccess), exitWith)
24−import System.IO (IOMode (WriteMode), hPutStrLn,
25− withBinaryFile)
26−import System.Process (rawSystem, readProcess, runProcess,
27− waitForProcess)
9+import System.Process (readProcess)
2810
2911checkCabalVersion :: IO String
3012checkCabalVersion = do
Stackage/InstallInfo.hs−1
@@ -4,7 +4,6 @@ module Stackage.InstallInfo
44 , bpPackageList
55 ) where
66
7−import Control.Arrow ((&&&))
87import Control.Monad (forM_)
98import qualified Data.Map as Map
109import qualified Data.Set as Set
Stackage/Select.hs−17
@@ -3,31 +3,15 @@ module Stackage.Select
33 , defaultSelectSettings
44 ) where
55
6−import Control.Exception (assert)
7−import Control.Monad (unless, when)
86import qualified Data.Map as Map
97import Data.Maybe (mapMaybe)
108import Data.Set (empty)
119import qualified Data.Set as Set
12−import Distribution.Text (simpleParse)
13−import Distribution.Version (withinRange)
1410import Prelude hiding (pi)
15−import Stackage.CheckPlan
1611import Stackage.Config
1712import Stackage.InstallInfo
18−import Stackage.Tarballs
19−import Stackage.Test
2013import Stackage.Types
2114import Stackage.Util
22−import System.Directory (canonicalizePath,
23− createDirectoryIfMissing,
24− doesDirectoryExist)
25−import System.Exit (ExitCode (ExitSuccess), exitWith)
26−import System.IO (IOMode (WriteMode), hPutStrLn,
27− withBinaryFile)
28−import System.Process (rawSystem, readProcess, runProcess,
29− waitForProcess)
30−import Stackage.BuildPlan
3115
3216defaultSelectSettings :: SelectSettings
3317defaultSelectSettings = SelectSettings
@@ -66,7 +50,6 @@ iiBuildTools InstallInfo { iiPackageDB = PackageDB m, iiPackages = packages } =
6650 $ Map.elems
6751 $ Map.filterWithKey isSelected m
6852 where
69− unPackageName (PackageName pn) = pn
7053 isSelected name _ = name `Set.member` selected
7154 selected = Set.fromList $ Map.keys packages
7255
Stackage/Util.hs+2−2
@@ -20,8 +20,8 @@ import qualified Distribution.Package as P
2020import qualified Distribution.PackageDescription as PD
2121import Distribution.License (License (..))
2222import System.Directory (canonicalizePath,
23− createDirectoryIfMissing,
24− doesDirectoryExist)
23+ createDirectoryIfMissing
24+ )
2525
2626-- | Allow only packages with permissive licenses.
2727allowPermissive :: [String] -- ^ list of explicitly allowed packages