diff --git a/Cabal/Cabal.cabal b/Cabal/Cabal.cabal index 11eae30268e6bd0a213af8982c974d0551faa240..8bbaf7f348224044e9cc0703941efd50291e0929 100644 --- a/Cabal/Cabal.cabal +++ b/Cabal/Cabal.cabal @@ -811,7 +811,7 @@ test-suite hackage-tests base-compat >=0.11.0 && <0.12, base-orphans >=0.6 && <0.9, clock >=0.8 && <0.9, - optparse-applicative >=0.13.2.0 && <0.16, + optparse-applicative >=0.13.2.0 && <0.17, stm >=2.4.5.0 && <2.6, tar >=0.5.0.3 && <0.6 diff --git a/Cabal/Distribution/Compat/Process.hs b/Cabal/Distribution/Compat/Process.hs index 0862a9f3f152f1db1e5eaf0f74ddb1a5987c6252..7d02ba9fe59bada9b17592feb8bbe592e50e832e 100644 --- a/Cabal/Distribution/Compat/Process.hs +++ b/Cabal/Distribution/Compat/Process.hs @@ -26,11 +26,11 @@ import System.Process (waitForProcess) -- in the presence of @exec(3)@ on Windows. -- -- Unfortunately the process job support is badly broken in @process@ releases --- prior to 1.6.8, so we disable it in these versions, despite the fact that +-- prior to 1.6.9, so we disable it in these versions, despite the fact that -- this means we may see sporatic build failures without jobs. enableProcessJobs :: CreateProcess -> CreateProcess #ifdef MIN_VERSION_process -#if MIN_VERSION_process(1,6,8) +#if MIN_VERSION_process(1,6,9) enableProcessJobs cp = cp {Process.use_process_jobs = True} #else enableProcessJobs cp = cp diff --git a/Cabal/Distribution/Simple/GHC.hs b/Cabal/Distribution/Simple/GHC.hs index 4db29453f9302bbd79969d5ecfd0ee8b3aeb6567..1d4d5f8a2663b8e7d1c7a9ae54f9cdc3bf6783c6 100644 --- a/Cabal/Distribution/Simple/GHC.hs +++ b/Cabal/Distribution/Simple/GHC.hs @@ -136,11 +136,12 @@ configure verbosity hcPath hcPkgPath conf0 = do (userMaybeSpecifyPath "ghc" hcPath conf0) let implInfo = ghcVersionImplInfo ghcVersion - -- Cabal currently supports ghc >= 7.0.1 && < 8.12 - unless (ghcVersion < mkVersion [8,14]) $ + -- Cabal currently supports ghc >= 7.0.1 && < 9.1 + -- ... and the following odd development version + unless (ghcVersion < mkVersion [9,2]) $ warn verbosity $ "Unknown/unsupported 'ghc' version detected " - ++ "(Cabal " ++ prettyShow cabalVersion ++ " supports 'ghc' version < 8.12): " + ++ "(Cabal " ++ prettyShow cabalVersion ++ " supports 'ghc' version < 9.1): " ++ programPath ghcProg ++ " is version " ++ prettyShow ghcVersion -- This is slightly tricky, we have to configure ghc first, then we use the diff --git a/Cabal/Distribution/Simple/Program/GHC.hs b/Cabal/Distribution/Simple/Program/GHC.hs index 5c860b1149241c7d453cfc6373c821cddd0b45f0..85967bd7f4a1dc05e3e9bb0e4b08c4140fd7fa1c 100644 --- a/Cabal/Distribution/Simple/Program/GHC.hs +++ b/Cabal/Distribution/Simple/Program/GHC.hs @@ -55,7 +55,7 @@ normaliseGhcArgs (Just ghcVersion) PackageDescription{..} ghcArgs supportedGHCVersions :: VersionRange supportedGHCVersions = intersectVersionRanges (orLaterVersion (mkVersion [8,0])) - (earlierVersion (mkVersion [8,13])) + (earlierVersion (mkVersion [9,1])) from :: Monoid m => [Int] -> m -> m from version flags @@ -237,7 +237,7 @@ normaliseGhcArgs (Just ghcVersion) PackageDescription{..} ghcArgs , from [8,4] $ to [8,6] [ "-fno-max-valid-substitutions" ] , from [8,6] [ "-dhex-word-literals" ] , from [8,8] [ "-fshow-docs-of-hole-fits", "-fno-show-docs-of-hole-fits" ] - , from [8,12] [ "-dlinear-core-lint" ] + , from [9,0] [ "-dlinear-core-lint" ] ] isOptIntFlag :: String -> Any diff --git a/Cabal/tests/UnitTests/Distribution/Simple/Program/GHC.hs b/Cabal/tests/UnitTests/Distribution/Simple/Program/GHC.hs index 7c7f2a60b20cad1e0a533eae10a3acd8e86bf633..97a6b6528bf55406f6be87107ab882fe037fe76a 100644 --- a/Cabal/tests/UnitTests/Distribution/Simple/Program/GHC.hs +++ b/Cabal/tests/UnitTests/Distribution/Simple/Program/GHC.hs @@ -1,12 +1,12 @@ module UnitTests.Distribution.Simple.Program.GHC (tests) where -import Test.Tasty (TestTree, testGroup) -import Test.Tasty.HUnit import Data.Algorithm.Diff (PolyDiff (..), getDiff) +import Test.Tasty (TestTree, testGroup) +import Test.Tasty.HUnit -import Distribution.Simple.Program.GHC (normaliseGhcArgs) import Distribution.PackageDescription (emptyPackageDescription) -import Distribution.Version (mkVersion) +import Distribution.Simple.Program.GHC (normaliseGhcArgs) +import Distribution.Version (mkVersion) tests :: TestTree tests = testGroup "Distribution.Simple.Program.GHC" @@ -29,14 +29,14 @@ tests = testGroup "Distribution.Simple.Program.GHC" assertListEquals flags options_8_10_affects - , testCase "options added in GHC-8.12" $ do + , testCase "options added in GHC-9.0" $ do let flags :: [String] flags = normaliseGhcArgs - (Just $ mkVersion [8,12,1]) + (Just $ mkVersion [9,0,1]) emptyPackageDescription - options_8_12_all + options_9_0_all - assertListEquals flags options_8_12_affects + assertListEquals flags options_9_0_affects ] ] @@ -152,11 +152,11 @@ options_8_10_affects = ] ------------------------------------------------------------------------------- --- GHC-8.12 +-- GHC-9.0 ------------------------------------------------------------------------------- -options_8_12_all :: [String] -options_8_12_all = +options_9_0_all :: [String] +options_9_0_all = [ "-ddump-cmm-opt" , "-ddump-cpranal" , "-ddump-cpr-signatures" @@ -164,9 +164,9 @@ options_8_12_all = -- NOTE: we filter out -dlinear-core-lint -- we filter, -dcore-lint, -dstg-lint etc. , "-dlinear-core-lint" - ] ++ options_8_12_affects + ] ++ options_9_0_affects -options_8_12_affects :: [String] -options_8_12_affects = +options_9_0_affects :: [String] +options_9_0_affects = [ "-fcmm-static-pred" ] diff --git a/cabal-dev-scripts/cabal-dev-scripts.cabal b/cabal-dev-scripts/cabal-dev-scripts.cabal index 3787e8cc80c84a9a92ac0345ac7a5f44860cf281..eae2d2271f724161cbe78c73064da18d4a04aec0 100644 --- a/cabal-dev-scripts/cabal-dev-scripts.cabal +++ b/cabal-dev-scripts/cabal-dev-scripts.cabal @@ -35,7 +35,7 @@ executable gen-spdx , containers , Diff ^>=0.4 , lens ^>=4.18.1 || ^>=4.19.1 - , optparse-applicative ^>=0.15.1.0 + , optparse-applicative ^>=0.15.1.0 || ^>=0.16.0.0 , text , zinza ^>=0.2 @@ -52,7 +52,7 @@ executable gen-spdx-exc , containers , Diff ^>=0.4 , lens ^>=4.18.1 || ^>=4.19.1 - , optparse-applicative ^>=0.15.1.0 + , optparse-applicative ^>=0.15.1.0 || ^>=0.16.0.0 , text , zinza ^>=0.2 diff --git a/cabal-install/Distribution/Client/CmdSdist.hs b/cabal-install/Distribution/Client/CmdSdist.hs index adbe04afd07873e6aeba4f4cef91b7d188d70e35..1f4e0159800118609a18f2a6faac5e6cce3c82cd 100644 --- a/cabal-install/Distribution/Client/CmdSdist.hs +++ b/cabal-install/Distribution/Client/CmdSdist.hs @@ -221,7 +221,7 @@ packageToSdist verbosity projectRootDir format outputFile pkg = do let death = die' verbosity ("The impossible happened: a local package isn't local" <> (show pkg)) dir0 <- case srcpkgSource pkg of LocalUnpackedPackage path -> pure (Right path) - RemoteSourceRepoPackage _ (Just path) -> pure (Right path) + RemoteSourceRepoPackage _ (Just tgz) -> pure (Left tgz) RemoteSourceRepoPackage {} -> death LocalTarballPackage tgz -> pure (Left tgz) RemoteTarballPackage _ (Just tgz) -> pure (Left tgz) diff --git a/cabal-install/Distribution/Client/ProjectPlanning.hs b/cabal-install/Distribution/Client/ProjectPlanning.hs index 117587bcae5e9c9cd77d356a67f88b555826ba9d..9f63d15ecf9833ec0effa1fab9ab844489a56e01 100644 --- a/cabal-install/Distribution/Client/ProjectPlanning.hs +++ b/cabal-install/Distribution/Client/ProjectPlanning.hs @@ -1100,6 +1100,8 @@ planPackages verbosity comp platform solver SolverSettings{..} -- respective major Cabal version bundled with the respective GHC -- release). -- + -- GHC 9.0 needs Cabal >= 3.4 + -- GHC 8.10 needs Cabal >= 3.2 -- GHC 8.8 needs Cabal >= 3.0 -- GHC 8.6 needs Cabal >= 2.4 -- GHC 8.4 needs Cabal >= 2.2 @@ -1113,7 +1115,7 @@ planPackages verbosity comp platform solver SolverSettings{..} -- TODO: long-term, this compatibility matrix should be -- stored as a field inside 'Distribution.Compiler.Compiler' setupMinCabalVersionConstraint - | isGHC, compVer >= mkVersion [8,12] = mkVersion [3,4] + | isGHC, compVer >= mkVersion [9,0] = mkVersion [3,4] | isGHC, compVer >= mkVersion [8,10] = mkVersion [3,2] | isGHC, compVer >= mkVersion [8,8] = mkVersion [3,0] | isGHC, compVer >= mkVersion [8,6] = mkVersion [2,4] diff --git a/cabal-testsuite/cabal-testsuite.cabal b/cabal-testsuite/cabal-testsuite.cabal index cb03e4048e15966b47e8426e7ba14fc56da92629..f9873afefa8367815165d64b712e3f3ccd6bd6c3 100644 --- a/cabal-testsuite/cabal-testsuite.cabal +++ b/cabal-testsuite/cabal-testsuite.cabal @@ -64,7 +64,7 @@ library , directory ^>= 1.2.0.1 || ^>= 1.3.0.0 , exceptions ^>= 0.10.0 , filepath ^>= 1.3.0.1 || ^>= 1.4.0.0 - , optparse-applicative ^>= 0.14.3.0 || ^>=0.15.1.0 + , optparse-applicative ^>= 0.14.3.0 || ^>=0.15.1.0 || ^>=0.16.0.0 , process ^>= 1.1.0.2 || ^>= 1.2.0.0 || ^>= 1.4.2.0 || ^>= 1.6.1.0 , regex-compat-tdfa ^>= 0.95.1.4 , regex-tdfa ^>= 1.2.3.1 || ^>=1.3.1.0