[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