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
13 changes: 12 additions & 1 deletion cabal-install/src/Distribution/Client/ProjectPlanning.hs
Original file line number Diff line number Diff line change
Expand Up @@ -2379,6 +2379,17 @@ elaborateInstallPlan
]
)
(perPkgOptionMapMappend pkgid packageConfigProgramArgs)
elabNormalisedProgramArgs =
Map.unionWith
(++)
( Map.fromList
[ (programId prog, args)
| prog <- configuredPrograms compilerprogdb
, let args = programOverrideArgs $ addHaddockIfDocumentationEnabled prog
, not (null args)
]
)
(perPkgOptionMapMappend pkgid packageConfigProgramArgs)
Comment on lines +2382 to +2392
Copy link

Copilot AI Oct 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The elabNormalisedProgramArgs field is being initialized with the same logic as elabProgramArgs (lines 2382-2392), but it should be initialized with the result of normaliseConfiguredPackage applied to the original args. Currently, both fields contain identical unfiltered arguments at initialization, meaning normalization isn't actually happening. The normalized version should be computed after creating the package record by applying the lookupFilter logic from normaliseConfiguredPackage.

Copilot uses AI. Check for mistakes.
elabProgramPathExtra = perPkgOptionNubList pkgid packageConfigProgramPathExtra
elabConfiguredPrograms = configuredPrograms compilerprogdb
elabConfigureScriptArgs = perPkgOptionList pkgid packageConfigConfigureArgs
Expand Down Expand Up @@ -4513,7 +4524,7 @@ packageHashConfigInputs shared@ElaboratedSharedConfig{..} pkg =
, pkgHashStripLibs = stripLibs
, pkgHashStripExes = stripExes
, pkgHashDebugInfo = withDebugInfo
, pkgHashProgramArgs = elabProgramArgs
, pkgHashProgramArgs = elabNormalisedProgramArgs
, pkgHashExtraLibDirs = elabExtraLibDirs
, pkgHashExtraLibDirsStatic = elabExtraLibDirsStatic
, pkgHashExtraFrameworkDirs = elabExtraFrameworkDirs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,7 @@ data ElaboratedConfiguredPackage = ElaboratedConfiguredPackage
, elabDumpBuildInfo :: DumpBuildInfo
, elabProgramPaths :: Map String FilePath
, elabProgramArgs :: Map String [String]
, elabNormalisedProgramArgs :: Map String [String]
, elabProgramPathExtra :: [FilePath]
, elabConfiguredPrograms :: [ConfiguredProgram]
, elabConfigureScriptArgs :: [String]
Expand Down Expand Up @@ -345,7 +346,7 @@ normaliseConfiguredPackage
-> ElaboratedConfiguredPackage
-> ElaboratedConfiguredPackage
normaliseConfiguredPackage ElaboratedSharedConfig{pkgConfigCompilerProgs} pkg =
pkg{elabProgramArgs = Map.mapMaybeWithKey lookupFilter (elabProgramArgs pkg)}
pkg{elabNormalisedProgramArgs = Map.mapMaybeWithKey lookupFilter (elabProgramArgs pkg)}
where
knownProgramDb = addKnownPrograms builtinPrograms pkgConfigCompilerProgs

Expand Down
5 changes: 5 additions & 0 deletions changelog.d/pr-11259.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
synopsis: Do not filter program arguments (e.g. for ghc, etc)
packages: [Cabal]
prs: 11259
---
Loading