@@ -388,7 +388,7 @@ rebuildProjectConfig
388388      return 
389389        ( configPath
390390        , distProjectFile " " 
391-         , toolchainCacheKey 
391+         , projectConfigToolchain (projectConfigShared cliConfig) 
392392        , progsearchpath
393393        , packageConfigProgramPaths
394394        , packageConfigProgramPathExtra
@@ -433,15 +433,6 @@ rebuildProjectConfig
433433
434434    return  (projectConfig <>  cliConfig, localPackages)
435435    where 
436-       toolchainCacheKey = 
437-         ( projectConfigBuildHcFlavor (projectConfigShared cliConfig)
438-         , projectConfigBuildHcPath (projectConfigShared cliConfig)
439-         , projectConfigBuildHcPkg (projectConfigShared cliConfig)
440-         , projectConfigHcFlavor (projectConfigShared cliConfig)
441-         , projectConfigHcPath (projectConfigShared cliConfig)
442-         , projectConfigHcPkg (projectConfigShared cliConfig)
443-         )
444- 
445436      PackageConfig {packageConfigProgramPaths, packageConfigProgramPathExtra} = 
446437        projectConfigLocalPackages cliConfig
447438
@@ -491,22 +482,24 @@ configureToolchains
491482    }
492483  ProjectConfig 
493484    { projectConfigShared = 
494-       ProjectConfigShared 
495-         { projectConfigHcFlavor
496-         , projectConfigHcPath
497-         , projectConfigHcPkg
498-         , projectConfigBuildHcFlavor
499-         , projectConfigBuildHcPath
500-         , projectConfigBuildHcPkg
485+       ProjectConfigShared  {
486+           projectConfigToolchain =  ProjectConfigToolchain 
487+             { projectConfigHcFlavor
488+             , projectConfigHcPath
489+             , projectConfigHcPkg
490+             , projectConfigPackageDBs
491+             , projectConfigBuildHcFlavor
492+             , projectConfigBuildHcPath
493+             , projectConfigBuildHcPkg
494+             , projectConfigBuildPackageDBs
495+             }
501496        }
502497    , projectConfigLocalPackages = 
503498      projectConfigLocalPackages@ PackageConfig 
504499        { packageConfigProgramPaths
505500        , packageConfigProgramPathExtra
506501        }
507502    } =  do 
508-     let  fileMonitorCompiler =  newFileMonitor $  distProjectCacheFile " compiler" 
509- 
510503    progsearchpath <-  liftIO $  getSystemSearchPath
511504
512505    rerunIfChanged
@@ -523,9 +516,9 @@ configureToolchains
523516        defdb <-  liftIO $  resolveProgramDb verbosity projectConfigLocalPackages
524517
525518        buildToolchain <-  do 
526-           (toolchainCompiler, toolchainPlatform, toolchainProgramDb) <- 
519+           (toolchainCompiler, toolchainPlatform, toolchainProgramDb) <-   
527520            liftIO $  Cabal. configCompilerEx buildHcFlavor buildHcPath buildHcPkg defdb verbosity
528- 
521+            let  toolchainPackageDBs  =   Cabal. interpretPackageDbFlags  False  projectConfigBuildPackageDBs 
529522          --  Note that we added the user-supplied program locations and args
530523          --  for /all/ programs, not just those for the compiler prog and
531524          --  compiler-related utils. In principle we don't know which programs
@@ -538,6 +531,7 @@ configureToolchains
538531        hostToolchain <-  do 
539532          (toolchainCompiler, toolchainPlatform, toolchainProgramDb) <- 
540533            liftIO $  Cabal. configCompilerEx hostHcFlavor hostHcPath hostHcPkg defdb verbosity
534+           let  toolchainPackageDBs =  Cabal. interpretPackageDbFlags False   projectConfigPackageDBs
541535
542536          --  Note that we added the user-supplied program locations and args
543537          --  for /all/ programs, not just those for the compiler prog and
@@ -550,6 +544,8 @@ configureToolchains
550544
551545        return  $  Staged  (\ case  Build  ->  buildToolchain; Host  ->  hostToolchain)
552546    where 
547+       fileMonitorCompiler =  newFileMonitor $  distProjectCacheFile " compiler" 
548+ 
553549      hostHcFlavor =  flagToMaybe projectConfigHcFlavor
554550      hostHcPath =  flagToMaybe projectConfigHcPath
555551      hostHcPkg =  flagToMaybe projectConfigHcPkg
@@ -793,7 +789,7 @@ rebuildInstallPlan
793789                  (solverSettingIndexState solverSettings)
794790                  (solverSettingActiveRepos solverSettings)
795791
796-               ipis <-  for toolchains (\ t  ->   getInstalledPackages verbosity t corePackageDbs )
792+               ipis <-  for toolchains (getInstalledPackages verbosity)
797793              pkgConfigDbs <-  for toolchains (getPkgConfigDb verbosity .  toolchainProgramDb)
798794
799795              --  TODO: [code cleanup] it'd be better if the Compiler contained the
@@ -821,9 +817,11 @@ rebuildInstallPlan
821817                    dieWithException verbosity $  PhaseRunSolverErr  msg
822818                  Right   plan ->  return  (plan, ipis, pkgConfigDbs, tis, ar)
823819          where 
824-             corePackageDbs  ::  PackageDBStackCWD 
825-             corePackageDbs = 
826-               Cabal. interpretPackageDbFlags False   (projectConfigPackageDBs projectConfigShared)
820+             --  corePackageDbs :: Staged PackageDBStackCWD
821+             --  corePackageDbs = 
822+             --    Cabal.interpretPackageDbFlags False <$> Staged (\case
823+             --      Host -> projectConfigPackageDBs projectConfigShared
824+             --      Build -> projectConfigBuildPackageDBs projectConfigShared)
827825
828826            withRepoCtx  ::  (RepoContext  ->  IO   a ) ->  IO   a 
829827            withRepoCtx = 
@@ -1037,25 +1035,25 @@ programsMonitorFiles progdb =
10371035getInstalledPackages
10381036  ::  Verbosity 
10391037  ->  Toolchain 
1040-   ->  PackageDBStackCWD 
10411038  ->  Rebuild  InstalledPackageIndex 
1042- getInstalledPackages verbosity Toolchain {toolchainCompiler, toolchainPlatform, toolchainProgramDb} packagedbs  =  do 
1039+ getInstalledPackages verbosity Toolchain {.. }  =  do 
10431040  monitorFiles
10441041    .  map  monitorFileOrDirectory
10451042    =<<  liftIO
10461043      ( IndexUtils. getInstalledPackagesMonitorFiles
10471044          verbosity
10481045          toolchainCompiler
10491046          Nothing  --  use ambient working directory
1050-           (coercePackageDBStack packagedbs )
1047+           (coercePackageDBStack toolchainPackageDBs )
10511048          toolchainProgramDb
10521049          toolchainPlatform
10531050      )
10541051  liftIO $ 
1055-     IndexUtils . getInstalledPackages
1056-       verbosity
1052+     Cabal . getInstalledPackages
1053+       (lessVerbose  verbosity) 
10571054      toolchainCompiler
1058-       packagedbs
1055+       Nothing 
1056+       (coercePackageDBStack toolchainPackageDBs)
10591057      toolchainProgramDb
10601058
10611059{- 
@@ -2141,6 +2139,7 @@ elaborateInstallPlan
21412139            elabCompiler =  toolchainCompiler (getStage toolchains stage)
21422140            elabPlatform =  toolchainPlatform (getStage toolchains stage)
21432141            elabProgramDb =  toolchainProgramDb (getStage toolchains stage)
2142+             elabPackageDbs =  toolchainPackageDBs (getStage toolchains stage)
21442143
21452144            elabPkgDescription =  case  PD. finalizePD
21462145              flags
@@ -2209,7 +2208,7 @@ elaborateInstallPlan
22092208              if  shouldBuildInplaceOnly pkg
22102209                then  BuildInplaceOnly  OnDisk 
22112210                else  BuildAndInstall 
2212-             elabPackageDbs  =  projectConfigPackageDBs sharedPackageConfig 
2211+ 
22132212            elabBuildPackageDBStack =  buildAndRegisterDbs
22142213            elabRegisterPackageDBStack =  buildAndRegisterDbs
22152214
@@ -2225,7 +2224,7 @@ elaborateInstallPlan
22252224            inplacePackageDbs =  corePackageDbs ++  [distPackageDB (compilerId elabCompiler)]
22262225
22272226            corePackageDbs =  
2228-               Cabal. interpretPackageDbFlags False   (projectConfigPackageDBs sharedPackageConfig)
2227+               Cabal. interpretPackageDbFlags False   (projectConfigPackageDBs (projectConfigToolchain  sharedPackageConfig) )
22292228              ++  [storePackageDB storeDirLayout elabCompiler]
22302229
22312230            elabInplaceBuildPackageDBStack =  inplacePackageDbs
@@ -4377,7 +4376,7 @@ packageHashConfigInputs sharedConfig pkg =
43774376    , pkgHashExtraIncludeDirs =  elabExtraIncludeDirs
43784377    , pkgHashProgPrefix =  elabProgPrefix
43794378    , pkgHashProgSuffix =  elabProgSuffix
4380-     , pkgHashPackageDbs =  elabPackageDbs
4379+     , pkgHashPackageDbs =  map   Just   elabPackageDbs
43814380    , pkgHashDocumentation =  elabBuildHaddocks
43824381    , pkgHashHaddockHoogle =  elabHaddockHoogle
43834382    , pkgHashHaddockHtml =  elabHaddockHtml
0 commit comments