[commit: packages/array] master: Drop support for GHC prior to GHC 7.8 (1244242)

git at git.haskell.org git at git.haskell.org
Sun Apr 30 21:29:21 UTC 2017


Repository : ssh://git@git.haskell.org/array

On branch  : master
Link       : http://git.haskell.org/packages/array.git/commitdiff/1244242d895724ae53b13104ca225455ff08259c

>---------------------------------------------------------------

commit 1244242d895724ae53b13104ca225455ff08259c
Author: Herbert Valerio Riedel <hvr at gnu.org>
Date:   Sun Apr 30 23:25:05 2017 +0200

    Drop support for GHC prior to GHC 7.8
    
    The recent overflow check made the code stop working w/ prior versions
    of GHC. But there's little benefit in support much older GHCs, so it's
    easier to just cut the support window.


>---------------------------------------------------------------

1244242d895724ae53b13104ca225455ff08259c
 .travis.yml                      | 27 +++++++++++++--------------
 Data/Array/Base.hs               | 21 ---------------------
 Data/Array/IO/Internals.hs       |  4 ----
 Data/Array/Storable/Internals.hs |  7 +------
 array.cabal                      |  4 ++--
 changelog.md                     |  5 +++--
 6 files changed, 19 insertions(+), 49 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index e42cee5..cfffef3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,9 +1,8 @@
 env:
- - GHCVER=7.4.1
- - GHCVER=7.4.2
- - GHCVER=7.6.1
- - GHCVER=7.6.2
- - GHCVER=7.6.3
+ - GHCVER=7.8.4
+ - GHCVER=7.10.3
+ - GHCVER=8.0.2
+ - GHCVER=8.2.1
  - GHCVER=head
 
 matrix:
@@ -13,22 +12,22 @@ matrix:
 before_install:
  - sudo add-apt-repository -y ppa:hvr/ghc
  - sudo apt-get update
- - sudo apt-get install cabal-install-1.18 ghc-$GHCVER
- - export PATH=/opt/ghc/$GHCVER/bin:$PATH
+ - sudo apt-get install cabal-install-head ghc-$GHCVER
+ - export PATH=/opt/ghc/bin:$PATH
 
 install:
- - cabal-1.18 update
+ - cabal update
  - ghc --version
 
 script:
- - cabal-1.18 configure -v2
- - cabal-1.18 build
- - cabal-1.18 check
- - cabal-1.18 sdist
- - export SRC_TGZ=$(cabal-1.18 info . | awk '{print $2 ".tar.gz";exit}') ;
+ - cabal configure -v2
+ - cabal build
+ - cabal check
+ - cabal sdist
+ - export SRC_TGZ=$(cabal info . | awk '{print $2 ".tar.gz";exit}') ;
    cd dist/;
    if [ -f "$SRC_TGZ" ]; then
-      cabal-1.18 install "$SRC_TGZ";
+      cabal install "$SRC_TGZ";
    else
       echo "expected '$SRC_TGZ' not found";
       exit 1;
