Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
A
array
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
0
Merge Requests
0
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Rinat Striungis
array
Commits
3b750b3e
Commit
3b750b3e
authored
Mar 10, 2015
by
Herbert Valerio Riedel
🕺
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Restore compatibility with GHC 7.10
This adds CPP guards around the changes in
c9f20718
parent
c585b1f1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
58 additions
and
4 deletions
+58
-4
Data/Array/Base.hs
Data/Array/Base.hs
+28
-0
Data/Array/IO/Internals.hs
Data/Array/IO/Internals.hs
+19
-0
Data/Array/ST.hs
Data/Array/ST.hs
+11
-4
No files found.
Data/Array/Base.hs
View file @
3b750b3e
...
...
@@ -1390,7 +1390,11 @@ freeze marr = do
-- use the safe array creation function here.
return
(
listArray
(
l
,
u
)
es
)
#
if
__GLASGOW_HASKELL__
>=
711
freezeSTUArray
::
STUArray
s
i
e
->
ST
s
(
UArray
i
e
)
#
else
freezeSTUArray
::
Ix
i
=>
STUArray
s
i
e
->
ST
s
(
UArray
i
e
)
#
endif
freezeSTUArray
(
STUArray
l
u
n
marr
#
)
=
ST
$
\
s1
#
->
case
sizeofMutableByteArray
#
marr
#
of
{
n
#
->
case
newByteArray
#
n
#
s1
#
of
{
(
#
s2
#
,
marr'
#
#
)
->
...
...
@@ -1465,7 +1469,11 @@ thaw arr = case bounds arr of
|
i
<-
[
0
..
n
-
1
]]
return
marr
#
if
__GLASGOW_HASKELL__
>=
711
thawSTUArray
::
UArray
i
e
->
ST
s
(
STUArray
s
i
e
)
#
else
thawSTUArray
::
Ix
i
=>
UArray
i
e
->
ST
s
(
STUArray
s
i
e
)
#
endif
thawSTUArray
(
UArray
l
u
n
arr
#
)
=
ST
$
\
s1
#
->
case
sizeofByteArray
#
arr
#
of
{
n
#
->
case
newByteArray
#
n
#
s1
#
of
{
(
#
s2
#
,
marr
#
#
)
->
...
...
@@ -1525,7 +1533,11 @@ unsafeThaw :: (Ix i, IArray a e, MArray b e m) => a i e -> m (b i e)
unsafeThaw
=
thaw
{-# INLINE unsafeThawSTUArray #-}
#
if
__GLASGOW_HASKELL__
>=
711
unsafeThawSTUArray
::
UArray
i
e
->
ST
s
(
STUArray
s
i
e
)
#
else
unsafeThawSTUArray
::
Ix
i
=>
UArray
i
e
->
ST
s
(
STUArray
s
i
e
)
#
endif
unsafeThawSTUArray
(
UArray
l
u
n
marr
#
)
=
return
(
STUArray
l
u
n
(
unsafeCoerce
#
marr
#
))
...
...
@@ -1535,7 +1547,11 @@ unsafeThawSTUArray (UArray l u n marr#) =
#-}
{-# INLINE unsafeThawIOArray #-}
#
if
__GLASGOW_HASKELL__
>=
711
unsafeThawIOArray
::
Arr
.
Array
ix
e
->
IO
(
IOArray
ix
e
)
#
else
unsafeThawIOArray
::
Ix
ix
=>
Arr
.
Array
ix
e
->
IO
(
IOArray
ix
e
)
#
endif
unsafeThawIOArray
arr
=
stToIO
$
do
marr
<-
ArrST
.
unsafeThawSTArray
arr
return
(
IOArray
marr
)
...
...
@@ -1544,7 +1560,11 @@ unsafeThawIOArray arr = stToIO $ do
"unsafeThaw/IOArray" unsafeThaw = unsafeThawIOArray
#-}
#
if
__GLASGOW_HASKELL__
>=
711
thawIOArray
::
Arr
.
Array
ix
e
->
IO
(
IOArray
ix
e
)
#
else
thawIOArray
::
Ix
ix
=>
Arr
.
Array
ix
e
->
IO
(
IOArray
ix
e
)
#
endif
thawIOArray
arr
=
stToIO
$
do
marr
<-
ArrST
.
thawSTArray
arr
return
(
IOArray
marr
)
...
...
@@ -1553,7 +1573,11 @@ thawIOArray arr = stToIO $ do
"thaw/IOArray" thaw = thawIOArray
#-}
#
if
__GLASGOW_HASKELL__
>=
711
freezeIOArray
::
IOArray
ix
e
->
IO
(
Arr
.
Array
ix
e
)
#
else
freezeIOArray
::
Ix
ix
=>
IOArray
ix
e
->
IO
(
Arr
.
Array
ix
e
)
#
endif
freezeIOArray
(
IOArray
marr
)
=
stToIO
(
ArrST
.
freezeSTArray
marr
)
{-# RULES
...
...
@@ -1561,7 +1585,11 @@ freezeIOArray (IOArray marr) = stToIO (ArrST.freezeSTArray marr)
#-}
{-# INLINE unsafeFreezeIOArray #-}
#
if
__GLASGOW_HASKELL__
>=
711
unsafeFreezeIOArray
::
IOArray
ix
e
->
IO
(
Arr
.
Array
ix
e
)
#
else
unsafeFreezeIOArray
::
Ix
ix
=>
IOArray
ix
e
->
IO
(
Arr
.
Array
ix
e
)
#
endif
unsafeFreezeIOArray
(
IOArray
marr
)
=
stToIO
(
ArrST
.
unsafeFreezeSTArray
marr
)
{-# RULES
...
...
Data/Array/IO/Internals.hs
View file @
3b750b3e
...
...
@@ -34,6 +34,9 @@ import Control.Monad.ST ( RealWorld, stToIO )
import
Foreign.Ptr
(
Ptr
,
FunPtr
)
import
Foreign.StablePtr
(
StablePtr
)
#
if
__GLASGOW_HASKELL__
<
711
import
Data.Ix
#
endif
import
Data.Array.Base
import
GHC.IOArray
(
IOArray
(
..
))
...
...
@@ -374,7 +377,11 @@ castIOUArray (IOUArray marr) = stToIO $ do
return
(
IOUArray
marr'
)
{-# INLINE unsafeThawIOUArray #-}
#
if
__GLASGOW_HASKELL__
>=
711
unsafeThawIOUArray
::
UArray
ix
e
->
IO
(
IOUArray
ix
e
)
#
else
unsafeThawIOUArray
::
Ix
ix
=>
UArray
ix
e
->
IO
(
IOUArray
ix
e
)
#
endif
unsafeThawIOUArray
arr
=
stToIO
$
do
marr
<-
unsafeThawSTUArray
arr
return
(
IOUArray
marr
)
...
...
@@ -383,7 +390,11 @@ unsafeThawIOUArray arr = stToIO $ do
"unsafeThaw/IOUArray" unsafeThaw = unsafeThawIOUArray
#-}
#
if
__GLASGOW_HASKELL__
>=
711
thawIOUArray
::
UArray
ix
e
->
IO
(
IOUArray
ix
e
)
#
else
thawIOUArray
::
Ix
ix
=>
UArray
ix
e
->
IO
(
IOUArray
ix
e
)
#
endif
thawIOUArray
arr
=
stToIO
$
do
marr
<-
thawSTUArray
arr
return
(
IOUArray
marr
)
...
...
@@ -393,14 +404,22 @@ thawIOUArray arr = stToIO $ do
#-}
{-# INLINE unsafeFreezeIOUArray #-}
#
if
__GLASGOW_HASKELL__
>=
711
unsafeFreezeIOUArray
::
IOUArray
ix
e
->
IO
(
UArray
ix
e
)
#
else
unsafeFreezeIOUArray
::
Ix
ix
=>
IOUArray
ix
e
->
IO
(
UArray
ix
e
)
#
endif
unsafeFreezeIOUArray
(
IOUArray
marr
)
=
stToIO
(
unsafeFreezeSTUArray
marr
)
{-# RULES
"unsafeFreeze/IOUArray" unsafeFreeze = unsafeFreezeIOUArray
#-}
#
if
__GLASGOW_HASKELL__
>=
711
freezeIOUArray
::
IOUArray
ix
e
->
IO
(
UArray
ix
e
)
#
else
freezeIOUArray
::
Ix
ix
=>
IOUArray
ix
e
->
IO
(
UArray
ix
e
)
#
endif
freezeIOUArray
(
IOUArray
marr
)
=
stToIO
(
freezeSTUArray
marr
)
{-# RULES
...
...
Data/Array/ST.hs
View file @
3b750b3e
{-# LANGUAGE CPP #-}
{-# LANGUAGE RankNTypes #-}
-----------------------------------------------------------------------------
-- |
...
...
@@ -37,8 +38,11 @@ import GHC.Arr ( STArray, Array, unsafeFreezeSTArray )
-- the array before returning it - it uses 'unsafeFreeze' internally, but
-- this wrapper is a safe interface to that function.
--
runSTArray
::
(
forall
s
.
ST
s
(
STArray
s
i
e
))
->
Array
i
e
#
if
__GLASGOW_HASKELL__
>=
711
runSTArray
::
(
forall
s
.
ST
s
(
STArray
s
i
e
))
->
Array
i
e
#
else
runSTArray
::
Ix
i
=>
(
forall
s
.
ST
s
(
STArray
s
i
e
))
->
Array
i
e
#
endif
runSTArray
st
=
runST
(
st
>>=
unsafeFreezeSTArray
)
-- | A safe way to create and work with an unboxed mutable array before
...
...
@@ -47,8 +51,11 @@ runSTArray st = runST (st >>= unsafeFreezeSTArray)
-- 'unsafeFreeze' internally, but this wrapper is a safe interface to
-- that function.
--
runSTUArray
::
(
forall
s
.
ST
s
(
STUArray
s
i
e
))
->
UArray
i
e
#
if
__GLASGOW_HASKELL__
>=
711
runSTUArray
::
(
forall
s
.
ST
s
(
STUArray
s
i
e
))
->
UArray
i
e
#
else
runSTUArray
::
Ix
i
=>
(
forall
s
.
ST
s
(
STUArray
s
i
e
))
->
UArray
i
e
#
endif
runSTUArray
st
=
runST
(
st
>>=
unsafeFreezeSTUArray
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment