on e94de40 help sign in
haskell.nix/patches/ghc861/array-0.5.2.0.patch
308 lines 10 kB history raw
1diff --git a/Data/Array.hs b/Data/Array.hs
2index a65e2fc..6b632fd 100644
3--- a/Data/Array.hs
4+++ b/Data/Array.hs
5@@ -54,8 +54,6 @@ module Data.Array (
6 ) where
7
8 import Data.Ix
9-import Data.Typeable ()
11 import GHC.Arr -- Most of the hard work is done here
13 {- $intro
14diff --git a/Data/Array/Base.hs b/Data/Array/Base.hs
15index 8cc319c..80e91ea 100644
16--- a/Data/Array/Base.hs
17+++ b/Data/Array/Base.hs
18@@ -1,5 +1,15 @@
19-{-# LANGUAGE BangPatterns, CPP, RankNTypes, MagicHash, UnboxedTuples, MultiParamTypeClasses, FlexibleInstances, FlexibleContexts, DeriveDataTypeable, UnliftedFFITypes #-}
20-{-# LANGUAGE RoleAnnotations #-}
21+{-# LANGUAGE
22+ BangPatterns
23+ , CPP
24+ , RankNTypes
25+ , MagicHash
26+ , UnboxedTuples
27+ , MultiParamTypeClasses
28+ , FlexibleInstances
29+ , FlexibleContexts
30+ , UnliftedFFITypes
31+ , RoleAnnotations
32+ #-}
33 {-# OPTIONS_HADDOCK hide #-}
35 -----------------------------------------------------------------------------
36@@ -39,7 +49,6 @@ import GHC.Word ( Word8(..), Word16(..), Word32(..), Word64(..) )
37 import GHC.IO ( stToIO )
38 import GHC.IOArray ( IOArray(..),
39 newIOArray, unsafeReadIOArray, unsafeWriteIOArray )
40-import Data.Typeable
42 #include "MachDeps.h"
44@@ -398,7 +407,6 @@ instance IArray Arr.Array e where
45 -- "Data.Array.Unboxed" instead of "Data.Array").
46 --
47 data UArray i e = UArray !i !i !Int ByteArray#
48- deriving Typeable
49 -- There are class-based invariants on both parameters. See also #9220.
50 type role UArray nominal nominal
52@@ -979,7 +987,6 @@ instance MArray (STArray s) e (Lazy.ST s) where
53 -- don\'t use 'STUArray' if you require the non-strictness that
54 -- 'STArray' provides.
55 data STUArray s i e = STUArray !i !i !Int (MutableByteArray# s)
56- deriving Typeable
57 -- The "ST" parameter must be nominal for the safety of the ST trick.
58 -- The other parameters have class constraints. See also #9220.
59 type role STUArray nominal nominal nominal
60@@ -1370,11 +1377,7 @@ freeze marr = do
61 -- use the safe array creation function here.
62 return (listArray (l,u) es)
64-#if __GLASGOW_HASKELL__ >= 711
65 freezeSTUArray :: STUArray s i e -> ST s (UArray i e)
66-#else
67-freezeSTUArray :: Ix i => STUArray s i e -> ST s (UArray i e)
68-#endif
69 freezeSTUArray (STUArray l u n marr#) = ST $ \s1# ->
70 case sizeofMutableByteArray# marr# of { n# ->
71 case newByteArray# n# s1# of { (# s2#, marr'# #) ->
72@@ -1449,11 +1452,7 @@ thaw arr = case bounds arr of
73 | i <- [0 .. n - 1]]
74 return marr
76-#if __GLASGOW_HASKELL__ >= 711
77 thawSTUArray :: UArray i e -> ST s (STUArray s i e)
78-#else
79-thawSTUArray :: Ix i => UArray i e -> ST s (STUArray s i e)
80-#endif
81 thawSTUArray (UArray l u n arr#) = ST $ \s1# ->
82 case sizeofByteArray# arr# of { n# ->
83 case newByteArray# n# s1# of { (# s2#, marr# #) ->
84@@ -1513,11 +1512,7 @@ unsafeThaw :: (Ix i, IArray a e, MArray b e m) => a i e -> m (b i e)
85 unsafeThaw = thaw
87 {-# INLINE unsafeThawSTUArray #-}
88-#if __GLASGOW_HASKELL__ >= 711
89 unsafeThawSTUArray :: UArray i e -> ST s (STUArray s i e)
90-#else
91-unsafeThawSTUArray :: Ix i => UArray i e -> ST s (STUArray s i e)
92-#endif
93 unsafeThawSTUArray (UArray l u n marr#) =
94 return (STUArray l u n (unsafeCoerce# marr#))
96@@ -1527,11 +1522,7 @@ unsafeThawSTUArray (UArray l u n marr#) =
97 #-}
99 {-# INLINE unsafeThawIOArray #-}
100-#if __GLASGOW_HASKELL__ >= 711
101 unsafeThawIOArray :: Arr.Array ix e -> IO (IOArray ix e)
102-#else
103-unsafeThawIOArray :: Ix ix => Arr.Array ix e -> IO (IOArray ix e)
104-#endif
105 unsafeThawIOArray arr = stToIO $ do
106 marr <- ArrST.unsafeThawSTArray arr
107 return (IOArray marr)
108@@ -1540,11 +1531,7 @@ unsafeThawIOArray arr = stToIO $ do
109 "unsafeThaw/IOArray" unsafeThaw = unsafeThawIOArray
110 #-}
112-#if __GLASGOW_HASKELL__ >= 711
113 thawIOArray :: Arr.Array ix e -> IO (IOArray ix e)
114-#else
115-thawIOArray :: Ix ix => Arr.Array ix e -> IO (IOArray ix e)
116-#endif
117 thawIOArray arr = stToIO $ do
118 marr <- ArrST.thawSTArray arr
119 return (IOArray marr)
120@@ -1553,11 +1540,7 @@ thawIOArray arr = stToIO $ do
121 "thaw/IOArray" thaw = thawIOArray
122 #-}
124-#if __GLASGOW_HASKELL__ >= 711
125 freezeIOArray :: IOArray ix e -> IO (Arr.Array ix e)
126-#else
127-freezeIOArray :: Ix ix => IOArray ix e -> IO (Arr.Array ix e)
128-#endif
129 freezeIOArray (IOArray marr) = stToIO (ArrST.freezeSTArray marr)
131 {-# RULES
132@@ -1565,11 +1548,7 @@ freezeIOArray (IOArray marr) = stToIO (ArrST.freezeSTArray marr)
133 #-}
135 {-# INLINE unsafeFreezeIOArray #-}
136-#if __GLASGOW_HASKELL__ >= 711
137 unsafeFreezeIOArray :: IOArray ix e -> IO (Arr.Array ix e)
138-#else
139-unsafeFreezeIOArray :: Ix ix => IOArray ix e -> IO (Arr.Array ix e)
140-#endif
141 unsafeFreezeIOArray (IOArray marr) = stToIO (ArrST.unsafeFreezeSTArray marr)
143 {-# RULES
144diff --git a/Data/Array/IO/Internals.hs b/Data/Array/IO/Internals.hs
145index c9738e9..2b12e36 100644
146--- a/Data/Array/IO/Internals.hs
147+++ b/Data/Array/IO/Internals.hs
148@@ -1,6 +1,8 @@
149-{-# LANGUAGE DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses,
150- CPP #-}
151-{-# LANGUAGE RoleAnnotations #-}
152+{-# LANGUAGE
153+ FlexibleInstances
154+ , MultiParamTypeClasses
155+ , RoleAnnotations
156+ #-}
158 {-# OPTIONS_HADDOCK hide #-}
159 -----------------------------------------------------------------------------
160@@ -27,15 +29,11 @@ module Data.Array.IO.Internals (
162 import Data.Int
163 import Data.Word
164-import Data.Typeable
166 import Control.Monad.ST ( RealWorld, stToIO )
167 import Foreign.Ptr ( Ptr, FunPtr )
168 import Foreign.StablePtr ( StablePtr )
170-#if __GLASGOW_HASKELL__ < 711
171-import Data.Ix
172-#endif
173 import Data.Array.Base
175 import GHC.IOArray (IOArray(..))
176@@ -52,7 +50,6 @@ import GHC.IOArray (IOArray(..))
177 -- are supported: see "Data.Array.MArray" for a list of instances.
178 --
179 newtype IOUArray i e = IOUArray (STUArray RealWorld i e)
180- deriving Typeable
181 -- Both parameters have class-based invariants. See also #9220.
182 type role IOUArray nominal nominal
184@@ -374,11 +371,7 @@ castIOUArray (IOUArray marr) = stToIO $ do
185 return (IOUArray marr')
187 {-# INLINE unsafeThawIOUArray #-}
188-#if __GLASGOW_HASKELL__ >= 711
189 unsafeThawIOUArray :: UArray ix e -> IO (IOUArray ix e)
190-#else
191-unsafeThawIOUArray :: Ix ix => UArray ix e -> IO (IOUArray ix e)
192-#endif
193 unsafeThawIOUArray arr = stToIO $ do
194 marr <- unsafeThawSTUArray arr
195 return (IOUArray marr)
196@@ -387,11 +380,7 @@ unsafeThawIOUArray arr = stToIO $ do
197 "unsafeThaw/IOUArray" unsafeThaw = unsafeThawIOUArray
198 #-}
200-#if __GLASGOW_HASKELL__ >= 711
201 thawIOUArray :: UArray ix e -> IO (IOUArray ix e)
202-#else
203-thawIOUArray :: Ix ix => UArray ix e -> IO (IOUArray ix e)
204-#endif
205 thawIOUArray arr = stToIO $ do
206 marr <- thawSTUArray arr
207 return (IOUArray marr)
208@@ -401,22 +390,14 @@ thawIOUArray arr = stToIO $ do
209 #-}
211 {-# INLINE unsafeFreezeIOUArray #-}
212-#if __GLASGOW_HASKELL__ >= 711
213 unsafeFreezeIOUArray :: IOUArray ix e -> IO (UArray ix e)
214-#else
215-unsafeFreezeIOUArray :: Ix ix => IOUArray ix e -> IO (UArray ix e)
216-#endif
217 unsafeFreezeIOUArray (IOUArray marr) = stToIO (unsafeFreezeSTUArray marr)
219 {-# RULES
220 "unsafeFreeze/IOUArray" unsafeFreeze = unsafeFreezeIOUArray
221 #-}
223-#if __GLASGOW_HASKELL__ >= 711
224 freezeIOUArray :: IOUArray ix e -> IO (UArray ix e)
225-#else
226-freezeIOUArray :: Ix ix => IOUArray ix e -> IO (UArray ix e)
227-#endif
228 freezeIOUArray (IOUArray marr) = stToIO (freezeSTUArray marr)
230 {-# RULES
231diff --git a/Data/Array/ST.hs b/Data/Array/ST.hs
232index 0a8ff0d..dccc4dc 100644
233--- a/Data/Array/ST.hs
234+++ b/Data/Array/ST.hs
235@@ -1,4 +1,3 @@
236-{-# LANGUAGE CPP #-}
237 {-# LANGUAGE RankNTypes #-}
238 -----------------------------------------------------------------------------
239 -- |
240@@ -38,11 +37,7 @@ import GHC.Arr ( STArray, Array, unsafeFreezeSTArray )
241 -- the array before returning it - it uses 'unsafeFreeze' internally, but
242 -- this wrapper is a safe interface to that function.
243 --
244-#if __GLASGOW_HASKELL__ >= 711
245 runSTArray :: (forall s . ST s (STArray s i e)) -> Array i e
246-#else
247-runSTArray :: Ix i => (forall s . ST s (STArray s i e)) -> Array i e
248-#endif
249 runSTArray st = runST (st >>= unsafeFreezeSTArray)
251 -- | A safe way to create and work with an unboxed mutable array before
252@@ -51,11 +46,7 @@ runSTArray st = runST (st >>= unsafeFreezeSTArray)
253 -- 'unsafeFreeze' internally, but this wrapper is a safe interface to
254 -- that function.
255 --
256-#if __GLASGOW_HASKELL__ >= 711
257 runSTUArray :: (forall s . ST s (STUArray s i e)) -> UArray i e
258-#else
259-runSTUArray :: Ix i => (forall s . ST s (STUArray s i e)) -> UArray i e
260-#endif
261 runSTUArray st = runST (st >>= unsafeFreezeSTUArray)
264diff --git a/array.cabal b/array.cabal
265index 1a71bab..928a7f6 100644
266--- a/array.cabal
267+++ b/array.cabal
268@@ -9,7 +9,7 @@ synopsis: Mutable and immutable arrays
269 category: Data Structures
270 build-type: Simple
271 cabal-version: >=1.10
272-tested-with: GHC==8.2.1, GHC==8.0.2, GHC==7.10.3, GHC==7.8.4
273+tested-with: GHC==8.4.2, GHC==8.2.1, GHC==8.0.2
274 description:
275 In addition to providing the "Data.Array" module
276 <http://www.haskell.org/onlinereport/haskell2010/haskellch14.html as specified in the Haskell 2010 Language Report>,
277@@ -28,7 +28,6 @@ library
278 other-extensions:
279 BangPatterns,
280 CPP,
281- DeriveDataTypeable,
282 FlexibleContexts,
283 FlexibleInstances,
284 MagicHash,
285@@ -37,7 +36,7 @@ library
286 Trustworthy,
287 UnboxedTuples,
288 UnliftedFFITypes
289- build-depends: base >= 4.7 && < 4.11
290+ build-depends: base >= 4.9 && < 4.13
291 ghc-options: -Wall
292 exposed-modules:
293 Data.Array
294diff --git a/changelog.md b/changelog.md
295index e537cd0..1a480a4 100644
296--- a/changelog.md
297+++ b/changelog.md
298@@ -1,5 +1,10 @@
299 # Changelog for [`array` package](http://hackage.haskell.org/package/array)
301+## Next
303+ * Bundled with GHC 8.6.1
304+ * Drop support for GHC versions prior to GHC 8.0
306 ## 0.5.2.0 *Jul 2017*
308 * Bundled with GHC 8.2.1