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

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/3729ca23a7ccf226eb1662cb4205f8784d40eecd

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

commit 3729ca23a7ccf226eb1662cb4205f8784d40eecd
Author: Duncan Coutts <[email protected]>
Date:   Mon May 17 11:16:24 2010 +0000

    Rearrange dependency resolver code slightly

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

 cabal-install/Distribution/Client/Dependency.hs |   45 +++++++++--------------
 cabal-install/Distribution/Client/Install.hs    |    8 ++---
 2 files changed, 20 insertions(+), 33 deletions(-)

diff --git a/cabal-install/Distribution/Client/Dependency.hs 
b/cabal-install/Distribution/Client/Dependency.hs
index 0d74d95..b0dad9c 100644
--- a/cabal-install/Distribution/Client/Dependency.hs
+++ b/cabal-install/Distribution/Client/Dependency.hs
@@ -119,8 +119,9 @@ resolveDependencies :: Platform
 resolveDependencies platform comp installed available
                     preferences constraints targets =
   foldProgress (flip const) Left Right $
-    resolveDependenciesWithProgress platform comp installed available
-                                    preferences constraints targets
+    resolveDependenciesWithProgress
+      platform comp installed available
+      preferences constraints targets
 
 resolveDependenciesWithProgress :: Platform
                                 -> CompilerId
@@ -130,30 +131,8 @@ resolveDependenciesWithProgress :: Platform
                                 -> [PackageConstraint]
                                 -> [PackageName]
                                 -> Progress String String InstallPlan
-resolveDependenciesWithProgress platform comp installed =
-  dependencyResolver defaultResolver platform comp installed
-
-hideBrokenPackages :: PackageFixedDeps p => PackageIndex p -> PackageIndex p
-hideBrokenPackages index =
-    check (null . PackageIndex.brokenPackages)
-  . foldr (PackageIndex.deletePackageId . packageId) index
-  . PackageIndex.reverseDependencyClosure index
-  . map (packageId . fst)
-  $ PackageIndex.brokenPackages index
-  where
-    check p x = assert (p x) x
-
-dependencyResolver
-  :: DependencyResolver
-  -> Platform -> CompilerId
-  -> PackageIndex InstalledPackage
-  -> PackageIndex AvailablePackage
-  -> PackagesPreference
-  -> [PackageConstraint]
-  -> [PackageName]
-  -> Progress String String InstallPlan
-dependencyResolver resolver platform comp installed available
-                            pref constraints targets
+resolveDependenciesWithProgress platform comp installed available
+                                pref constraints targets
     -- TODO: the top down resolver chokes on the base constraints
     -- below when there are no targets and thus no dep on base.
     -- Need to refactor contraints separate from needing packages.
@@ -171,8 +150,8 @@ dependencyResolver resolver platform comp installed 
available
         , not (null (PackageIndex.lookupPackageName installed pkgname)) ]
       preferences = interpretPackagesPreference (Set.fromList targets) pref
    in fmap toPlan
-    $ resolver platform comp installed' available
-               preferences (extraConstraints ++ constraints) targets
+    $ defaultResolver platform comp installed' available
+                      preferences (extraConstraints ++ constraints) targets
 
   where
     toPlan pkgs =
@@ -183,6 +162,16 @@ dependencyResolver resolver platform comp installed 
available
           : "The proposed (invalid) plan contained the following problems:"
           : map InstallPlan.showPlanProblem problems
 
+hideBrokenPackages :: PackageFixedDeps p => PackageIndex p -> PackageIndex p
+hideBrokenPackages index =
+    check (null . PackageIndex.brokenPackages)
+  . foldr (PackageIndex.deletePackageId . packageId) index
+  . PackageIndex.reverseDependencyClosure index
+  . map (packageId . fst)
+  $ PackageIndex.brokenPackages index
+  where
+    check p x = assert (p x) x
+
 -- | Give an interpretation to the global 'PackagesPreference' as
 --  specific per-package 'PackageVersionPreference'.
 --
diff --git a/cabal-install/Distribution/Client/Install.hs 
b/cabal-install/Distribution/Client/Install.hs
index 6fc4a38..b75be4a 100644
--- a/cabal-install/Distribution/Client/Install.hs
+++ b/cabal-install/Distribution/Client/Install.hs
@@ -237,11 +237,9 @@ installWithPlanner verbosity
   installed   <- getInstalledPackages verbosity comp packageDBs conf
   available   <- getAvailablePackages verbosity repos
 
-  progress    <- planner installed available
   notice verbosity "Resolving dependencies..."
-  installPlan <- either die return
-             =<< foldProgress (\message rest -> info verbosity message >> rest)
-                              (return . Left) (return . Right) progress
+  installPlan <- foldProgress logMsg die return =<< planner installed available
+
   printPlanMessages verbosity installed installPlan dryRun
 
   unless dryRun $
@@ -250,7 +248,7 @@ installWithPlanner verbosity
 
   where
     dryRun = fromFlag (installDryRun installFlags)
-
+    logMsg message rest = info verbosity message >> rest
 
 -- ------------------------------------------------------------
 -- * Installation planning



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

Reply via email to