Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/080b210d9611204c0661a5dfda1f04148c8ab93a

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

commit 080b210d9611204c0661a5dfda1f04148c8ab93a
Author: bjorn <[email protected]>
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 =



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to