[commit: Cabal] master: modular resolver now standard (cb6c475)
Ian Lynagh
igloo at earth.li
Fri Nov 4 18:05:39 CET 2011
Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/cb6c475813eb54889532425f650dc773d6da6955
>---------------------------------------------------------------
commit cb6c475813eb54889532425f650dc773d6da6955
Author: Andres Loeh <andres at well-typed.com>
Date: Tue Jun 14 10:18:50 2011 +0000
modular resolver now standard
>---------------------------------------------------------------
cabal-install/Distribution/Client/Dependency.hs | 4 +-
.../Distribution/Client/Dependency/Modular.hs | 30 +++++++++++++------
2 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/cabal-install/Distribution/Client/Dependency.hs b/cabal-install/Distribution/Client/Dependency.hs
index 8788ea7..57d41c9 100644
--- a/cabal-install/Distribution/Client/Dependency.hs
+++ b/cabal-install/Distribution/Client/Dependency.hs
@@ -49,7 +49,7 @@ module Distribution.Client.Dependency (
) where
import Distribution.Client.Dependency.TopDown (topDownResolver)
-import Distribution.Client.Dependency.Modular ()
+import Distribution.Client.Dependency.Modular (modularResolver)
import qualified Distribution.Client.PackageIndex as PackageIndex
import qualified Distribution.Simple.PackageIndex as InstalledPackageIndex
import qualified Distribution.Client.InstallPlan as InstallPlan
@@ -268,7 +268,7 @@ standardInstallPolicy
-- ------------------------------------------------------------
defaultResolver :: DependencyResolver
-defaultResolver = topDownResolver
+defaultResolver = modularResolver
-- | Run the dependency solver.
--
diff --git a/cabal-install/Distribution/Client/Dependency/Modular.hs b/cabal-install/Distribution/Client/Dependency/Modular.hs
index 21f838a..a24690b 100644
--- a/cabal-install/Distribution/Client/Dependency/Modular.hs
+++ b/cabal-install/Distribution/Client/Dependency/Modular.hs
@@ -8,6 +8,14 @@ module Distribution.Client.Dependency.Modular where
-- and finally, we have to convert back the resulting install
-- plan.
+import Data.Map as M
+ ( empty )
+import Distribution.Client.Dependency.Modular.Assignment
+ ( Assignment, toCPs )
+import Distribution.Client.Dependency.Modular.Dependency
+ ( RevDepMap )
+import Distribution.Client.Dependency.Modular.ConfiguredConversion
+ ( convCP )
import Distribution.Client.Dependency.Modular.IndexConversion
( convPIs )
import Distribution.Client.Dependency.Modular.Log
@@ -21,16 +29,18 @@ import Distribution.Client.InstallPlan
import Distribution.System
( Platform(..) )
-modularSolver :: DependencyResolver
-modularSolver (Platform arch os) cid iidx sidx pprefs pcs pns =
- fmap undefined $ -- convert install plan
+modularResolver :: DependencyResolver
+modularResolver (Platform arch os) cid iidx sidx pprefs pcs pns =
+ fmap (uncurry postprocess) $ -- convert install plan
logToProgress $
defaultSolver idx gprefs uprefs goals gcs gfcs lfcs
where
- idx = convPIs os arch cid undefined sidx
- gprefs = undefined
- uprefs = undefined
- goals = undefined
- gcs = undefined
- gfcs = undefined
- lfcs = undefined
+ idx = convPIs os arch cid iidx sidx
+ gprefs = M.empty -- global preferences
+ uprefs = M.empty -- user preferences
+ goals = pns -- goals/targets
+ gcs = [] -- global constraints
+ gfcs = M.empty -- global flag choices
+ lfcs = M.empty -- local flag choices
+ postprocess :: Assignment -> RevDepMap -> [PlanPackage]
+ postprocess a rdm = map (convCP iidx sidx) (toCPs a rdm)
More information about the Cvs-libraries
mailing list