Skip to content
Snippets Groups Projects
Commit 241192e7 authored by Ryan Scott's avatar Ryan Scott
Browse files

Remove outdated Hackage patches

parent c19d5107
No related branches found
No related tags found
1 merge request!244Remove Agda from expected-to-fail packages on HEAD
diff --git a/src/Data/BinaryWord.hs b/src/Data/BinaryWord.hs
index f2f4d40..a962bc4 100644
--- a/src/Data/BinaryWord.hs
+++ b/src/Data/BinaryWord.hs
@@ -29,6 +29,10 @@ import GHC.Word (Word32(..))
# endif
# if WORD_SIZE_IN_BITS == 64
import GHC.Word (Word64(..))
+import GHC.Exts (Word#)
+# if __GLASGOW_HASKELL__ >= 903
+import GHC.Exts (Word64#, wordToWord64#, word64ToWord#)
+# endif
# endif
#endif
@@ -290,9 +294,9 @@ instance BinaryWord Word64 where
{-# INLINE signedWord #-}
#if __GLASGOW_HASKELL__ >= 705 && WORD_SIZE_IN_BITS == 64
unwrappedAdd (W64# x) (W64# y) = hi `seq` lo `seq` (hi, lo)
- where (# hi', lo' #) = plusWord2# x y
- lo = W64# lo'
- hi = W64# hi'
+ where (# hi', lo' #) = plusWord2# (word64ToWordCompat# x) (word64ToWordCompat# y)
+ lo = W64# (wordToWord64Compat# lo')
+ hi = W64# (wordToWord64Compat# hi')
{-# INLINE unwrappedAdd #-}
#else
unwrappedAdd x y = hi `seq` lo `seq` (hi, lo)
@@ -302,9 +306,9 @@ instance BinaryWord Word64 where
#endif
#if __GLASGOW_HASKELL__ >= 705 && WORD_SIZE_IN_BITS == 64
unwrappedMul (W64# x) (W64# y) = hi `seq` lo `seq` (hi, lo)
- where (# hi', lo' #) = timesWord2# x y
- lo = W64# lo'
- hi = W64# hi'
+ where (# hi', lo' #) = timesWord2# (word64ToWordCompat# x) (word64ToWordCompat# y)
+ lo = W64# (wordToWord64Compat# lo')
+ hi = W64# (wordToWord64Compat# hi')
{-# INLINE unwrappedMul #-}
#else
unwrappedMul x y = hi `seq` lo `seq` (hi, lo)
@@ -541,3 +545,19 @@ instance BinaryWord Int64 where
{-# INLINE setMsb #-}
clearMsb x = clearBit x 63
{-# INLINE clearMsb #-}
+
+#if WORD_SIZE_IN_BITS == 64
+# if __GLASGOW_HASKELL__ >= 903
+wordToWord64Compat# :: Word# -> Word64#
+wordToWord64Compat# = wordToWord64#
+
+word64ToWordCompat# :: Word64# -> Word#
+word64ToWordCompat# = word64ToWord#
+# else
+wordToWord64Compat# :: Word# -> Word#
+wordToWord64Compat# x = x
+
+word64ToWordCompat# :: Word# -> Word#
+word64ToWordCompat# x = x
+# endif
+#endif
diff --git a/src/GHC/Prim/Compat.hs b/src/GHC/Prim/Compat.hs
index ba14473..bb6cff0 100644
--- a/src/GHC/Prim/Compat.hs
+++ b/src/GHC/Prim/Compat.hs
@@ -28,6 +28,9 @@ import GHC.Prim (
writeWord8OffAddr#,writeWord16OffAddr#,writeWord32OffAddr#,writeWord64OffAddr#)
#endif
+#if MIN_VERSION_ghc_prim(0,9,0)
+import GHC.Prim (Word64#)
+#endif
#if MIN_VERSION_ghc_prim(0,8,0)
@@ -43,7 +46,11 @@ indexWord32Array# :: ByteArray# -> Int# -> Word#
indexWord32Array# arr i = word32ToWord# (Prim.indexWord32Array# arr i)
{-# INLINE indexWord32Array# #-}
+#if MIN_VERSION_ghc_prim(0,9,0)
+indexWord64Array# :: ByteArray# -> Int# -> Word64#
+#else
indexWord64Array# :: ByteArray# -> Int# -> Word#
+#endif
indexWord64Array# = Prim.indexWord64Array#
{-# INLINE indexWord64Array# #-}
@@ -65,7 +72,11 @@ readWord32Array# arr ix st =
in (# st', word32ToWord# v #)
{-# INLINE readWord32Array# #-}
+#if MIN_VERSION_ghc_prim(0,9,0)
+readWord64Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64# #)
+#else
readWord64Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
+#endif
readWord64Array# = Prim.readWord64Array#
{-# INLINE readWord64Array# #-}
@@ -81,7 +92,11 @@ writeWord32Array# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State#
writeWord32Array# arr ix v st = Prim.writeWord32Array# arr ix (wordToWord32# v) st
{-# INLINE writeWord32Array# #-}
+#if MIN_VERSION_ghc_prim(0,9,0)
+writeWord64Array# :: MutableByteArray# d -> Int# -> Word64# -> State# d -> State# d
+#else
writeWord64Array# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
+#endif
writeWord64Array# = Prim.writeWord64Array#
{-# INLINE writeWord64Array# #-}
@@ -97,7 +112,11 @@ indexWord32OffAddr# :: Addr# -> Int# -> Word#
indexWord32OffAddr# addr off = word32ToWord# (Prim.indexWord32OffAddr# addr off)
{-# INLINE indexWord32OffAddr# #-}
+#if MIN_VERSION_ghc_prim(0,9,0)
+indexWord64OffAddr# :: Addr# -> Int# -> Word64#
+#else
indexWord64OffAddr# :: Addr# -> Int# -> Word#
+#endif
indexWord64OffAddr# addr off = Prim.indexWord64OffAddr# addr off
{-# INLINE indexWord64OffAddr# #-}
@@ -119,7 +138,11 @@ readWord32OffAddr# addr off st =
in (# st', word32ToWord# v #)
{-# INLINE readWord32OffAddr# #-}
+#if MIN_VERSION_ghc_prim(0,9,0)
+readWord64OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word64# #)
+#else
readWord64OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word# #)
+#endif
readWord64OffAddr# = Prim.readWord64OffAddr#
{-# INLINE readWord64OffAddr# #-}
@@ -138,7 +161,11 @@ writeWord32OffAddr# addr off v st =
Prim.writeWord32OffAddr# addr off (wordToWord32# v) st
{-# INLINE writeWord32OffAddr# #-}
+#if MIN_VERSION_ghc_prim(0,9,0)
+writeWord64OffAddr# :: Addr# -> Int# -> Word64# -> State# d -> State# d
+#else
writeWord64OffAddr# :: Addr# -> Int# -> Word# -> State# d -> State# d
+#endif
writeWord64OffAddr# = Prim.writeWord64OffAddr#
{-# INLINE writeWord64OffAddr# #-}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment