diff --git a/Cabal/Cabal.cabal b/Cabal/Cabal.cabal
index 56176dffc72..850f96f517a 100644
--- a/Cabal/Cabal.cabal
+++ b/Cabal/Cabal.cabal
@@ -122,6 +122,9 @@ extra-source-files:
tests/ParserTests/regressions/issue-774.check
tests/ParserTests/regressions/issue-774.expr
tests/ParserTests/regressions/issue-774.format
+ tests/ParserTests/regressions/jaeger-flamegraph.cabal
+ tests/ParserTests/regressions/jaeger-flamegraph.expr
+ tests/ParserTests/regressions/jaeger-flamegraph.format
tests/ParserTests/regressions/leading-comma.cabal
tests/ParserTests/regressions/leading-comma.expr
tests/ParserTests/regressions/leading-comma.format
diff --git a/Cabal/Distribution/Compiler.hs b/Cabal/Distribution/Compiler.hs
index 245e222e0b7..a82dd3c6822 100644
--- a/Cabal/Distribution/Compiler.hs
+++ b/Cabal/Distribution/Compiler.hs
@@ -33,6 +33,10 @@ module Distribution.Compiler (
classifyCompilerFlavor,
knownCompilerFlavors,
+ -- * Per compiler flavor
+ PerCompilerFlavor (..),
+ perCompilerFlavorToList,
+
-- * Compiler id
CompilerId(..),
@@ -109,6 +113,31 @@ defaultCompilerFlavor = case buildCompilerFlavor of
OtherCompiler _ -> Nothing
_ -> Just buildCompilerFlavor
+-------------------------------------------------------------------------------
+-- Per compiler data
+-------------------------------------------------------------------------------
+
+-- | 'PerCompilerFlavor' carries only info per GHC and GHCJS
+--
+-- Cabal parses only @ghc-options@ and @ghcjs-options@, others are omitted.
+--
+data PerCompilerFlavor v = PerCompilerFlavor v v
+ deriving (Generic, Show, Read, Eq, Typeable, Data)
+
+instance Binary a => Binary (PerCompilerFlavor a)
+instance NFData a => NFData (PerCompilerFlavor a)
+
+perCompilerFlavorToList :: PerCompilerFlavor v -> [(CompilerFlavor, v)]
+perCompilerFlavorToList (PerCompilerFlavor a b) = [(GHC, a), (GHCJS, b)]
+
+instance Semigroup a => Semigroup (PerCompilerFlavor a) where
+ PerCompilerFlavor a b <> PerCompilerFlavor a' b' = PerCompilerFlavor
+ (a <> a') (b <> b')
+
+instance (Semigroup a, Monoid a) => Monoid (PerCompilerFlavor a) where
+ mempty = PerCompilerFlavor mempty mempty
+ mappend = (<>)
+
-- ------------------------------------------------------------
-- * Compiler Id
-- ------------------------------------------------------------
diff --git a/Cabal/Distribution/PackageDescription/Check.hs b/Cabal/Distribution/PackageDescription/Check.hs
index f04989bfda1..01bffb23dff 100644
--- a/Cabal/Distribution/PackageDescription/Check.hs
+++ b/Cabal/Distribution/PackageDescription/Check.hs
@@ -1057,7 +1057,7 @@ checkPaths pkg =
++ "manager). In addition the layout of the 'dist' directory is subject "
++ "to change in future versions of Cabal."
| bi <- allBuildInfo pkg
- , (GHC, flags) <- options bi
+ , (GHC, flags) <- perCompilerFlavorToList $ options bi
, path <- flags
, isInsideDist path ]
++
diff --git a/Cabal/Distribution/PackageDescription/FieldGrammar.hs b/Cabal/Distribution/PackageDescription/FieldGrammar.hs
index 8fefbf4bc47..9fb1fc70b50 100644
--- a/Cabal/Distribution/PackageDescription/FieldGrammar.hs
+++ b/Cabal/Distribution/PackageDescription/FieldGrammar.hs
@@ -44,7 +44,7 @@ import Distribution.Compat.Prelude
import Prelude ()
import Distribution.CabalSpecVersion
-import Distribution.Compiler (CompilerFlavor (..))
+import Distribution.Compiler (CompilerFlavor (..), PerCompilerFlavor (..))
import Distribution.FieldGrammar
import Distribution.ModuleName (ModuleName)
import Distribution.Package
@@ -427,7 +427,7 @@ buildInfoFieldGrammar = BuildInfo
<*> optionsFieldGrammar
<*> profOptionsFieldGrammar
<*> sharedOptionsFieldGrammar
- <*> pure [] -- static-options ???
+ <*> pure mempty -- static-options ???
<*> prefixedFields "x-" L.customFieldsBI
<*> monoidalFieldAla "build-depends" (alaList CommaVCat) L.targetBuildDepends
<*> monoidalFieldAla "mixins" (alaList CommaVCat) L.mixins
@@ -450,8 +450,8 @@ hsSourceDirsGrammar = (++)
optionsFieldGrammar
:: (FieldGrammar g, Applicative (g BuildInfo))
- => g BuildInfo [(CompilerFlavor, [String])]
-optionsFieldGrammar = combine
+ => g BuildInfo (PerCompilerFlavor [String])
+optionsFieldGrammar = PerCompilerFlavor
<$> monoidalFieldAla "ghc-options" (alaList' NoCommaFSep Token') (extract GHC)
<*> monoidalFieldAla "ghcjs-options" (alaList' NoCommaFSep Token') (extract GHCJS)
-- NOTE: Hugs, NHC and JHC are not supported anymore, but these
@@ -464,51 +464,31 @@ optionsFieldGrammar = combine
extract :: CompilerFlavor -> ALens' BuildInfo [String]
extract flavor = L.options . lookupLens flavor
- combine ghc ghcjs =
- f GHC ghc ++ f GHCJS ghcjs
- where
- f _flavor [] = []
- f flavor opts = [(flavor, opts)]
-
profOptionsFieldGrammar
:: (FieldGrammar g, Applicative (g BuildInfo))
- => g BuildInfo [(CompilerFlavor, [String])]
-profOptionsFieldGrammar = combine
+ => g BuildInfo (PerCompilerFlavor [String])
+profOptionsFieldGrammar = PerCompilerFlavor
<$> monoidalFieldAla "ghc-prof-options" (alaList' NoCommaFSep Token') (extract GHC)
<*> monoidalFieldAla "ghcjs-prof-options" (alaList' NoCommaFSep Token') (extract GHCJS)
where
extract :: CompilerFlavor -> ALens' BuildInfo [String]
extract flavor = L.profOptions . lookupLens flavor
- combine ghc ghcjs = f GHC ghc ++ f GHCJS ghcjs
- where
- f _flavor [] = []
- f flavor opts = [(flavor, opts)]
-
sharedOptionsFieldGrammar
:: (FieldGrammar g, Applicative (g BuildInfo))
- => g BuildInfo [(CompilerFlavor, [String])]
-sharedOptionsFieldGrammar = combine
+ => g BuildInfo (PerCompilerFlavor [String])
+sharedOptionsFieldGrammar = PerCompilerFlavor
<$> monoidalFieldAla "ghc-shared-options" (alaList' NoCommaFSep Token') (extract GHC)
<*> monoidalFieldAla "ghcjs-shared-options" (alaList' NoCommaFSep Token') (extract GHCJS)
where
extract :: CompilerFlavor -> ALens' BuildInfo [String]
extract flavor = L.sharedOptions . lookupLens flavor
- combine ghc ghcjs = f GHC ghc ++ f GHCJS ghcjs
- where
- f _flavor [] = []
- f flavor opts = [(flavor, opts)]
-
-lookupLens :: (Functor f, Ord k) => k -> LensLike' f [(k, [v])] [v]
-lookupLens k f kvs = str kvs <$> f (gtr kvs)
- where
- gtr = fromMaybe [] . lookup k
-
- str [] v = [(k, v)]
- str (x@(k',_):xs) v
- | k == k' = (k, v) : xs
- | otherwise = x : str xs v
+lookupLens :: (Functor f, Monoid v) => CompilerFlavor -> LensLike' f (PerCompilerFlavor v) v
+lookupLens k f p@(PerCompilerFlavor ghc ghcjs)
+ | k == GHC = (\n -> PerCompilerFlavor n ghcjs) <$> f ghc
+ | k == GHCJS = (\n -> PerCompilerFlavor ghc n) <$> f ghcjs
+ | otherwise = p <$ f mempty
-------------------------------------------------------------------------------
-- Flag
diff --git a/Cabal/Distribution/Simple/GHC.hs b/Cabal/Distribution/Simple/GHC.hs
index 618807cb765..0463e2c7514 100644
--- a/Cabal/Distribution/Simple/GHC.hs
+++ b/Cabal/Distribution/Simple/GHC.hs
@@ -1659,16 +1659,13 @@ popThreadedFlag bi =
where
filterHcOptions :: (String -> Bool)
- -> [(CompilerFlavor, [String])]
- -> [(CompilerFlavor, [String])]
- filterHcOptions p hcoptss =
- [ (hc, if hc == GHC then filter p opts else opts)
- | (hc, opts) <- hcoptss ]
-
- hasThreaded :: [(CompilerFlavor, [String])] -> Bool
- hasThreaded hcoptss =
- or [ if hc == GHC then elem "-threaded" opts else False
- | (hc, opts) <- hcoptss ]
+ -> PerCompilerFlavor [String]
+ -> PerCompilerFlavor [String]
+ filterHcOptions p (PerCompilerFlavor ghc ghcjs) =
+ PerCompilerFlavor (filter p ghc) ghcjs
+
+ hasThreaded :: PerCompilerFlavor [String] -> Bool
+ hasThreaded (PerCompilerFlavor ghc _) = elem "-threaded" ghc
-- | Extracts a String representing a hash of the ABI of a built
-- library. It can fail if the library has not yet been built.
diff --git a/Cabal/Distribution/Simple/Program/GHC.hs b/Cabal/Distribution/Simple/Program/GHC.hs
index a75d524c0ba..6a729ccaffe 100644
--- a/Cabal/Distribution/Simple/Program/GHC.hs
+++ b/Cabal/Distribution/Simple/Program/GHC.hs
@@ -85,8 +85,8 @@ normaliseGhcArgs (Just ghcVersion) PackageDescription{..} ghcArgs
checkComponent = foldMap fun . filterGhcOptions . allGhcOptions
allGhcOptions :: BuildInfo -> [(CompilerFlavor, [String])]
- allGhcOptions =
- mconcat [options, profOptions, sharedOptions, staticOptions]
+ allGhcOptions = foldMap (perCompilerFlavorToList .)
+ [options, profOptions, sharedOptions, staticOptions]
filterGhcOptions :: [(CompilerFlavor, [String])] -> [[String]]
filterGhcOptions l = [opts | (GHC, opts) <- l]
diff --git a/Cabal/Distribution/Types/BuildInfo.hs b/Cabal/Distribution/Types/BuildInfo.hs
index 60590ca9da6..1fc73579696 100644
--- a/Cabal/Distribution/Types/BuildInfo.hs
+++ b/Cabal/Distribution/Types/BuildInfo.hs
@@ -95,10 +95,10 @@ data BuildInfo = BuildInfo {
includeDirs :: [FilePath], -- ^directories to find .h files
includes :: [FilePath], -- ^ The .h files to be found in includeDirs
installIncludes :: [FilePath], -- ^ .h files to install with the package
- options :: [(CompilerFlavor,[String])],
- profOptions :: [(CompilerFlavor,[String])],
- sharedOptions :: [(CompilerFlavor,[String])],
- staticOptions :: [(CompilerFlavor,[String])],
+ options :: PerCompilerFlavor [String],
+ profOptions :: PerCompilerFlavor [String],
+ sharedOptions :: PerCompilerFlavor [String],
+ staticOptions :: PerCompilerFlavor [String],
customFieldsBI :: [(String,String)], -- ^Custom fields starting
-- with x-, stored in a
-- simple assoc-list.
@@ -148,10 +148,10 @@ instance Monoid BuildInfo where
includeDirs = [],
includes = [],
installIncludes = [],
- options = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ options = mempty,
+ profOptions = mempty,
+ sharedOptions = mempty,
+ staticOptions = mempty,
customFieldsBI = [],
targetBuildDepends = [],
mixins = []
@@ -250,8 +250,10 @@ hcSharedOptions = lookupHcOptions sharedOptions
hcStaticOptions :: CompilerFlavor -> BuildInfo -> [String]
hcStaticOptions = lookupHcOptions staticOptions
-lookupHcOptions :: (BuildInfo -> [(CompilerFlavor,[String])])
+lookupHcOptions :: (BuildInfo -> PerCompilerFlavor [String])
-> CompilerFlavor -> BuildInfo -> [String]
-lookupHcOptions f hc bi = [ opt | (hc',opts) <- f bi
- , hc' == hc
- , opt <- opts ]
+lookupHcOptions f hc bi = case f bi of
+ PerCompilerFlavor ghc ghcjs
+ | hc == GHC -> ghc
+ | hc == GHCJS -> ghcjs
+ | otherwise -> mempty
diff --git a/Cabal/Distribution/Types/BuildInfo/Lens.hs b/Cabal/Distribution/Types/BuildInfo/Lens.hs
index 15a2cd53767..c656e644f2e 100644
--- a/Cabal/Distribution/Types/BuildInfo/Lens.hs
+++ b/Cabal/Distribution/Types/BuildInfo/Lens.hs
@@ -8,7 +8,7 @@ import Prelude ()
import Distribution.Compat.Prelude
import Distribution.Compat.Lens
-import Distribution.Compiler (CompilerFlavor)
+import Distribution.Compiler (PerCompilerFlavor)
import Distribution.ModuleName (ModuleName)
import Distribution.Types.BuildInfo (BuildInfo)
import Distribution.Types.Dependency (Dependency)
@@ -164,19 +164,19 @@ class HasBuildInfo a where
installIncludes = buildInfo . installIncludes
{-# INLINE installIncludes #-}
- options :: Lens' a [(CompilerFlavor,[String])]
+ options :: Lens' a (PerCompilerFlavor [String])
options = buildInfo . options
{-# INLINE options #-}
- profOptions :: Lens' a [(CompilerFlavor,[String])]
+ profOptions :: Lens' a (PerCompilerFlavor [String])
profOptions = buildInfo . profOptions
{-# INLINE profOptions #-}
- sharedOptions :: Lens' a [(CompilerFlavor,[String])]
+ sharedOptions :: Lens' a (PerCompilerFlavor [String])
sharedOptions = buildInfo . sharedOptions
{-# INLINE sharedOptions #-}
- staticOptions :: Lens' a [(CompilerFlavor,[String])]
+ staticOptions :: Lens' a (PerCompilerFlavor [String])
staticOptions = buildInfo . staticOptions
{-# INLINE staticOptions #-}
diff --git a/Cabal/tests/Instances/TreeDiff.hs b/Cabal/tests/Instances/TreeDiff.hs
index d134ec49f5d..268738e9d97 100644
--- a/Cabal/tests/Instances/TreeDiff.hs
+++ b/Cabal/tests/Instances/TreeDiff.hs
@@ -16,7 +16,7 @@ import Instances.TreeDiff.Version ()
-------------------------------------------------------------------------------
import Distribution.Backpack (OpenModule, OpenUnitId)
-import Distribution.Compiler (CompilerFlavor)
+import Distribution.Compiler (CompilerFlavor, PerCompilerFlavor)
import Distribution.InstalledPackageInfo (AbiDependency, ExposedModule, InstalledPackageInfo)
import Distribution.ModuleName (ModuleName)
import Distribution.Package (Dependency, PackageIdentifier, PackageName)
@@ -45,6 +45,8 @@ instance (Eq a, Show a) => ToExpr (Condition a) where toExpr = defaultExprViaSho
instance (Show a, ToExpr b, ToExpr c, Show b, Show c, Eq a, Eq c, Eq b) => ToExpr (CondTree a b c)
instance (Show a, ToExpr b, ToExpr c, Show b, Show c, Eq a, Eq c, Eq b) => ToExpr (CondBranch a b c)
+instance ToExpr a => ToExpr (PerCompilerFlavor a)
+
instance ToExpr AbiDependency where toExpr = defaultExprViaShow
instance ToExpr AbiHash where toExpr = defaultExprViaShow
instance ToExpr Benchmark
diff --git a/Cabal/tests/ParserTests.hs b/Cabal/tests/ParserTests.hs
index b91b73cf1c7..c1df7d46e3e 100644
--- a/Cabal/tests/ParserTests.hs
+++ b/Cabal/tests/ParserTests.hs
@@ -150,6 +150,7 @@ regressionTests = testGroup "regressions"
, regressionTest "spdx-2.cabal"
, regressionTest "spdx-3.cabal"
, regressionTest "hidden-main-lib.cabal"
+ , regressionTest "jaeger-flamegraph.cabal"
]
regressionTest :: FilePath -> TestTree
diff --git a/Cabal/tests/ParserTests/regressions/Octree-0.5.expr b/Cabal/tests/ParserTests/regressions/Octree-0.5.expr
index ec58bcd2011..507b847a60a 100644
--- a/Cabal/tests/ParserTests/regressions/Octree-0.5.expr
+++ b/Cabal/tests/ParserTests/regressions/Octree-0.5.expr
@@ -55,14 +55,14 @@ GenericPackageDescription
mixins = [],
oldExtensions = [EnableExtension
ScopedTypeVariables],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [`ModuleName ["Data","Octree","Internal"]`],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(IntersectVersionRanges
@@ -143,14 +143,17 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ [] [],
+ sharedOptions = PerCompilerFlavor
+ [] [],
+ staticOptions = PerCompilerFlavor
+ [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(IntersectVersionRanges
@@ -233,17 +236,20 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [_×_
- GHC
- ["-pgmL",
- "markdown-unlit"]],
+ options = PerCompilerFlavor
+ ["-pgmL",
+ "markdown-unlit"]
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ [] [],
+ sharedOptions = PerCompilerFlavor
+ [] [],
+ staticOptions = PerCompilerFlavor
+ [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(IntersectVersionRanges
diff --git a/Cabal/tests/ParserTests/regressions/common.expr b/Cabal/tests/ParserTests/regressions/common.expr
index 75dec662ccb..4b7177ef892 100644
--- a/Cabal/tests/ParserTests/regressions/common.expr
+++ b/Cabal/tests/ParserTests/regressions/common.expr
@@ -44,14 +44,14 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [Dependency
`PackageName "ghc-prim"`
AnyVersion
@@ -106,14 +106,17 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ [] [],
+ sharedOptions = PerCompilerFlavor
+ [] [],
+ staticOptions = PerCompilerFlavor
+ [] [],
targetBuildDepends = [Dependency
`PackageName "HUnit"`
AnyVersion
diff --git a/Cabal/tests/ParserTests/regressions/common2.expr b/Cabal/tests/ParserTests/regressions/common2.expr
index 30fffdaf235..4eb84624d4d 100644
--- a/Cabal/tests/ParserTests/regressions/common2.expr
+++ b/Cabal/tests/ParserTests/regressions/common2.expr
@@ -49,14 +49,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "Win32"`
AnyVersion
@@ -117,14 +125,14 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(IntersectVersionRanges
@@ -198,14 +206,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "Win32"`
AnyVersion
@@ -267,14 +283,17 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ [] [],
+ sharedOptions = PerCompilerFlavor
+ [] [],
+ staticOptions = PerCompilerFlavor
+ [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(IntersectVersionRanges
@@ -347,14 +366,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "Win32"`
AnyVersion
@@ -410,14 +437,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "Win32"`
AnyVersion
@@ -469,14 +504,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
testInterface = TestSuiteUnsupported
@@ -532,14 +575,17 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ [] [],
+ sharedOptions = PerCompilerFlavor
+ [] [],
+ staticOptions = PerCompilerFlavor
+ [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(IntersectVersionRanges
diff --git a/Cabal/tests/ParserTests/regressions/elif.expr b/Cabal/tests/ParserTests/regressions/elif.expr
index cac0c35c134..e317aa84e92 100644
--- a/Cabal/tests/ParserTests/regressions/elif.expr
+++ b/Cabal/tests/ParserTests/regressions/elif.expr
@@ -49,14 +49,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "unix"`
AnyVersion
@@ -104,14 +112,14 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [],
virtualModules = []},
libExposed = True,
diff --git a/Cabal/tests/ParserTests/regressions/elif2.expr b/Cabal/tests/ParserTests/regressions/elif2.expr
index b17ee3ff0e3..15d4deea3d4 100644
--- a/Cabal/tests/ParserTests/regressions/elif2.expr
+++ b/Cabal/tests/ParserTests/regressions/elif2.expr
@@ -49,14 +49,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
libExposed = True,
@@ -106,14 +114,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "Win32"`
AnyVersion
@@ -161,14 +177,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
libExposed = True,
@@ -218,14 +242,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "unix"`
AnyVersion
@@ -273,14 +305,14 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [],
virtualModules = []},
libExposed = True,
diff --git a/Cabal/tests/ParserTests/regressions/encoding-0.8.expr b/Cabal/tests/ParserTests/regressions/encoding-0.8.expr
index 4f2caa2155e..182cf99ceac 100644
--- a/Cabal/tests/ParserTests/regressions/encoding-0.8.expr
+++ b/Cabal/tests/ParserTests/regressions/encoding-0.8.expr
@@ -47,20 +47,20 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [_×_
- GHC
- ["-Wall",
- "-O2",
- "-threaded",
- "-rtsopts",
- "-with-rtsopts=-N1 -A64m"]],
+ options = PerCompilerFlavor
+ ["-Wall",
+ "-O2",
+ "-threaded",
+ "-rtsopts",
+ "-with-rtsopts=-N1 -A64m"]
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(VersionRangeParens
diff --git a/Cabal/tests/ParserTests/regressions/generics-sop.expr b/Cabal/tests/ParserTests/regressions/generics-sop.expr
index bede6570434..0ed31c9c58a 100644
--- a/Cabal/tests/ParserTests/regressions/generics-sop.expr
+++ b/Cabal/tests/ParserTests/regressions/generics-sop.expr
@@ -53,14 +53,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "tagged"`
(IntersectVersionRanges
@@ -134,14 +142,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "transformers-compat"`
(IntersectVersionRanges
@@ -208,14 +224,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
libExposed = True,
@@ -264,15 +288,23 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [EnableExtension
OverlappingInstances],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
libExposed = True,
@@ -386,7 +418,7 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [_×_ GHC ["-Wall"]],
+ options = PerCompilerFlavor ["-Wall"] [],
otherExtensions = [EnableExtension
OverloadedStrings,
EnableExtension
@@ -402,9 +434,9 @@ GenericPackageDescription
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(IntersectVersionRanges
@@ -498,16 +530,19 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [_×_
- GHC
- ["-Wall", "-threaded"]],
+ options = PerCompilerFlavor
+ ["-Wall", "-threaded"]
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ [] [],
+ sharedOptions = PerCompilerFlavor
+ [] [],
+ staticOptions = PerCompilerFlavor
+ [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
AnyVersion
@@ -574,14 +609,18 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [_×_ GHC ["-Wall"]],
+ options = PerCompilerFlavor
+ ["-Wall"] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [`ModuleName ["HTransExample"]`],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ [] [],
+ sharedOptions = PerCompilerFlavor
+ [] [],
+ staticOptions = PerCompilerFlavor
+ [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(IntersectVersionRanges
diff --git a/Cabal/tests/ParserTests/regressions/hidden-main-lib.expr b/Cabal/tests/ParserTests/regressions/hidden-main-lib.expr
index 521aaa3fbe5..a4b817aab30 100644
--- a/Cabal/tests/ParserTests/regressions/hidden-main-lib.expr
+++ b/Cabal/tests/ParserTests/regressions/hidden-main-lib.expr
@@ -44,14 +44,14 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
AnyVersion
diff --git a/Cabal/tests/ParserTests/regressions/issue-5055.expr b/Cabal/tests/ParserTests/regressions/issue-5055.expr
index a76d86c6ea9..2997e06737f 100644
--- a/Cabal/tests/ParserTests/regressions/issue-5055.expr
+++ b/Cabal/tests/ParserTests/regressions/issue-5055.expr
@@ -29,7 +29,7 @@ GenericPackageDescription
defaultExtensions = [],
defaultLanguage = Just Haskell2010,
extraBundledLibs = [],
- extraDynLibFlavours = [],
+ extraDynLibFlavours = [],
extraFrameworkDirs = [],
extraGHCiLibs = [],
extraLibDirs = [],
@@ -44,14 +44,14 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(IntersectVersionRanges
@@ -96,7 +96,7 @@ GenericPackageDescription
defaultExtensions = [],
defaultLanguage = Nothing,
extraBundledLibs = [],
- extraDynLibFlavours = [],
+ extraDynLibFlavours = [],
extraFrameworkDirs = [],
extraGHCiLibs = [],
extraLibDirs = [],
@@ -111,14 +111,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
testInterface = TestSuiteUnsupported
@@ -151,7 +159,7 @@ GenericPackageDescription
defaultExtensions = [],
defaultLanguage = Just Haskell2010,
extraBundledLibs = [],
- extraDynLibFlavours = [],
+ extraDynLibFlavours = [],
extraFrameworkDirs = [],
extraGHCiLibs = [],
extraLibDirs = [],
@@ -166,14 +174,17 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ [] [],
+ sharedOptions = PerCompilerFlavor
+ [] [],
+ staticOptions = PerCompilerFlavor
+ [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(IntersectVersionRanges
diff --git a/Cabal/tests/ParserTests/regressions/issue-774.expr b/Cabal/tests/ParserTests/regressions/issue-774.expr
index 1c600153dde..2473aab476a 100644
--- a/Cabal/tests/ParserTests/regressions/issue-774.expr
+++ b/Cabal/tests/ParserTests/regressions/issue-774.expr
@@ -41,19 +41,19 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [_×_
- GHC
- ["-Wall",
- "-threaded",
- "-with-rtsopts=-N -s -M1G -c",
- "-rtsopts"]],
+ options = PerCompilerFlavor
+ ["-Wall",
+ "-threaded",
+ "-with-rtsopts=-N -s -M1G -c",
+ "-rtsopts"]
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [],
virtualModules = []},
libExposed = True,
diff --git a/Cabal/tests/ParserTests/regressions/jaeger-flamegraph.cabal b/Cabal/tests/ParserTests/regressions/jaeger-flamegraph.cabal
new file mode 100644
index 00000000000..c5b8162438f
--- /dev/null
+++ b/Cabal/tests/ParserTests/regressions/jaeger-flamegraph.cabal
@@ -0,0 +1,70 @@
+cabal-version: 2.2
+name: jaeger-flamegraph
+version: 1.0.0
+synopsis: Generate flamegraphs from Jaeger .json dumps.
+license: BSD-3-Clause
+license-file: LICENSE
+author: Sam Halliday
+maintainer: Sam Halliday
+copyright: (c) 2018 Symbiont.io
+bug-reports: https://github.com/symbiont-io/jaeger-flamegraph/pulls
+tested-with: GHC ^>= 8.4.4 || ^>= 8.6.2
+category: Testing
+description:
+ This is a small tool to convert JSON dumps obtained from a Jaeger
+ server () into a format consumable
+ by [FlameGraph](https://github.com/brendangregg/FlameGraph).
+ .
+ First download the traces for your SERVICE limiting to LIMIT traces
+ .
+ > $ curl http://your-jaeger-installation/api/traces?service=SERVICE&limit=LIMIT > input.json
+ .
+ using the [undocumented Jaeger API](https://github.com/jaegertracing/jaeger/issues/456#issuecomment-412560321)
+ then use @jaeger-flamegraph@ to convert the data and send to @flamegraph.pl@
+ .
+ > $ jaeger-flamegraph -f input.json | flamegraph.pl > output.svg
+ .
+
+source-repository head
+ type: git
+ location: https://github.com/symbiont-io/jaeger-flamegraph
+
+-- https://www.haskell.org/cabal/users-guide/cabal-projectindex.html
+
+common deps
+ build-depends: , base ^>= 4.11.1.0 || ^>= 4.12.0.0
+ ghc-options: -Wall
+ -Werror=missing-home-modules
+ default-language: Haskell2010
+
+executable jaeger-flamegraph
+ import: deps
+ hs-source-dirs: exe
+ main-is: Main.hs
+ build-depends: , jaeger-flamegraph
+ , bytestring ^>= 0.10.8.2
+ , containers ^>= 0.6.0.1
+ , extra ^>= 1.6.13
+ , aeson ^>= 1.4.1.0
+ , optparse-applicative ^>= 0.14.3.0
+ , text ^>= 1.2.3.1
+ ghc-options: -threaded
+
+library
+ import: deps
+ hs-source-dirs: library
+ exposed-modules: Interval
+ build-depends: , QuickCheck ^>= 2.12.6.1
+
+test-suite tests
+ import: deps
+ hs-source-dirs: test
+ type: exitcode-stdio-1.0
+ main-is: Driver.hs
+ other-modules: IntervalTest
+ build-depends: , jaeger-flamegraph
+ , tasty ^>= 1.1.0.4
+ , tasty-hspec ^>= 1.1.5
+ , tasty-quickcheck ^>= 0.10
+ build-tool-depends: tasty-discover:tasty-discover ^>= 4.2.1
+ ghc-options: -threaded
diff --git a/Cabal/tests/ParserTests/regressions/jaeger-flamegraph.expr b/Cabal/tests/ParserTests/regressions/jaeger-flamegraph.expr
new file mode 100644
index 00000000000..51632fcbca2
--- /dev/null
+++ b/Cabal/tests/ParserTests/regressions/jaeger-flamegraph.expr
@@ -0,0 +1,392 @@
+GenericPackageDescription
+ {condBenchmarks = [],
+ condExecutables = [_×_
+ `UnqualComponentName "jaeger-flamegraph"`
+ CondNode
+ {condTreeComponents = [],
+ condTreeConstraints = [Dependency
+ `PackageName "base"`
+ (UnionVersionRanges
+ (MajorBoundVersion `mkVersion [4,11,1,0]`)
+ (MajorBoundVersion `mkVersion [4,12,0,0]`))
+ (Set.fromList [LMainLibName]),
+ Dependency
+ `PackageName "jaeger-flamegraph"`
+ AnyVersion
+ (Set.fromList [LMainLibName]),
+ Dependency
+ `PackageName "bytestring"`
+ (MajorBoundVersion `mkVersion [0,10,8,2]`)
+ (Set.fromList [LMainLibName]),
+ Dependency
+ `PackageName "containers"`
+ (MajorBoundVersion `mkVersion [0,6,0,1]`)
+ (Set.fromList [LMainLibName]),
+ Dependency
+ `PackageName "extra"`
+ (MajorBoundVersion `mkVersion [1,6,13]`)
+ (Set.fromList [LMainLibName]),
+ Dependency
+ `PackageName "aeson"`
+ (MajorBoundVersion `mkVersion [1,4,1,0]`)
+ (Set.fromList [LMainLibName]),
+ Dependency
+ `PackageName "optparse-applicative"`
+ (MajorBoundVersion `mkVersion [0,14,3,0]`)
+ (Set.fromList [LMainLibName]),
+ Dependency
+ `PackageName "text"`
+ (MajorBoundVersion `mkVersion [1,2,3,1]`)
+ (Set.fromList [LMainLibName])],
+ condTreeData = Executable
+ {buildInfo = BuildInfo
+ {asmOptions = [],
+ asmSources = [],
+ autogenModules = [],
+ buildToolDepends = [],
+ buildTools = [],
+ buildable = True,
+ cSources = [],
+ ccOptions = [],
+ cmmOptions = [],
+ cmmSources = [],
+ cppOptions = [],
+ customFieldsBI = [],
+ cxxOptions = [],
+ cxxSources = [],
+ defaultExtensions = [],
+ defaultLanguage = Just Haskell2010,
+ extraBundledLibs = [],
+ extraDynLibFlavours = [],
+ extraFrameworkDirs = [],
+ extraGHCiLibs = [],
+ extraLibDirs = [],
+ extraLibFlavours = [],
+ extraLibs = [],
+ frameworks = [],
+ hsSourceDirs = ["exe"],
+ includeDirs = [],
+ includes = [],
+ installIncludes = [],
+ jsSources = [],
+ ldOptions = [],
+ mixins = [],
+ oldExtensions = [],
+ options = PerCompilerFlavor
+ ["-Wall",
+ "-Werror=missing-home-modules",
+ "-threaded"]
+ [],
+ otherExtensions = [],
+ otherLanguages = [],
+ otherModules = [],
+ pkgconfigDepends = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
+ targetBuildDepends = [Dependency
+ `PackageName "base"`
+ (UnionVersionRanges
+ (MajorBoundVersion
+ `mkVersion [4,11,1,0]`)
+ (MajorBoundVersion
+ `mkVersion [4,12,0,0]`))
+ (Set.fromList
+ [LMainLibName]),
+ Dependency
+ `PackageName "jaeger-flamegraph"`
+ AnyVersion
+ (Set.fromList
+ [LMainLibName]),
+ Dependency
+ `PackageName "bytestring"`
+ (MajorBoundVersion
+ `mkVersion [0,10,8,2]`)
+ (Set.fromList
+ [LMainLibName]),
+ Dependency
+ `PackageName "containers"`
+ (MajorBoundVersion
+ `mkVersion [0,6,0,1]`)
+ (Set.fromList
+ [LMainLibName]),
+ Dependency
+ `PackageName "extra"`
+ (MajorBoundVersion
+ `mkVersion [1,6,13]`)
+ (Set.fromList
+ [LMainLibName]),
+ Dependency
+ `PackageName "aeson"`
+ (MajorBoundVersion
+ `mkVersion [1,4,1,0]`)
+ (Set.fromList
+ [LMainLibName]),
+ Dependency
+ `PackageName "optparse-applicative"`
+ (MajorBoundVersion
+ `mkVersion [0,14,3,0]`)
+ (Set.fromList
+ [LMainLibName]),
+ Dependency
+ `PackageName "text"`
+ (MajorBoundVersion
+ `mkVersion [1,2,3,1]`)
+ (Set.fromList
+ [LMainLibName])],
+ virtualModules = []},
+ exeName = `UnqualComponentName "jaeger-flamegraph"`,
+ exeScope = ExecutablePublic,
+ modulePath = "Main.hs"}}],
+ condForeignLibs = [],
+ condLibrary = Just
+ CondNode
+ {condTreeComponents = [],
+ condTreeConstraints = [Dependency
+ `PackageName "base"`
+ (UnionVersionRanges
+ (MajorBoundVersion `mkVersion [4,11,1,0]`)
+ (MajorBoundVersion `mkVersion [4,12,0,0]`))
+ (Set.fromList [LMainLibName]),
+ Dependency
+ `PackageName "QuickCheck"`
+ (MajorBoundVersion `mkVersion [2,12,6,1]`)
+ (Set.fromList [LMainLibName])],
+ condTreeData = Library
+ {exposedModules = [`ModuleName ["Interval"]`],
+ libBuildInfo = BuildInfo
+ {asmOptions = [],
+ asmSources = [],
+ autogenModules = [],
+ buildToolDepends = [],
+ buildTools = [],
+ buildable = True,
+ cSources = [],
+ ccOptions = [],
+ cmmOptions = [],
+ cmmSources = [],
+ cppOptions = [],
+ customFieldsBI = [],
+ cxxOptions = [],
+ cxxSources = [],
+ defaultExtensions = [],
+ defaultLanguage = Just Haskell2010,
+ extraBundledLibs = [],
+ extraDynLibFlavours = [],
+ extraFrameworkDirs = [],
+ extraGHCiLibs = [],
+ extraLibDirs = [],
+ extraLibFlavours = [],
+ extraLibs = [],
+ frameworks = [],
+ hsSourceDirs = ["library"],
+ includeDirs = [],
+ includes = [],
+ installIncludes = [],
+ jsSources = [],
+ ldOptions = [],
+ mixins = [],
+ oldExtensions = [],
+ options = PerCompilerFlavor
+ ["-Wall",
+ "-Werror=missing-home-modules"]
+ [],
+ otherExtensions = [],
+ otherLanguages = [],
+ otherModules = [],
+ pkgconfigDepends = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
+ targetBuildDepends = [Dependency
+ `PackageName "base"`
+ (UnionVersionRanges
+ (MajorBoundVersion
+ `mkVersion [4,11,1,0]`)
+ (MajorBoundVersion
+ `mkVersion [4,12,0,0]`))
+ (Set.fromList
+ [LMainLibName]),
+ Dependency
+ `PackageName "QuickCheck"`
+ (MajorBoundVersion
+ `mkVersion [2,12,6,1]`)
+ (Set.fromList
+ [LMainLibName])],
+ virtualModules = []},
+ libExposed = True,
+ libName = Nothing,
+ libVisibility = LibraryVisibilityPublic,
+ reexportedModules = [],
+ signatures = []}},
+ condSubLibraries = [],
+ condTestSuites = [_×_
+ `UnqualComponentName "tests"`
+ CondNode
+ {condTreeComponents = [],
+ condTreeConstraints = [Dependency
+ `PackageName "base"`
+ (UnionVersionRanges
+ (MajorBoundVersion `mkVersion [4,11,1,0]`)
+ (MajorBoundVersion `mkVersion [4,12,0,0]`))
+ (Set.fromList [LMainLibName]),
+ Dependency
+ `PackageName "jaeger-flamegraph"`
+ AnyVersion
+ (Set.fromList [LMainLibName]),
+ Dependency
+ `PackageName "tasty"`
+ (MajorBoundVersion `mkVersion [1,1,0,4]`)
+ (Set.fromList [LMainLibName]),
+ Dependency
+ `PackageName "tasty-hspec"`
+ (MajorBoundVersion `mkVersion [1,1,5]`)
+ (Set.fromList [LMainLibName]),
+ Dependency
+ `PackageName "tasty-quickcheck"`
+ (MajorBoundVersion `mkVersion [0,10]`)
+ (Set.fromList [LMainLibName])],
+ condTreeData = TestSuite
+ {testBuildInfo = BuildInfo
+ {asmOptions = [],
+ asmSources = [],
+ autogenModules = [],
+ buildToolDepends = [`ExeDependency (PackageName "tasty-discover") (UnqualComponentName "tasty-discover") (MajorBoundVersion (mkVersion [4,2,1]))`],
+ buildTools = [],
+ buildable = True,
+ cSources = [],
+ ccOptions = [],
+ cmmOptions = [],
+ cmmSources = [],
+ cppOptions = [],
+ customFieldsBI = [],
+ cxxOptions = [],
+ cxxSources = [],
+ defaultExtensions = [],
+ defaultLanguage = Just Haskell2010,
+ extraBundledLibs = [],
+ extraDynLibFlavours = [],
+ extraFrameworkDirs = [],
+ extraGHCiLibs = [],
+ extraLibDirs = [],
+ extraLibFlavours = [],
+ extraLibs = [],
+ frameworks = [],
+ hsSourceDirs = ["test"],
+ includeDirs = [],
+ includes = [],
+ installIncludes = [],
+ jsSources = [],
+ ldOptions = [],
+ mixins = [],
+ oldExtensions = [],
+ options = PerCompilerFlavor
+ ["-Wall",
+ "-Werror=missing-home-modules",
+ "-threaded"]
+ [],
+ otherExtensions = [],
+ otherLanguages = [],
+ otherModules = [`ModuleName ["IntervalTest"]`],
+ pkgconfigDepends = [],
+ profOptions = PerCompilerFlavor
+ [] [],
+ sharedOptions = PerCompilerFlavor
+ [] [],
+ staticOptions = PerCompilerFlavor
+ [] [],
+ targetBuildDepends = [Dependency
+ `PackageName "base"`
+ (UnionVersionRanges
+ (MajorBoundVersion
+ `mkVersion [4,11,1,0]`)
+ (MajorBoundVersion
+ `mkVersion [4,12,0,0]`))
+ (Set.fromList
+ [LMainLibName]),
+ Dependency
+ `PackageName "jaeger-flamegraph"`
+ AnyVersion
+ (Set.fromList
+ [LMainLibName]),
+ Dependency
+ `PackageName "tasty"`
+ (MajorBoundVersion
+ `mkVersion [1,1,0,4]`)
+ (Set.fromList
+ [LMainLibName]),
+ Dependency
+ `PackageName "tasty-hspec"`
+ (MajorBoundVersion
+ `mkVersion [1,1,5]`)
+ (Set.fromList
+ [LMainLibName]),
+ Dependency
+ `PackageName "tasty-quickcheck"`
+ (MajorBoundVersion
+ `mkVersion [0,10]`)
+ (Set.fromList
+ [LMainLibName])],
+ virtualModules = []},
+ testInterface = TestSuiteExeV10
+ `mkVersion [1,0]` "Driver.hs",
+ testName = `UnqualComponentName ""`}}],
+ genPackageFlags = [],
+ packageDescription = PackageDescription
+ {author = "Sam Halliday",
+ benchmarks = [],
+ bugReports = "https://github.com/symbiont-io/jaeger-flamegraph/pulls",
+ buildTypeRaw = Nothing,
+ category = "Testing",
+ copyright = "(c) 2018 Symbiont.io",
+ customFieldsPD = [],
+ dataDir = "",
+ dataFiles = [],
+ description = concat
+ ["This is a small tool to convert JSON dumps obtained from a Jaeger\n",
+ "server () into a format consumable\n",
+ "by [FlameGraph](https://github.com/brendangregg/FlameGraph).\n",
+ "\n",
+ "First download the traces for your SERVICE limiting to LIMIT traces\n",
+ "\n",
+ "> $ curl http://your-jaeger-installation/api/traces?service=SERVICE&limit=LIMIT > input.json\n",
+ "\n",
+ "using the [undocumented Jaeger API](https://github.com/jaegertracing/jaeger/issues/456#issuecomment-412560321)\n",
+ "then use @jaeger-flamegraph@ to convert the data and send to @flamegraph.pl@\n",
+ "\n",
+ "> $ jaeger-flamegraph -f input.json | flamegraph.pl > output.svg\n"],
+ executables = [],
+ extraDocFiles = [],
+ extraSrcFiles = [],
+ extraTmpFiles = [],
+ foreignLibs = [],
+ homepage = "",
+ library = Nothing,
+ licenseFiles = ["LICENSE"],
+ licenseRaw = Left
+ (License (ELicense (ELicenseId BSD_3_Clause) Nothing)),
+ maintainer = "Sam Halliday",
+ package = PackageIdentifier
+ {pkgName = `PackageName "jaeger-flamegraph"`,
+ pkgVersion = `mkVersion [1,0,0]`},
+ pkgUrl = "",
+ setupBuildInfo = Nothing,
+ sourceRepos = [SourceRepo
+ {repoBranch = Nothing,
+ repoKind = RepoHead,
+ repoLocation = Just
+ "https://github.com/symbiont-io/jaeger-flamegraph",
+ repoModule = Nothing,
+ repoSubdir = Nothing,
+ repoTag = Nothing,
+ repoType = Just Git}],
+ specVersionRaw = Left `mkVersion [2,2]`,
+ stability = "",
+ subLibraries = [],
+ synopsis = "Generate flamegraphs from Jaeger .json dumps.",
+ testSuites = [],
+ testedWith = [_×_
+ GHC
+ (UnionVersionRanges
+ (MajorBoundVersion `mkVersion [8,4,4]`)
+ (MajorBoundVersion `mkVersion [8,6,2]`))]}}
diff --git a/Cabal/tests/ParserTests/regressions/jaeger-flamegraph.format b/Cabal/tests/ParserTests/regressions/jaeger-flamegraph.format
new file mode 100644
index 00000000000..d0d0eee4acc
--- /dev/null
+++ b/Cabal/tests/ParserTests/regressions/jaeger-flamegraph.format
@@ -0,0 +1,71 @@
+cabal-version: 2.2
+name: jaeger-flamegraph
+version: 1.0.0
+license: BSD-3-Clause
+license-file: LICENSE
+copyright: (c) 2018 Symbiont.io
+maintainer: Sam Halliday
+author: Sam Halliday
+tested-with: ghc ^>=8.4.4 || ^>=8.6.2
+bug-reports: https://github.com/symbiont-io/jaeger-flamegraph/pulls
+synopsis: Generate flamegraphs from Jaeger .json dumps.
+description:
+ This is a small tool to convert JSON dumps obtained from a Jaeger
+ server () into a format consumable
+ by [FlameGraph](https://github.com/brendangregg/FlameGraph).
+ .
+ First download the traces for your SERVICE limiting to LIMIT traces
+ .
+ > $ curl http://your-jaeger-installation/api/traces?service=SERVICE&limit=LIMIT > input.json
+ .
+ using the [undocumented Jaeger API](https://github.com/jaegertracing/jaeger/issues/456#issuecomment-412560321)
+ then use @jaeger-flamegraph@ to convert the data and send to @flamegraph.pl@
+ .
+ > $ jaeger-flamegraph -f input.json | flamegraph.pl > output.svg
+ .
+category: Testing
+
+source-repository head
+ type: git
+ location: https://github.com/symbiont-io/jaeger-flamegraph
+
+library
+ exposed-modules:
+ Interval
+ hs-source-dirs: library
+ default-language: Haskell2010
+ ghc-options: -Wall -Werror=missing-home-modules
+ build-depends:
+ base ^>=4.11.1.0 || ^>=4.12.0.0,
+ QuickCheck ^>=2.12.6.1
+
+executable jaeger-flamegraph
+ main-is: Main.hs
+ hs-source-dirs: exe
+ default-language: Haskell2010
+ ghc-options: -Wall -Werror=missing-home-modules -threaded
+ build-depends:
+ base ^>=4.11.1.0 || ^>=4.12.0.0,
+ jaeger-flamegraph -any,
+ bytestring ^>=0.10.8.2,
+ containers ^>=0.6.0.1,
+ extra ^>=1.6.13,
+ aeson ^>=1.4.1.0,
+ optparse-applicative ^>=0.14.3.0,
+ text ^>=1.2.3.1
+
+test-suite tests
+ type: exitcode-stdio-1.0
+ main-is: Driver.hs
+ build-tool-depends: tasty-discover:tasty-discover ^>=4.2.1
+ hs-source-dirs: test
+ other-modules:
+ IntervalTest
+ default-language: Haskell2010
+ ghc-options: -Wall -Werror=missing-home-modules -threaded
+ build-depends:
+ base ^>=4.11.1.0 || ^>=4.12.0.0,
+ jaeger-flamegraph -any,
+ tasty ^>=1.1.0.4,
+ tasty-hspec ^>=1.1.5,
+ tasty-quickcheck ^>=0.10
diff --git a/Cabal/tests/ParserTests/regressions/leading-comma.expr b/Cabal/tests/ParserTests/regressions/leading-comma.expr
index c5b4571411c..e4503a8a878 100644
--- a/Cabal/tests/ParserTests/regressions/leading-comma.expr
+++ b/Cabal/tests/ParserTests/regressions/leading-comma.expr
@@ -64,14 +64,14 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
AnyVersion
diff --git a/Cabal/tests/ParserTests/regressions/multiple-libs-2.expr b/Cabal/tests/ParserTests/regressions/multiple-libs-2.expr
index fa8ab2b2127..5ba2486dd36 100644
--- a/Cabal/tests/ParserTests/regressions/multiple-libs-2.expr
+++ b/Cabal/tests/ParserTests/regressions/multiple-libs-2.expr
@@ -44,14 +44,14 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
AnyVersion
@@ -106,14 +106,17 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ [] [],
+ sharedOptions = PerCompilerFlavor
+ [] [],
+ staticOptions = PerCompilerFlavor
+ [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
AnyVersion
diff --git a/Cabal/tests/ParserTests/regressions/noVersion.expr b/Cabal/tests/ParserTests/regressions/noVersion.expr
index 27d8b17508c..035da9aedf5 100644
--- a/Cabal/tests/ParserTests/regressions/noVersion.expr
+++ b/Cabal/tests/ParserTests/regressions/noVersion.expr
@@ -46,14 +46,14 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [Dependency
`PackageName "bad-package"`
(IntersectVersionRanges
diff --git a/Cabal/tests/ParserTests/regressions/nothing-unicode.expr b/Cabal/tests/ParserTests/regressions/nothing-unicode.expr
index b28db8f2ba3..de71734cb9c 100644
--- a/Cabal/tests/ParserTests/regressions/nothing-unicode.expr
+++ b/Cabal/tests/ParserTests/regressions/nothing-unicode.expr
@@ -45,14 +45,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
libExposed = True,
@@ -96,14 +104,14 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [],
virtualModules = []},
libExposed = True,
diff --git a/Cabal/tests/ParserTests/regressions/shake.expr b/Cabal/tests/ParserTests/regressions/shake.expr
index 6a16e32e9e7..80f4d03a811 100644
--- a/Cabal/tests/ParserTests/regressions/shake.expr
+++ b/Cabal/tests/ParserTests/regressions/shake.expr
@@ -43,17 +43,23 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [_×_
- GHC
- ["-threaded",
- "-with-rtsopts=-I0 -qg -qb"]],
+ options = PerCompilerFlavor
+ ["-threaded",
+ "-with-rtsopts=-I0 -qg -qb"]
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
exeName = `UnqualComponentName "shake"`,
@@ -108,14 +114,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "unix"`
(OrLaterVersion
@@ -161,14 +175,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
exeName = `UnqualComponentName "shake"`,
@@ -219,14 +241,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "old-time"`
AnyVersion
@@ -271,14 +301,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
exeName = `UnqualComponentName "shake"`,
@@ -328,14 +366,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "unix"`
AnyVersion
@@ -447,11 +493,11 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [_×_
- GHC
- ["-main-is",
- "Run.main",
- "-rtsopts"]],
+ options = PerCompilerFlavor
+ ["-main-is",
+ "Run.main",
+ "-rtsopts"]
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [`ModuleName ["Development","Make","All"]`,
@@ -510,9 +556,9 @@ GenericPackageDescription
`ModuleName ["Paths_shake"]`,
`ModuleName ["Run"]`],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(WildcardVersion
@@ -663,14 +709,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "unix"`
(OrLaterVersion
@@ -719,14 +773,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
libExposed = True,
@@ -780,14 +842,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "old-time"`
AnyVersion
@@ -835,14 +905,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
libExposed = True,
@@ -895,14 +973,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "unix"`
AnyVersion
@@ -1020,7 +1106,7 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [`ModuleName ["Development","Ninja","Env"]`,
@@ -1066,9 +1152,9 @@ GenericPackageDescription
`ModuleName ["General","Timing"]`,
`ModuleName ["Paths_shake"]`],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(OrLaterVersion
@@ -1207,16 +1293,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [_×_
- GHC
- ["-with-rtsopts=-K1K"]],
+ options = PerCompilerFlavor
+ ["-with-rtsopts=-K1K"]
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
testInterface = TestSuiteUnsupported
@@ -1264,16 +1356,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [_×_
- GHC
- ["-threaded"]],
+ options = PerCompilerFlavor
+ ["-threaded"]
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
testInterface = TestSuiteUnsupported
@@ -1330,14 +1428,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "unix"`
(OrLaterVersion
@@ -1385,14 +1491,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
testInterface = TestSuiteUnsupported
@@ -1445,14 +1559,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "old-time"`
AnyVersion
@@ -1499,14 +1621,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
testInterface = TestSuiteUnsupported
@@ -1558,14 +1688,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor
+ []
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [Dependency
`PackageName "unix"`
AnyVersion
@@ -1679,11 +1817,11 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [_×_
- GHC
- ["-main-is",
- "Test.main",
- "-rtsopts"]],
+ options = PerCompilerFlavor
+ ["-main-is",
+ "Test.main",
+ "-rtsopts"]
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [`ModuleName ["Development","Make","All"]`,
@@ -1783,9 +1921,12 @@ GenericPackageDescription
`ModuleName ["Test","Verbosity"]`,
`ModuleName ["Test","Version"]`],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ [] [],
+ sharedOptions = PerCompilerFlavor
+ [] [],
+ staticOptions = PerCompilerFlavor
+ [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(WildcardVersion
diff --git a/Cabal/tests/ParserTests/regressions/spdx-1.expr b/Cabal/tests/ParserTests/regressions/spdx-1.expr
index b4153a1b6b9..2e10ba58904 100644
--- a/Cabal/tests/ParserTests/regressions/spdx-1.expr
+++ b/Cabal/tests/ParserTests/regressions/spdx-1.expr
@@ -41,14 +41,14 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [],
virtualModules = []},
libExposed = True,
diff --git a/Cabal/tests/ParserTests/regressions/spdx-2.expr b/Cabal/tests/ParserTests/regressions/spdx-2.expr
index 4ee43ab0acf..6490a34dfd0 100644
--- a/Cabal/tests/ParserTests/regressions/spdx-2.expr
+++ b/Cabal/tests/ParserTests/regressions/spdx-2.expr
@@ -41,14 +41,14 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [],
virtualModules = []},
libExposed = True,
diff --git a/Cabal/tests/ParserTests/regressions/spdx-3.expr b/Cabal/tests/ParserTests/regressions/spdx-3.expr
index 354de4777dc..0ccd9c68c65 100644
--- a/Cabal/tests/ParserTests/regressions/spdx-3.expr
+++ b/Cabal/tests/ParserTests/regressions/spdx-3.expr
@@ -41,14 +41,14 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [],
virtualModules = []},
libExposed = True,
diff --git a/Cabal/tests/ParserTests/regressions/th-lift-instances.expr b/Cabal/tests/ParserTests/regressions/th-lift-instances.expr
index 2f0d596ec54..52492f6e641 100644
--- a/Cabal/tests/ParserTests/regressions/th-lift-instances.expr
+++ b/Cabal/tests/ParserTests/regressions/th-lift-instances.expr
@@ -78,17 +78,16 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [_×_
- GHC
- ["-Wall", "-fwarn-tabs"]],
+ options = PerCompilerFlavor
+ ["-Wall", "-fwarn-tabs"] [],
otherExtensions = [EnableExtension
TemplateHaskell],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(IntersectVersionRanges
@@ -232,15 +231,18 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [EnableExtension
TemplateHaskell],
otherLanguages = [],
otherModules = [`ModuleName ["Data"]`],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ [] [],
+ sharedOptions = PerCompilerFlavor
+ [] [],
+ staticOptions = PerCompilerFlavor
+ [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
AnyVersion
@@ -349,16 +351,22 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [_×_
- GHC
- ["-Werror"]],
+ options = PerCompilerFlavor
+ ["-Werror"]
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ []
+ [],
+ sharedOptions = PerCompilerFlavor
+ []
+ [],
+ staticOptions = PerCompilerFlavor
+ []
+ [],
targetBuildDepends = [],
virtualModules = []},
testInterface = TestSuiteUnsupported
@@ -416,16 +424,19 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [_×_
- GHC
- ["-Wall", "-threaded"]],
+ options = PerCompilerFlavor
+ ["-Wall", "-threaded"]
+ [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor
+ [] [],
+ sharedOptions = PerCompilerFlavor
+ [] [],
+ staticOptions = PerCompilerFlavor
+ [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
AnyVersion
diff --git a/Cabal/tests/ParserTests/regressions/wl-pprint-indef.expr b/Cabal/tests/ParserTests/regressions/wl-pprint-indef.expr
index 9092ddc0acd..23e28a0fa0e 100644
--- a/Cabal/tests/ParserTests/regressions/wl-pprint-indef.expr
+++ b/Cabal/tests/ParserTests/regressions/wl-pprint-indef.expr
@@ -50,14 +50,14 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [`ModuleName ["StringImpl"]`],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(EarlierVersion
@@ -126,14 +126,14 @@ GenericPackageDescription
ldOptions = [],
mixins = [],
oldExtensions = [],
- options = [],
+ options = PerCompilerFlavor [] [],
otherExtensions = [],
otherLanguages = [],
otherModules = [],
pkgconfigDepends = [],
- profOptions = [],
- sharedOptions = [],
- staticOptions = [],
+ profOptions = PerCompilerFlavor [] [],
+ sharedOptions = PerCompilerFlavor [] [],
+ staticOptions = PerCompilerFlavor [] [],
targetBuildDepends = [Dependency
`PackageName "base"`
(EarlierVersion