summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml10
-rw-r--r--compiler/GHC/CmmToAsm/X86/CodeGen.hs7
-rw-r--r--compiler/GHC/Core/Opt/ConstantFold.hs7
-rw-r--r--compiler/GHC/Iface/Type.hs6
-rw-r--r--compiler/GHC/StgToCmm/Prim.hs6
-rw-r--r--compiler/GHC/SysTools/Process.hs4
-rw-r--r--compiler/GHC/Utils/Binary/Typeable.hs4
-rw-r--r--configure.ac4
-rw-r--r--hadrian/hadrian.cabal2
-rw-r--r--hadrian/src/Hadrian/Haskell/Cabal/Parse.hs14
-rw-r--r--hadrian/stack.yaml6
-rw-r--r--hadrian/stack.yaml.lock12
-rw-r--r--libraries/base/GHC/Windows.hs11
-rw-r--r--libraries/ghc-heap/GHC/Exts/Heap.hs7
-rw-r--r--libraries/ghc-heap/GHC/Exts/Heap/Closures.hs7
-rw-r--r--libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs14
-rw-r--r--utils/check-api-annotations/check-api-annotations.cabal2
-rw-r--r--utils/check-ppr/check-ppr.cabal2
-rw-r--r--utils/ghc-cabal/ghc-cabal.cabal2
19 files changed, 32 insertions, 95 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index cb4c6d4bcc..d91e3b8f76 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -485,8 +485,8 @@ validate-x86_64-darwin:
tags:
- x86_64-darwin
variables:
- GHC_VERSION: 8.8.4
- CABAL_INSTALL_VERSION: 3.0.0.0
+ GHC_VERSION: 8.10.4
+ CABAL_INSTALL_VERSION: 3.2.0.0
BIN_DIST_PREP_TAR_COMP: "ghc-x86_64-apple-darwin.tar.xz"
MACOSX_DEPLOYMENT_TARGET: "10.7"
# Only Sierra and onwards supports clock_gettime. See #12858
@@ -518,7 +518,7 @@ validate-x86_64-darwin:
tags:
- x86_64-darwin
variables:
- GHC_VERSION: 8.8.4
+ GHC_VERSION: 8.10.4
MACOSX_DEPLOYMENT_TARGET: "10.7"
ac_cv_func_clock_gettime: "no"
LANG: "en_US.UTF-8"
@@ -979,8 +979,8 @@ release-x86_64-linux-fedora27-dwarf:
#FORCE_SYMLINKS: 1
LANG: "en_US.UTF-8"
SPHINXBUILD: "/mingw64/bin/sphinx-build.exe"
- CABAL_INSTALL_VERSION: "3.0.0.0"
- GHC_VERSION: "8.8.4"
+ CABAL_INSTALL_VERSION: "3.2.0.0"
+ GHC_VERSION: "8.10.4"
cache:
paths:
- cabal-cache
diff --git a/compiler/GHC/CmmToAsm/X86/CodeGen.hs b/compiler/GHC/CmmToAsm/X86/CodeGen.hs
index 36b24e8be2..60d19f43c1 100644
--- a/compiler/GHC/CmmToAsm/X86/CodeGen.hs
+++ b/compiler/GHC/CmmToAsm/X86/CodeGen.hs
@@ -4,13 +4,6 @@
{-# LANGUAGE NondecreasingIndentation #-}
{-# LANGUAGE TupleSections #-}
-#if __GLASGOW_HASKELL__ <= 808
--- GHC 8.10 deprecates this flag, but GHC 8.8 needs it
--- The default iteration limit is a bit too low for the definitions
--- in this module.
-{-# OPTIONS_GHC -fmax-pmcheck-iterations=10000000 #-}
-#endif
-
{-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-}
-----------------------------------------------------------------------------
diff --git a/compiler/GHC/Core/Opt/ConstantFold.hs b/compiler/GHC/Core/Opt/ConstantFold.hs
index 02a3983e92..c463bda314 100644
--- a/compiler/GHC/Core/Opt/ConstantFold.hs
+++ b/compiler/GHC/Core/Opt/ConstantFold.hs
@@ -23,13 +23,6 @@ ToDo:
{-# OPTIONS_GHC -optc-DNON_POSIX_SOURCE -Wno-incomplete-uni-patterns #-}
-#if __GLASGOW_HASKELL__ <= 808
--- GHC 8.10 deprecates this flag, but GHC 8.8 needs it
--- The default iteration limit is a bit too low for the definitions
--- in this module.
-{-# OPTIONS_GHC -fmax-pmcheck-iterations=20000000 #-}
-#endif
-
-- | Constant Folder
module GHC.Core.Opt.ConstantFold
( primOpRules
diff --git a/compiler/GHC/Iface/Type.hs b/compiler/GHC/Iface/Type.hs
index eaba819a74..ae0d592959 100644
--- a/compiler/GHC/Iface/Type.hs
+++ b/compiler/GHC/Iface/Type.hs
@@ -14,12 +14,6 @@ This module defines interface types and binders
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE LambdaCase #-}
-#if !MIN_VERSION_GLASGOW_HASKELL(8,10,0,0)
-{-# OPTIONS_GHC -Wno-overlapping-patterns -Wno-incomplete-patterns #-}
- -- N.B. This can be dropped once GHC 8.8 can be dropped as a
- -- bootstrap compiler.
-#endif
-
module GHC.Iface.Type (
IfExtName, IfLclName,
diff --git a/compiler/GHC/StgToCmm/Prim.hs b/compiler/GHC/StgToCmm/Prim.hs
index a0acdf897a..b10462a10b 100644
--- a/compiler/GHC/StgToCmm/Prim.hs
+++ b/compiler/GHC/StgToCmm/Prim.hs
@@ -1,12 +1,6 @@
{-# LANGUAGE CPP #-}
{-# LANGUAGE LambdaCase #-}
-#if __GLASGOW_HASKELL__ <= 808
--- GHC 8.10 deprecates this flag, but GHC 8.8 needs it
--- emitPrimOp is quite large
-{-# OPTIONS_GHC -fmax-pmcheck-iterations=4000000 #-}
-#endif
-
{-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-}
----------------------------------------------------------------------------
diff --git a/compiler/GHC/SysTools/Process.hs b/compiler/GHC/SysTools/Process.hs
index 1159506d18..d98710febd 100644
--- a/compiler/GHC/SysTools/Process.hs
+++ b/compiler/GHC/SysTools/Process.hs
@@ -40,14 +40,10 @@ import GHC.Utils.TmpFs
-- @process >= 1.6.9.0@).
enableProcessJobs :: CreateProcess -> CreateProcess
#if defined(MIN_VERSION_process)
-#if MIN_VERSION_process(1,6,9)
enableProcessJobs opts = opts { use_process_jobs = True }
#else
enableProcessJobs opts = opts
#endif
-#else
-enableProcessJobs opts = opts
-#endif
#if !MIN_VERSION_base(4,15,0)
-- TODO: This can be dropped with GHC 8.16
diff --git a/compiler/GHC/Utils/Binary/Typeable.hs b/compiler/GHC/Utils/Binary/Typeable.hs
index ebee92e211..636733357a 100644
--- a/compiler/GHC/Utils/Binary/Typeable.hs
+++ b/compiler/GHC/Utils/Binary/Typeable.hs
@@ -136,10 +136,8 @@ instance Binary RuntimeRep where
put_ bh Word8Rep = putByte bh 13
put_ bh Int16Rep = putByte bh 14
put_ bh Word16Rep = putByte bh 15
-#if __GLASGOW_HASKELL__ >= 809
put_ bh Int32Rep = putByte bh 16
put_ bh Word32Rep = putByte bh 17
-#endif
get bh = do
tag <- getByte bh
@@ -165,10 +163,8 @@ instance Binary RuntimeRep where
13 -> pure Word8Rep
14 -> pure Int16Rep
15 -> pure Word16Rep
-#if __GLASGOW_HASKELL__ >= 809
16 -> pure Int32Rep
17 -> pure Word32Rep
-#endif
_ -> fail "Binary.putRuntimeRep: invalid tag"
instance Binary KindRep where
diff --git a/configure.ac b/configure.ac
index fcf74567d3..2645ee5aa1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -191,8 +191,8 @@ if test "$WithGhc" = ""
then
AC_MSG_ERROR([GHC is required.])
fi
-FP_COMPARE_VERSIONS([$GhcVersion],[-lt],[8.8],
- [AC_MSG_ERROR([GHC version 8.8 or later is required to compile GHC.])])
+FP_COMPARE_VERSIONS([$GhcVersion],[-lt],[8.10],
+ [AC_MSG_ERROR([GHC version 8.10 or later is required to compile GHC.])])
if test `expr $GhcMinVersion % 2` = "1"
then
diff --git a/hadrian/hadrian.cabal b/hadrian/hadrian.cabal
index c82ff82428..408cdc4f37 100644
--- a/hadrian/hadrian.cabal
+++ b/hadrian/hadrian.cabal
@@ -134,7 +134,7 @@ executable hadrian
, BangPatterns
other-extensions: MultiParamTypeClasses
, TypeFamilies
- build-depends: Cabal >= 3.0 && < 3.5
+ build-depends: Cabal >= 3.2 && < 3.5
, QuickCheck >= 2.6 && < 2.15
, base >= 4.8 && < 5
, bytestring >= 0.10 && < 0.12
diff --git a/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs b/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs
index 776edb15e7..49352c6823 100644
--- a/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs
+++ b/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs
@@ -38,9 +38,7 @@ import qualified Distribution.Simple.PackageIndex as C
import qualified Distribution.Text as C
import qualified Distribution.Types.LocalBuildInfo as C
import qualified Distribution.Types.MungedPackageId as C
-#if MIN_VERSION_Cabal(3,2,0)
import qualified Distribution.Utils.ShortText as C
-#endif
#if !MIN_VERSION_Cabal(3,4,0)
import qualified Distribution.Types.CondTree as C
#endif
@@ -76,8 +74,8 @@ parsePackageData pkg = do
deps = nubOrd sorted \\ [name]
depPkgs = catMaybes $ map findPackageByName deps
return $ PackageData name version
- (shortTextToString (C.synopsis pd))
- (shortTextToString (C.description pd))
+ (C.fromShortText (C.synopsis pd))
+ (C.fromShortText (C.description pd))
depPkgs gpd
where
-- Collect an overapproximation of dependencies by ignoring conditionals
@@ -87,14 +85,6 @@ parsePackageData pkg = do
where
f (C.CondBranch _ t mt) = collectDeps (Just t) ++ collectDeps mt
-#if MIN_VERSION_Cabal(3,2,0)
- shortTextToString :: C.ShortText -> String
- shortTextToString = C.fromShortText
-#else
- shortTextToString :: String -> String
- shortTextToString = id
-#endif
-
-- | Parse the package identifier from a Cabal file.
parseCabalPkgId :: FilePath -> IO String
parseCabalPkgId file = C.display . C.package . C.packageDescription <$> C.readGenericPackageDescription C.silent file
diff --git a/hadrian/stack.yaml b/hadrian/stack.yaml
index 9147e2dc57..20ed0c7ac7 100644
--- a/hadrian/stack.yaml
+++ b/hadrian/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-16.14
+resolver: lts-17.5
packages:
- '.'
@@ -12,7 +12,3 @@ nix:
- git
- ncurses
- perl
-
-extra-deps:
-- alex-3.2.6
-- happy-1.20.0
diff --git a/hadrian/stack.yaml.lock b/hadrian/stack.yaml.lock
new file mode 100644
index 0000000000..1bba64b861
--- /dev/null
+++ b/hadrian/stack.yaml.lock
@@ -0,0 +1,12 @@
+# This file was autogenerated by Stack.
+# You should not edit this file by hand.
+# For more information, please see the documentation at:
+# https://docs.haskellstack.org/en/stable/lock_files
+
+snapshots:
+- original: lts-17.5
+ completed:
+ sha256: 78e8ebabf11406261abbc95b44f240acf71802630b368888f6d758de7fc3a2f7
+ url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/17/5.yaml
+ size: 565266
+packages: []
diff --git a/libraries/base/GHC/Windows.hs b/libraries/base/GHC/Windows.hs
index d8f8bef804..be0c3837a9 100644
--- a/libraries/base/GHC/Windows.hs
+++ b/libraries/base/GHC/Windows.hs
@@ -74,7 +74,7 @@ module GHC.Windows (
nullHANDLE,
) where
-import Data.Bits (shiftL, shiftR, (.|.), (.&.))
+import Data.Bits (finiteBitSize, shiftL, shiftR, (.|.), (.&.))
import Data.Char
import Data.OldList
import Data.Maybe
@@ -93,15 +93,6 @@ import System.IO.Error
import qualified Numeric
-#if MIN_VERSION_base(4,7,0)
-import Data.Bits (finiteBitSize)
-#else
-import Data.Bits (Bits, bitSize)
-
-finiteBitSize :: (Bits a) => a -> Int
-finiteBitSize = bitSize
-#endif
-
#include "windows_cconv.h"
type BOOL = Bool
diff --git a/libraries/ghc-heap/GHC/Exts/Heap.hs b/libraries/ghc-heap/GHC/Exts/Heap.hs
index 1e429ca054..2906cf6926 100644
--- a/libraries/ghc-heap/GHC/Exts/Heap.hs
+++ b/libraries/ghc-heap/GHC/Exts/Heap.hs
@@ -153,14 +153,7 @@ getClosureDataFromHeapObject
-- ^ Heap representation of the closure.
getClosureDataFromHeapObject x = do
case unpackClosure# x of
-#if MIN_VERSION_ghc_prim(0,5,3)
(# infoTableAddr, heapRep, pointersArray #) -> do
-#else
- -- This is a hack to cover the bootstrap compiler using the old version
- -- of 'unpackClosure'. The new 'unpackClosure' return values are not
- -- merely a reordering, so using the old version would not work.
- (# infoTableAddr, pointersArray, heapRep #) -> do
-#endif
let infoTablePtr = Ptr infoTableAddr
ptrList = [case indexArray# pointersArray i of
(# ptr #) -> Box ptr
diff --git a/libraries/ghc-heap/GHC/Exts/Heap/Closures.hs b/libraries/ghc-heap/GHC/Exts/Heap/Closures.hs
index 1a6a9371d4..3b51b22ceb 100644
--- a/libraries/ghc-heap/GHC/Exts/Heap/Closures.hs
+++ b/libraries/ghc-heap/GHC/Exts/Heap/Closures.hs
@@ -16,12 +16,7 @@ module GHC.Exts.Heap.Closures (
, WhyBlocked(..)
, TsoFlags(..)
, allClosures
-#if __GLASGOW_HASKELL__ >= 809
- -- The closureSize# primop is unsupported on earlier GHC releases but we
- -- build ghc-heap as a boot library so it must be buildable. Drop this once
- -- we are guaranteed to bootstsrap with GHC >= 8.9.
, closureSize
-#endif
-- * Boxes
, Box(..)
@@ -430,11 +425,9 @@ allClosures (WeakClosure {..}) = [cfinalizers, key, value, finalizer, link]
allClosures (OtherClosure {..}) = hvalues
allClosures _ = []
-#if __GLASGOW_HASKELL__ >= 809
-- | Get the size of the top-level closure in words.
-- Includes header and payload. Does not follow pointers.
--
-- @since 8.10.1
closureSize :: Box -> Int
closureSize (Box x) = I# (closureSize# x)
-#endif
diff --git a/libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs b/libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs
index 67017d4926..a41d0a47b3 100644
--- a/libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs
+++ b/libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs
@@ -1,4 +1,5 @@
{-# LANGUAGE PolyKinds #-}
+{-# LANGUAGE StandaloneKindSignatures #-}
{-# LANGUAGE Trustworthy #-}
-- |
@@ -29,17 +30,12 @@ import Prelude
-- * Type synonyms
----------------------------------------------------------
--- Since GHC 8.8 is currently the minimum boot compiler version that we must
--- support, we must use inline kind signatures to make TExpQ and CodeQ
--- levity polymorphic. When we drop support for GHC 8.8, we can instead use
--- standalone kind signatures, which are provided as comments.
-
-- | Levity-polymorphic since /template-haskell-2.17.0.0/.
--- type TExpQ :: TYPE r -> Kind.Type
-type TExpQ (a :: TYPE r) = Q (TExp a)
+type TExpQ :: TYPE r -> Kind.Type
+type TExpQ a = Q (TExp a)
--- type CodeQ :: TYPE r -> Kind.Type
-type CodeQ = Code Q :: (TYPE r -> Kind.Type)
+type CodeQ :: TYPE r -> Kind.Type
+type CodeQ = Code Q
type InfoQ = Q Info
type PatQ = Q Pat
diff --git a/utils/check-api-annotations/check-api-annotations.cabal b/utils/check-api-annotations/check-api-annotations.cabal
index 8bf0fb6922..dbaa25fd48 100644
--- a/utils/check-api-annotations/check-api-annotations.cabal
+++ b/utils/check-api-annotations/check-api-annotations.cabal
@@ -24,6 +24,6 @@ Executable check-api-annotations
Build-Depends: base >= 4 && < 5,
containers,
- Cabal >= 3.0 && < 3.6,
+ Cabal >= 3.2 && < 3.6,
directory,
ghc
diff --git a/utils/check-ppr/check-ppr.cabal b/utils/check-ppr/check-ppr.cabal
index 059a4d364c..c9ff366786 100644
--- a/utils/check-ppr/check-ppr.cabal
+++ b/utils/check-ppr/check-ppr.cabal
@@ -25,7 +25,7 @@ Executable check-ppr
Build-Depends: base >= 4 && < 5,
bytestring,
containers,
- Cabal >= 3.0 && < 3.6,
+ Cabal >= 3.2 && < 3.6,
directory,
filepath,
ghc
diff --git a/utils/ghc-cabal/ghc-cabal.cabal b/utils/ghc-cabal/ghc-cabal.cabal
index 5914c192e6..e00a812f32 100644
--- a/utils/ghc-cabal/ghc-cabal.cabal
+++ b/utils/ghc-cabal/ghc-cabal.cabal
@@ -21,6 +21,6 @@ Executable ghc-cabal
Build-Depends: base >= 3 && < 5,
bytestring >= 0.10 && < 0.11,
- Cabal >= 3.0 && < 3.6,
+ Cabal >= 3.2 && < 3.6,
directory >= 1.1 && < 1.4,
filepath >= 1.2 && < 1.5