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
