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

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/1eff02589d2a5d94e8288d4c3061e4facedc738a

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

commit 1eff02589d2a5d94e8288d4c3061e4facedc738a
Author: Andres Loeh <[email protected]>
Date:   Wed Jun 15 07:03:43 2011 +0000

    New solver now respects preferences.

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

 cabal-install/Distribution/Client/Dependency.hs    |    2 +-
 .../Distribution/Client/Dependency/Modular.hs      |   18 +++++++++++-------
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/cabal-install/Distribution/Client/Dependency.hs 
b/cabal-install/Distribution/Client/Dependency.hs
index 57d41c9..953c99b 100644
--- a/cabal-install/Distribution/Client/Dependency.hs
+++ b/cabal-install/Distribution/Client/Dependency.hs
@@ -48,7 +48,7 @@ module Distribution.Client.Dependency (
     hideInstalledPackagesAllVersions,
   ) where
 
-import Distribution.Client.Dependency.TopDown (topDownResolver)
+-- import Distribution.Client.Dependency.TopDown (topDownResolver)
 import Distribution.Client.Dependency.Modular (modularResolver)
 import qualified Distribution.Client.PackageIndex as PackageIndex
 import qualified Distribution.Simple.PackageIndex as InstalledPackageIndex
diff --git a/cabal-install/Distribution/Client/Dependency/Modular.hs 
b/cabal-install/Distribution/Client/Dependency/Modular.hs
index 4a0c558..dad9bf6 100644
--- a/cabal-install/Distribution/Client/Dependency/Modular.hs
+++ b/cabal-install/Distribution/Client/Dependency/Modular.hs
@@ -9,7 +9,7 @@ module Distribution.Client.Dependency.Modular where
 -- plan.
 
 import Data.Map as M
-         ( empty, fromList )
+         ( fromList )
 import Distribution.Client.Dependency.Modular.Assignment
          ( Assignment, toCPs )
 import Distribution.Client.Dependency.Modular.Dependency
@@ -31,20 +31,24 @@ import Distribution.Client.InstallPlan
 import Distribution.System
          ( Platform(..) )
 
+-- | Ties the two worlds together: classic cabal-install vs. the modular
+-- solver. Performs the necessary translations before and after.
 modularResolver :: DependencyResolver
 modularResolver (Platform arch os) cid iidx sidx pprefs pcs pns =
   fmap (uncurry postprocess) $ -- convert install plan
-  logToProgress $
-  defaultSolver idx gprefs uprefs gcs pns gfcs
+  logToProgress $              -- convert log format into progress format
+  defaultSolver idx pprefs gcs pns
     where
+      -- Indices have to be converted into solver-specific uniform index.
       idx    = convPIs os arch cid iidx sidx
-      gprefs = M.empty  -- global preferences
-      uprefs = M.empty  -- user preferences
+      -- Constraints have to be converted into a finite map indexed by PN.
       gcs    = M.fromList (map (\ pc -> (pcName pc, pc)) pcs)
-                        -- user constraints
-      gfcs   = M.empty  -- global flag choices
+
+      -- Results have to be converted into an install plan.
       postprocess :: Assignment -> RevDepMap -> [PlanPackage]
       postprocess a rdm = map (convCP iidx sidx) (toCPs a rdm)
+
+      -- Helper function to extract the PN from a constraint.
       pcName :: PackageConstraint -> PN
       pcName (PackageConstraintVersion   pn _) = pn
       pcName (PackageConstraintInstalled pn  ) = pn



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

Reply via email to