diff --git a/Data/Array/Base.hs b/Data/Array/Base.hs
index 36db53f..8cc319c 100644
--- a/Data/Array/Base.hs
+++ b/Data/Array/Base.hs
@@ -1,7 +1,5 @@
 {-# LANGUAGE BangPatterns, CPP, RankNTypes, MagicHash, UnboxedTuples, MultiParamTypeClasses, FlexibleInstances, FlexibleContexts, DeriveDataTypeable, UnliftedFFITypes #-}
-#if __GLASGOW_HASKELL__ >= 708
 {-# LANGUAGE RoleAnnotations #-}
-#endif
 {-# OPTIONS_HADDOCK hide #-}
 
 -----------------------------------------------------------------------------
@@ -36,9 +34,6 @@ import GHC.Base         ( IO(..), divInt# )
 import GHC.Exts
 import GHC.Ptr          ( nullPtr, nullFunPtr )
 import GHC.Stable       ( StablePtr(..) )
-#if !MIN_VERSION_base(4,6,0)
-import GHC.Exts         ( Word(..) )
-#endif
 import GHC.Int          ( Int8(..),  Int16(..),  Int32(..),  Int64(..) )
 import GHC.Word         ( Word8(..), Word16(..), Word32(..), Word64(..) )
 import GHC.IO           ( stToIO )
@@ -404,10 +399,8 @@ instance IArray Arr.Array e where
 --
 data UArray i e = UArray !i !i !Int ByteArray#
                   deriving Typeable
-#if __GLASGOW_HASKELL__ >= 708
 -- There are class-based invariants on both parameters. See also #9220.
 type role UArray nominal nominal
-#endif
 
 {-# INLINE unsafeArrayUArray #-}
 unsafeArrayUArray :: (MArray (STUArray s) e (ST s), Ix i)
@@ -504,11 +497,7 @@ instance IArray UArray Bool where
     {-# INLINE unsafeArray #-}
     unsafeArray lu ies = runST (unsafeArrayUArray lu ies False)
     {-# INLINE unsafeAt #-}
-#if __GLASGOW_HASKELL__ > 706
     unsafeAt (UArray _ _ _ arr#) (I# i#) = isTrue#
-#else
-    unsafeAt (UArray _ _ _ arr#) (I# i#) =
-#endif
         ((indexWordArray# arr# (bOOL_INDEX i#) `and#` bOOL_BIT i#)
         `neWord#` int2Word# 0#)
 
@@ -991,19 +980,13 @@ instance MArray (STArray s) e (Lazy.ST s) where
 -- 'STArray' provides.
 data STUArray s i e = STUArray !i !i !Int (MutableByteArray# s)
                       deriving Typeable
-#if __GLASGOW_HASKELL__ >= 708
 -- The "ST" parameter must be nominal for the safety of the ST trick.
 -- The other parameters have class constraints. See also #9220.
 type role STUArray nominal nominal nominal
-#endif
 
 instance Eq (STUArray s i e) where
     STUArray _ _ _ arr1# == STUArray _ _ _ arr2# =
-#if __GLASGOW_HASKELL__ > 706
         isTrue# (sameMutableByteArray# arr1# arr2#)
-#else
-        sameMutableByteArray# arr1# arr2#
-#endif
 
 {-# INLINE unsafeNewArraySTUArray_ #-}
 unsafeNewArraySTUArray_ :: Ix i
@@ -1037,11 +1020,7 @@ instance MArray (STUArray s) Bool (ST s) where
     {-# INLINE unsafeRead #-}
     unsafeRead (STUArray _ _ _ marr#) (I# i#) = ST $ \s1# ->
         case readWordArray# marr# (bOOL_INDEX i#) s1# of { (# s2#, e# #) ->
-#if __GLASGOW_HASKELL__ > 706
         (# s2#, isTrue# ((e# `and#` bOOL_BIT i#) `neWord#` int2Word# 0#) :: Bool #) }
-#else
-        (# s2#, (e# `and#` bOOL_BIT i# `neWord#` int2Word# 0#) :: Bool #) }
-#endif
     {-# INLINE unsafeWrite #-}
     unsafeWrite (STUArray _ _ _ marr#) (I# i#) e = ST $ \s1# ->
         case bOOL_INDEX i#              of { j# ->
diff --git a/Data/Array/IO/Internals.hs b/Data/Array/IO/Internals.hs
index c934cc5..4f784de 100644
--- a/Data/Array/IO/Internals.hs
+++ b/Data/Array/IO/Internals.hs
@@ -1,8 +1,6 @@
 {-# LANGUAGE DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses,
              CPP #-}
-#if __GLASGOW_HASKELL__ >= 708
 {-# LANGUAGE RoleAnnotations #-}
-#endif
 
 {-# OPTIONS_HADDOCK hide #-}
 -----------------------------------------------------------------------------
@@ -54,10 +52,8 @@ import GHC.IOArray (IOArray(..))
 --
 newtype IOUArray i e = IOUArray (STUArray RealWorld i e)
                        deriving Typeable
-#if __GLASGOW_HASKELL__ >= 708
 -- Both parameters have class-based invariants. See also #9220.
 type role IOUArray nominal nominal
-#endif
 
 instance Eq (IOUArray i e) where
     IOUArray s1 == IOUArray s2  =  s1 == s2
diff --git a/Data/Array/Storable/Internals.hs b/Data/Array/Storable/Internals.hs
index 6741bb1..3fcd73a 100644
--- a/Data/Array/Storable/Internals.hs
+++ b/Data/Array/Storable/Internals.hs
@@ -1,7 +1,4 @@
-{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, CPP #-}
-#if __GLASGOW_HASKELL__ >= 708
-{-# LANGUAGE RoleAnnotations #-}
-#endif
+{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, RoleAnnotations #-}
 {-# OPTIONS_HADDOCK hide #-}
 -----------------------------------------------------------------------------
 -- |
@@ -31,10 +28,8 @@ import Foreign hiding (newArray)
 
 -- |The array type
 data StorableArray i e = StorableArray !i !i Int !(ForeignPtr e)
-#if __GLASGOW_HASKELL__ >= 708
 -- Both parameters have class-based invariants. See also #9220.
 type role StorableArray nominal nominal
-#endif
 
 instance Storable e => MArray StorableArray e IO where
     getBounds (StorableArray l u _ _) = return (l,u)
diff --git a/array.cabal b/array.cabal
index f52e562..58b8cf1 100644
--- a/array.cabal
+++ b/array.cabal
@@ -9,7 +9,7 @@ synopsis:      Mutable and immutable arrays
 category:      Data Structures
 build-type:    Simple
 cabal-version: >=1.10
-tested-with:   GHC==7.6.3, GHC==7.6.2, GHC==7.6.1, GHC==7.4.2, GHC==7.4.1
+tested-with:   GHC==8.2.1, GHC==8.0.2, GHC==7.10.3, GHC==7.8.4
 description:
     In addition to providing the "Data.Array" module
     <http://www.haskell.org/onlinereport/haskell2010/haskellch14.html as specified in the Haskell 2010 Language Report>,
@@ -37,7 +37,7 @@ library
       Trustworthy,
       UnboxedTuples,
       UnliftedFFITypes
-  build-depends: base >= 4.5 && < 4.11
+  build-depends: base >= 4.7 && < 4.11
   ghc-options: -Wall
   exposed-modules:
       Data.Array
diff --git a/changelog.md b/changelog.md
index 8421c23..209f2f0 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,9 +1,10 @@
 # Changelog for [`array` package](http://hackage.haskell.org/package/array)
 
-## 0.5.1.2  *TBD*
+## 0.5.1.2  *May 2017*
 
   * Bundled with GHC 8.2.1
-  * Overflow check in `unsafeNewArray`
+  * Overflow check in `unsafeNewArray` (#229)
+  * Drop support for GHC versions prior to GHC 7.8
 
 ## 0.5.1.1  *Apr 2016*
 



More information about the ghc-commits mailing list