diff --git a/patches/word-compat-0.0.4.patch b/patches/word-compat-0.0.4.patch new file mode 100644 index 0000000000000000000000000000000000000000..8c089188611bf4d7a177f98ba258caf44867f16a --- /dev/null +++ b/patches/word-compat-0.0.4.patch @@ -0,0 +1,86 @@ +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# #-} +