aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Gröber <dxld@darkboxed.org>2019-05-27 15:05:20 +0200
committerDaniel Gröber <dxld@darkboxed.org>2019-05-27 15:06:40 +0200
commit0b7de90484163ee3d15fa52831ee2944d79cc5e0 (patch)
tree3584414fcbeb610094d7fa4e6860ae8534282d26
parent5824410f0d50d41d55fecfa339780389adda185a (diff)
Revert compilerVersion being project-scope
Turns out the Setup header has the compiler version used to build Setup, not the version the project is configured to use.
-rw-r--r--lib/Distribution/Helper.hs7
-rw-r--r--src/CabalHelper/Compiletime/Types.hs6
2 files changed, 5 insertions, 8 deletions
diff --git a/lib/Distribution/Helper.hs b/lib/Distribution/Helper.hs
index 167db45..1505063 100644
--- a/lib/Distribution/Helper.hs
+++ b/lib/Distribution/Helper.hs
@@ -279,14 +279,9 @@ compilerVersion = Query $ \qe ->
-- ^ ASSUMPTION: Here we assume the compiler version is uniform across all
-- units so we just pick any one.
case piImpl proj_info of
- ProjInfoV1 { piV1SetupHeader=UnitHeader{..} } ->
- return $ first BS8.unpack $ uhCompilerId
- -- ^ The package name here is restricted to Latin-1 because of the way
- -- Cabal writes the header. Shouldn't matter too much V1 is legacy
- -- anyways and GHC and it's glorious ASCII name rule the Haskell world.
+ ProjInfoV1 {} -> uiCompilerId <$> getUnitInfo qe someUnit
ProjInfoV2 { piV2CompilerId } -> return piV2CompilerId
ProjInfoStack {} -> uiCompilerId <$> getUnitInfo qe someUnit
- -- ^ TODO: Any way to get this faster for stack?
-- | All local units currently active in a project\'s build plan.
projectUnits :: Query pt (NonEmpty (Unit pt))
diff --git a/src/CabalHelper/Compiletime/Types.hs b/src/CabalHelper/Compiletime/Types.hs
index 653497d..ec24f2d 100644
--- a/src/CabalHelper/Compiletime/Types.hs
+++ b/src/CabalHelper/Compiletime/Types.hs
@@ -246,12 +246,14 @@ data UnitHeader = UnitHeader
{ uhBrokenPackageId :: !(ByteString, Version)
-- ^ Name and version of the source package. Don't use this, it's broken
-- when the package name contains Unicode characters. See 'uiPackageId'
- -- instead.
+ -- instead. Note: This was fixed by hvr in Cabal HEAD actually.
, uhSetupId :: !(ByteString, Version)
-- ^ Name and version of the @Setup.hs@ implementation. We expect
-- @"Cabal"@ here, naturally.
, uhCompilerId :: !(ByteString, Version)
- -- ^ Name and version of the compiler this Unit is configured to use.
+ -- ^ Name and version of the compiler that was used to build
+ -- Setup.hs. WARNING: This does not identify the GHC version the project
+ -- is configured to use!
} deriving (Eq, Ord, Read, Show)
newtype UnitId = UnitId String