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
