packages feed

word-compat 0.0.4 → 0.0.5

raw patch · 3 files changed

+29/−8 lines, 3 files

Files

CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for word-compat +## 0.0.5++* Supported `Word64#` on GHC 9.4 and older+ ## 0.0.4  * Added `GHC.Prim.Compat`, providing array operations compatible with `GHC.Word.Compat`
src/GHC/Prim/Compat.hs view
@@ -16,7 +16,11 @@ import GHC.Prim (     Addr#,ByteArray#,Int#,MutableByteArray#,State#,Word#,     wordToWord8#,wordToWord16#,wordToWord32#,-    word8ToWord#,word16ToWord#,word32ToWord#)+    word8ToWord#,word16ToWord#,word32ToWord#+#if MIN_VERSION_ghc_prim(0,9,0)+    ,wordToWord64#,word64ToWord#+#endif+    ) import qualified GHC.Prim as Prim #else import GHC.Prim (@@ -31,6 +35,14 @@  #if MIN_VERSION_ghc_prim(0,8,0) +#if !MIN_VERSION_ghc_prim(0,9,0)+wordToWord64#, word64ToWord# :: Word# -> Word#+wordToWord64# w = w+word64ToWord# w = w+{-# INLINE wordToWord64# #-}+{-# INLINE word64ToWord# #-}+#endif+ indexWord8Array# :: ByteArray# -> Int# -> Word# indexWord8Array# arr i = word8ToWord# (Prim.indexWord8Array# arr i) {-# INLINE indexWord8Array# #-}@@ -44,7 +56,7 @@ {-# INLINE indexWord32Array# #-}  indexWord64Array# :: ByteArray# -> Int# -> Word#-indexWord64Array# = Prim.indexWord64Array#+indexWord64Array# arr i = word64ToWord# (Prim.indexWord64Array# arr i) {-# INLINE indexWord64Array# #-}  readWord8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)@@ -66,7 +78,9 @@ {-# INLINE readWord32Array# #-}  readWord64Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)-readWord64Array# = Prim.readWord64Array#+readWord64Array# arr ix st =+  let !(# st', v #) = Prim.readWord64Array# arr ix st+   in (# st', word64ToWord# v #) {-# INLINE readWord64Array# #-}  writeWord8Array# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d@@ -82,7 +96,7 @@ {-# INLINE writeWord32Array# #-}  writeWord64Array# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d-writeWord64Array# = Prim.writeWord64Array#+writeWord64Array# arr ix v st = Prim.writeWord64Array# arr ix (wordToWord64# v) st {-# INLINE writeWord64Array# #-}  indexWord8OffAddr# :: Addr# -> Int# -> Word#@@ -98,7 +112,7 @@ {-# INLINE indexWord32OffAddr# #-}  indexWord64OffAddr# :: Addr# -> Int# -> Word#-indexWord64OffAddr# addr off = Prim.indexWord64OffAddr# addr off+indexWord64OffAddr# addr off = word64ToWord# (Prim.indexWord64OffAddr# addr off) {-# INLINE indexWord64OffAddr# #-}  readWord8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word# #)@@ -120,7 +134,9 @@ {-# INLINE readWord32OffAddr# #-}  readWord64OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word# #)-readWord64OffAddr# = Prim.readWord64OffAddr#+readWord64OffAddr# addr off st =+  let !(# st', v #) = Prim.readWord64OffAddr# addr off st+   in (# st', word64ToWord# v #) {-# INLINE readWord64OffAddr# #-}  writeWord8OffAddr# :: Addr# -> Int# -> Word# -> State# d -> State# d@@ -139,7 +155,8 @@ {-# INLINE writeWord32OffAddr# #-}  writeWord64OffAddr# :: Addr# -> Int# -> Word# -> State# d -> State# d-writeWord64OffAddr# = Prim.writeWord64OffAddr#+writeWord64OffAddr# addr off v st =+  Prim.writeWord64OffAddr# addr off (wordToWord64# v) st {-# INLINE writeWord64OffAddr# #-}  #endif
word-compat.cabal view
@@ -1,6 +1,6 @@ cabal-version:      2.4 name:               word-compat-version:            0.0.4+version:            0.0.5  -- A short (one-line) description of the package. synopsis: Compatibility shim for the Int/Word internal change in GHC 9.2