Skip to content

Commit 35e6455

Browse files
committed
Add support for Package Indices
1 parent 78342ee commit 35e6455

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

cabal-install/src/Distribution/Client/FetchUtils.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ import Distribution.Package
6060
( PackageId
6161
, packageName
6262
, packageVersion
63+
, pkgCompiler
6364
)
6465
import Distribution.Simple.Utils
6566
( debug
@@ -395,7 +396,7 @@ waitAsyncFetchPackage verbosity downloadMap srcloc =
395396
packageFile :: Repo -> PackageId -> FilePath
396397
packageFile repo pkgid =
397398
packageDir repo pkgid
398-
</> prettyShow pkgid
399+
</> prettyShow pkgid{pkgCompiler = Nothing}
399400
<.> "tar.gz"
400401

401402
-- | Generate the full path to the directory where the local cached copy of

cabal-install/src/Distribution/Client/ProjectPlanning.hs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,7 @@ import System.FilePath
244244
import qualified Text.PrettyPrint as Disp
245245

246246
import GHC.Stack (HasCallStack)
247+
-- import qualified Distribution.Solver.Types.PackageIndex as XXX
247248

248249
-- | Check that an 'ElaboratedConfiguredPackage' actually makes
249250
-- sense under some 'ElaboratedSharedConfig'.
@@ -833,13 +834,17 @@ rebuildInstallPlan
833834

834835
-- NOTE: sourcePkgDbs is the stuff that we pull from Hackage
835836
-- and similar Indices!
836-
(sourcePkgDb, tis, ar) <-
837+
(sourcePkgDb_, tis, ar) <-
837838
getSourcePackages
838839
verbosity
839840
withRepoCtx
840841
(solverSettingIndexState solverSettings)
841842
(solverSettingActiveRepos solverSettings)
842843

844+
-- FIXME: we are duplicating the index here, bad for memory use :-/
845+
let sourcePkgDb = sourcePkgDb_{packageIndex = (addCompilerIdToSrcPkg (compilerIdFor Build toolchains) <$> packageIndex sourcePkgDb_)
846+
<> (addCompilerIdToSrcPkg (compilerIdFor Host toolchains) <$> packageIndex sourcePkgDb_) }
847+
843848
pkgConfigDB <- getPkgConfigDb verbosity (toolchainProgramDb $ buildToolchain toolchains)
844849

845850
-- TODO: [code cleanup] it'd be better if the Compiler contained the
@@ -857,6 +862,7 @@ rebuildInstallPlan
857862
-- putStrLn $ unlines $ map (prettyShow . IPI.sourcePackageId) $ PI.allPackages hinstalledPkgIndex
858863
-- putStrLn "== localPackages"
859864
-- putStrLn $ unlines . map (prettyShow . srcpkgPackageId) $ [pkg | SpecificSourcePackage pkg <- localPackages]
865+
-- putStrLn $ unlines . take 20 $ map (prettyShow . srcpkgPackageId) (XXX.allPackages (packageIndex sourcePkgDb))
860866
planOrError <-
861867
foldProgress logMsg (pure . Left) (pure . Right) $
862868
planPackages
@@ -880,9 +886,9 @@ rebuildInstallPlan
880886
addCompilerToSourcePkg compilerId = map (addCompilerId compilerId)
881887
addCompilerId :: CompilerId -> PackageSpecifier UnresolvedSourcePackage -> PackageSpecifier UnresolvedSourcePackage
882888
addCompilerId compilerId (NamedPackage name props) = NamedPackage name props
883-
addCompilerId compilerId (SpecificSourcePackage pkg) = SpecificSourcePackage (f pkg)
884-
where f :: SourcePackage UnresolvedPkgLoc -> SourcePackage UnresolvedPkgLoc
885-
f pkg = pkg{srcpkgPackageId = (srcpkgPackageId pkg){pkgCompiler = Just compilerId}}
889+
addCompilerId compilerId (SpecificSourcePackage pkg) = SpecificSourcePackage (addCompilerIdToSrcPkg compilerId pkg)
890+
addCompilerIdToSrcPkg :: CompilerId -> SourcePackage UnresolvedPkgLoc -> SourcePackage UnresolvedPkgLoc
891+
addCompilerIdToSrcPkg compilerId pkg = pkg{srcpkgPackageId = (srcpkgPackageId pkg){pkgCompiler = Just compilerId}}
886892
localPackages = (addCompilerToSourcePkg (compilerIdFor Build toolchains) localPackages_)
887893
<> (addCompilerToSourcePkg (compilerIdFor Host toolchains) localPackages_)
888894
corePackageDbs :: Stage -> PackageDBStackCWD

0 commit comments

Comments
 (0)