[commit: Cabal] master: Make resolveDependenciesAux pure. (080b210)
Ian Lynagh
igloo at earth.li
Fri Jun 24 01:46:29 CEST 2011
Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/080b210d9611204c0661a5dfda1f04148c8ab93a
>---------------------------------------------------------------
commit 080b210d9611204c0661a5dfda1f04148c8ab93a
Author: bjorn <bjorn at bringert.net>
Date: Sun Oct 7 12:45:49 2007 +0000
Make resolveDependenciesAux pure.
>---------------------------------------------------------------
.../src/Network/Hackage/CabalInstall/BuildDep.hs | 7 ++++---
.../src/Network/Hackage/CabalInstall/Dependency.hs | 16 +++++++++-------
2 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/cabal-install/src/Network/Hackage/CabalInstall/BuildDep.hs b/cabal-install/src/Network/Hackage/CabalInstall/BuildDep.hs
index 753090b..d023fa3 100644
--- a/cabal-install/src/Network/Hackage/CabalInstall/BuildDep.hs
+++ b/cabal-install/src/Network/Hackage/CabalInstall/BuildDep.hs
@@ -12,7 +12,7 @@
-----------------------------------------------------------------------------
module Network.Hackage.CabalInstall.BuildDep where
-import Network.Hackage.CabalInstall.Config (findCompiler)
+import Network.Hackage.CabalInstall.Config (findCompiler, getKnownPackages)
import Network.Hackage.CabalInstall.Dependency (getPackages, getBuildDeps
, listInstalledPackages
, depToUnresolvedDep, resolveDependenciesAux)
@@ -30,8 +30,9 @@ buildDep :: ConfigFlags -> [String] -> [UnresolvedDependency] -> IO ()
buildDep cfg globalArgs deps
= do (comp,conf) <- findCompiler cfg
ipkgs <- listInstalledPackages cfg comp conf
- apkgs <- fmap getPackages (fmap (getBuildDeps ipkgs)
- (resolveDependenciesAux cfg comp conf ipkgs deps))
+ available <- getKnownPackages cfg
+ let apkgs = getPackages $ getBuildDeps ipkgs $
+ resolveDependenciesAux cfg comp conf ipkgs available deps
installPackages cfg comp globalArgs apkgs
-- | Takes the path to a .cabal file, and installs the build-dependencies listed there.
diff --git a/cabal-install/src/Network/Hackage/CabalInstall/Dependency.hs b/cabal-install/src/Network/Hackage/CabalInstall/Dependency.hs
index eb1fdcd..3f2023b 100644
--- a/cabal-install/src/Network/Hackage/CabalInstall/Dependency.hs
+++ b/cabal-install/src/Network/Hackage/CabalInstall/Dependency.hs
@@ -174,16 +174,17 @@ resolveDependenciesAux :: ConfigFlags
-> Compiler
-> ProgramConfiguration
-> [PackageIdentifier] -- ^Installed packages.
+ -> [PkgInfo] -- ^ Installable packages
-> [UnresolvedDependency] -- ^Dependencies in need of resolution.
- -> IO [ResolvedPackage]
-resolveDependenciesAux cfg comp conf installed deps
- = do knownPkgs <- getKnownPackages cfg
- let resolve dep
- = let rDep = getDependency comp installed knownPkgs dep
+ -> [ResolvedPackage]
+resolveDependenciesAux cfg comp conf installed available deps
+ = map resolve (filter (not . isInstalled installed . dependency) deps)
+ where resolve dep
+ = let rDep = getDependency comp installed available dep
in case resolvedData rDep of
Nothing -> resolvedDepToResolvedPkg (dependency dep,Nothing)
_ -> rDep
- return $ map resolve (filter (not . isInstalled installed . dependency) deps)
+
-- |Resolve some dependencies from the known packages while filtering out installed packages.
-- The result has been modified to put the dependencies in front of the packages.
@@ -194,7 +195,8 @@ resolveDependencies :: ConfigFlags
-> IO [ResolvedPackage]
resolveDependencies cfg comp conf deps
= do installed <- listInstalledPackages cfg comp conf
- fmap (flattenDepList installed) (resolveDependenciesAux cfg comp conf installed deps)
+ available <- getKnownPackages cfg
+ return $ flattenDepList installed $ resolveDependenciesAux cfg comp conf installed available deps
listInstalledPackages :: ConfigFlags -> Compiler -> ProgramConfiguration -> IO [PackageIdentifier]
listInstalledPackages cfg comp conf =
More information about the Cvs-libraries
mailing list