Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 8 additions & 9 deletions cabal-install/src/Distribution/Client/InLibrary.hs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import qualified Distribution.Simple.Configure as Cabal
import Distribution.Simple.Haddock (haddock_setupHooks)
import Distribution.Simple.Install (install_setupHooks)
import Distribution.Simple.LocalBuildInfo (mbWorkDirLBI)
import Distribution.Simple.PackageDescription (readGenericPackageDescription)
import Distribution.Simple.PackageIndex (InstalledPackageIndex)
import qualified Distribution.Simple.PreProcess as Cabal
import Distribution.Simple.Program.Db
Expand Down Expand Up @@ -67,7 +68,6 @@ data LibraryConfigureInputs = LibraryConfigureInputs
, localBuildConfig :: LBC.LocalBuildConfig
, packageDBStack :: PackageDBStackCWD
, packageDescription :: PD.PackageDescription
, gPackageDescription :: PD.GenericPackageDescription
, flagAssignment :: PD.FlagAssignment
, installedPkgIndex :: InstalledPackageIndex
}
Expand Down Expand Up @@ -121,13 +121,11 @@ libraryConfigureInputsFromElabPackage
}
, packageDBStack = elabBuildPackageDBStack pkg
, packageDescription = pkgDescr
, gPackageDescription = gpkgDescr
, flagAssignment = elabFlagAssignment pkg
, installedPkgIndex = ipi
}
where
pkgDescr = elabPkgDescription pkg
gpkgDescr = elabGPkgDescription pkg

configure
:: LibraryConfigureInputs
Expand All @@ -143,7 +141,6 @@ configure
, localBuildConfig = lbc0
, packageDBStack = packageDBs
, packageDescription = pkgDescr
, gPackageDescription = gpkgDescr
, flagAssignment = flagAssgn
, installedPkgIndex = ipi
}
Expand Down Expand Up @@ -196,6 +193,13 @@ configure
, benchmarksRequested = Cabal.fromFlag (Cabal.configBenchmarks cfg)
}

-- Read the .cabal file, as a Setup script would; the plan does not carry it.
pkgDescrFilePath <-
case Cabal.flagToMaybe $ Cabal.configCabalFilePath cfg of
Just pkgFile -> return pkgFile
Nothing -> relativeSymbolicPath <$> tryFindPackageDesc verbosity mbWorkDir
gpkgDescr <- readGenericPackageDescription verbosity mbWorkDir pkgDescrFilePath

-- NB: it's OK to discard constraints here: we already have a finalized PackageDescription
-- in hand, and we are using exact UnitIds for all dependencies (this corresponds
-- to using --exact-configuration and --dependency flags with the Setup CLI).
Expand Down Expand Up @@ -223,11 +227,6 @@ configure
packageDBs'
pkgInfo

-- Remember the .cabal filename if we know it.
pkgDescrFilePath <-
case Cabal.flagToMaybe $ Cabal.configCabalFilePath cfg of
Just pkgFile -> return pkgFile
Nothing -> relativeSymbolicPath <$> tryFindPackageDesc verbosity mbWorkDir
return $ lbi1{pkgDescrFile = Just pkgDescrFilePath}

--------------------------------------------------------------------------------
Expand Down
1 change: 0 additions & 1 deletion cabal-install/src/Distribution/Client/ProjectPlanning.hs
Original file line number Diff line number Diff line change
Expand Up @@ -2284,7 +2284,6 @@ elaborateInstallPlan
gdesc of
Right (desc, _) -> desc
Left _ -> error "Failed to finalizePD in elaborateSolverToCommon"
elabGPkgDescription = gdesc
elabFlagAssignment = flags
elabFlagDefaults =
PD.mkFlagAssignment
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -221,8 +221,6 @@ data ElaboratedConfiguredPackage = ElaboratedConfiguredPackage
, elabFlagDefaults :: Cabal.FlagAssignment
-- ^ The original default flag assignment, used only for reporting.
, elabPkgDescription :: Cabal.PackageDescription
, elabGPkgDescription :: Cabal.GenericPackageDescription
-- ^ Original 'GenericPackageDescription' (just used to report errors/warnings)
, elabPkgSourceLocation :: PackageLocation (Maybe FilePath)
-- ^ Where the package comes from, e.g. tarball, local dir etc. This
-- is not the same as where it may be unpacked to for the build.
Expand Down
9 changes: 9 additions & 0 deletions changelog.d/plan-cache-gpkg-description.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
synopsis: Plan caches no longer hold a GenericPackageDescription per component
packages: [cabal-install]
prs: 12464
issues: 12463
---

The in-library configure reads it from the package's `.cabal` file. With 80 public
sublibraries, `improved-plan` falls from 27 MB to 15 MB.
Loading