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