@@ -177,7 +177,6 @@ data DepResolverParams = DepResolverParams
177177 , depResolverConstraints :: [LabeledPackageConstraint ]
178178 , depResolverPreferences :: [PackagePreference ]
179179 , depResolverPreferenceDefault :: PackagesPreferenceDefault
180- , depResolverInstalledPkgIndex :: InstalledPackageIndex
181180 , depResolverSourcePkgIndex :: PackageIndex. PackageIndex UnresolvedSourcePackage
182181 , depResolverReorderGoals :: ReorderGoals
183182 , depResolverCountConflicts :: CountConflicts
@@ -270,16 +269,14 @@ showPackagePreference (PackageStanzasPreference pn st) =
270269 prettyShow pn ++ " " ++ show st
271270
272271basicDepResolverParams
273- :: InstalledPackageIndex
274- -> PackageIndex. PackageIndex UnresolvedSourcePackage
272+ :: PackageIndex. PackageIndex UnresolvedSourcePackage
275273 -> DepResolverParams
276- basicDepResolverParams installedPkgIndex sourcePkgIndex =
274+ basicDepResolverParams sourcePkgIndex =
277275 DepResolverParams
278276 { depResolverTargets = Set. empty
279277 , depResolverConstraints = []
280278 , depResolverPreferences = []
281279 , depResolverPreferenceDefault = PreferLatestForSelected
282- , depResolverInstalledPkgIndex = installedPkgIndex
283280 , depResolverSourcePkgIndex = sourcePkgIndex
284281 , depResolverReorderGoals = ReorderGoals False
285282 , depResolverCountConflicts = CountConflicts True
@@ -477,33 +474,20 @@ addSourcePackages pkgs params =
477474 pkgs
478475 }
479476
477+ -- FIXME this actually works by package name, not by package id
480478hideInstalledPackagesSpecificBySourcePackageId
481479 :: [PackageId ]
482480 -> DepResolverParams
483481 -> DepResolverParams
484- hideInstalledPackagesSpecificBySourcePackageId pkgids params =
485- -- TODO: this should work using exclude constraints instead
486- params
487- { depResolverInstalledPkgIndex =
488- foldl'
489- (flip InstalledPackageIndex. deleteSourcePackageId)
490- (depResolverInstalledPkgIndex params)
491- pkgids
492- }
493-
494- hideInstalledPackagesAllVersions
495- :: [PackageName ]
496- -> DepResolverParams
497- -> DepResolverParams
498- hideInstalledPackagesAllVersions pkgnames params =
499- -- TODO: this should work using exclude constraints instead
500- params
501- { depResolverInstalledPkgIndex =
502- foldl'
503- (flip InstalledPackageIndex. deletePackageName)
504- (depResolverInstalledPkgIndex params)
505- pkgnames
506- }
482+ hideInstalledPackagesSpecificBySourcePackageId pkgids =
483+ addConstraints
484+ [ LabeledPackageConstraint
485+ (PackageConstraint (ScopeAnyQualifier name) PackagePropertySource )
486+ -- FIXME
487+ ConstraintSourceUnknown
488+ | pkgId <- pkgids
489+ , let name = packageName pkgId
490+ ]
507491
508492-- | Remove upper bounds in dependencies using the policy specified by the
509493-- 'AllowNewer' argument (all/some/none).
@@ -685,17 +669,24 @@ upgradeDependencies = setPreferenceDefault PreferAllLatest
685669
686670reinstallTargets :: DepResolverParams -> DepResolverParams
687671reinstallTargets params =
688- hideInstalledPackagesAllVersions (Set. toList $ depResolverTargets params) params
672+ addConstraints
673+ [ LabeledPackageConstraint
674+ ( PackageConstraint
675+ (ScopeAnyQualifier pkgName)
676+ PackagePropertySource
677+ )
678+ ConstraintSourceProfiledDynamic
679+ | pkgName <- Set. toList (depResolverTargets params)
680+ ]
681+ params
689682
690683-- | A basic solver policy on which all others are built.
691684basicInstallPolicy
692- :: InstalledPackageIndex
693- -> SourcePackageDb
685+ :: SourcePackageDb
694686 -> [PackageSpecifier UnresolvedSourcePackage ]
695687 -> DepResolverParams
696688basicInstallPolicy
697- installedPkgIndex
698- (SourcePackageDb sourcePkgIndex sourcePkgPrefs)
689+ (SourcePackageDb sourcePkgIndex sourcePkgPrefs)
699690 pkgSpecifiers =
700691 addPreferences
701692 [ PackageVersionPreference name ver
@@ -710,22 +701,19 @@ basicInstallPolicy
710701 . addSourcePackages
711702 [pkg | SpecificSourcePackage pkg <- pkgSpecifiers]
712703 $ basicDepResolverParams
713- installedPkgIndex
714704 sourcePkgIndex
715705
716706-- | The policy used by all the standard commands, install, fetch, freeze etc
717707-- (but not the v2-build and related commands).
718708--
719709-- It extends the 'basicInstallPolicy' with a policy on setup deps.
720710standardInstallPolicy
721- :: InstalledPackageIndex
722- -> SourcePackageDb
711+ :: SourcePackageDb
723712 -> [PackageSpecifier UnresolvedSourcePackage ]
724713 -> DepResolverParams
725- standardInstallPolicy installedPkgIndex sourcePkgDb pkgSpecifiers =
714+ standardInstallPolicy sourcePkgDb pkgSpecifiers =
726715 addDefaultSetupDependencies mkDefaultSetupDeps $
727716 basicInstallPolicy
728- installedPkgIndex
729717 sourcePkgDb
730718 pkgSpecifiers
731719 where
@@ -774,9 +762,10 @@ resolveDependencies
774762 :: Platform
775763 -> CompilerInfo
776764 -> Maybe PkgConfigDb
765+ -> InstalledPackageIndex
777766 -> DepResolverParams
778767 -> Progress String String SolverInstallPlan
779- resolveDependencies platform comp pkgConfigDB params =
768+ resolveDependencies platform comp pkgConfigDB installedPkgIndex params =
780769 Step (showDepResolverParams finalparams) $
781770 fmap (validateSolverResult platform comp) $
782771 runSolver
@@ -810,7 +799,6 @@ resolveDependencies platform comp pkgConfigDB params =
810799 constraints
811800 prefs
812801 defpref
813- installedPkgIndex
814802 sourcePkgIndex
815803 reordGoals
816804 cntConflicts
@@ -1122,14 +1110,14 @@ configuredPackageProblems
11221110-- It simply means preferences for installed packages will be ignored.
11231111resolveWithoutDependencies
11241112 :: DepResolverParams
1113+ -> InstalledPackageIndex
11251114 -> Either [ResolveNoDepsError ] [UnresolvedSourcePackage ]
11261115resolveWithoutDependencies
11271116 ( DepResolverParams
11281117 targets
11291118 constraints
11301119 prefs
11311120 defpref
1132- installedPkgIndex
11331121 sourcePkgIndex
11341122 _reorderGoals
11351123 _countConflicts
@@ -1145,7 +1133,7 @@ resolveWithoutDependencies
11451133 _onlyConstrained
11461134 _order
11471135 _verbosity
1148- ) =
1136+ ) installedPkgIndex =
11491137 collectEithers $ map selectPackage (Set. toList targets)
11501138 where
11511139 selectPackage :: PackageName -> Either ResolveNoDepsError UnresolvedSourcePackage
0 commit comments