unboxed-ref 0.1.0.0 → 0.2.0.0
raw patch · 2 files changed
+8/−6 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- Data/IORef/Unboxed.hs +5/−5
- unboxed-ref.cabal +3/−1
Data/IORef/Unboxed.hs view
@@ -93,33 +93,33 @@ -- atomicSubCounter :: Counter -> Int -> IO Int atomicSubCounter (IORefU (STRefU (MutableByteArray mba#))) (I# x#) = IO $ \ s1# ->- let (# s2#, res #) = fetchSubIntArray# mba# 0# x# s1# in (# s2#, (I# (res +# x#)) #)+ let (# s2#, res #) = fetchSubIntArray# mba# 0# x# s1# in (# s2#, (I# (res -# x#)) #) {-# INLINE atomicSubCounter #-} -- | Atomically and a 'Counter', return the value AFTER anded. -- atomicAndCounter :: Counter -> Int -> IO Int atomicAndCounter (IORefU (STRefU (MutableByteArray mba#))) (I# x#) = IO $ \ s1# ->- let (# s2#, res #) = fetchAndIntArray# mba# 0# x# s1# in (# s2#, (I# (res +# x#)) #)+ let (# s2#, res #) = fetchAndIntArray# mba# 0# x# s1# in (# s2#, (I# (res `andI#` x#)) #) {-# INLINE atomicAndCounter #-} -- | Atomically nand a 'Counter', return the value AFTER nanded. -- atomicNandCounter :: Counter -> Int -> IO Int atomicNandCounter (IORefU (STRefU (MutableByteArray mba#))) (I# x#) = IO $ \ s1# ->- let (# s2#, res #) = fetchNandIntArray# mba# 0# x# s1# in (# s2#, (I# (res +# x#)) #)+ let (# s2#, res #) = fetchNandIntArray# mba# 0# x# s1# in (# s2#, (I# (notI# (res `andI#` x#))) #) {-# INLINE atomicNandCounter #-} -- | Atomically or a 'Counter', return the value AFTER ored. -- atomicOrCounter :: Counter -> Int -> IO Int atomicOrCounter (IORefU (STRefU (MutableByteArray mba#))) (I# x#) = IO $ \ s1# ->- let (# s2#, res #) = fetchOrIntArray# mba# 0# x# s1# in (# s2#, (I# (res +# x#)) #)+ let (# s2#, res #) = fetchOrIntArray# mba# 0# x# s1# in (# s2#, (I# (res `orI#` x#)) #) {-# INLINE atomicOrCounter #-} -- | Atomically xor a 'Counter', return the value AFTER xored. -- atomicXorCounter :: Counter -> Int -> IO Int atomicXorCounter (IORefU (STRefU (MutableByteArray mba#))) (I# x#) = IO $ \ s1# ->- let (# s2#, res #) = fetchXorIntArray# mba# 0# x# s1# in (# s2#, (I# (res +# x#)) #)+ let (# s2#, res #) = fetchXorIntArray# mba# 0# x# s1# in (# s2#, (I# (res `xorI#` x#)) #) {-# INLINE atomicXorCounter #-}
unboxed-ref.cabal view
@@ -1,5 +1,5 @@ name: unboxed-ref-version: 0.1.0.0+version: 0.2.0.0 synopsis: Fast unboxed references for ST and IO monad description: Fast unboxed references for ST and IO monad license: BSD3@@ -12,6 +12,8 @@ extra-source-files: ChangeLog.md README.md cabal-version: >=1.10+homepage: https://github.com/winterland1989/unboxed-ref+bug-reports: https://github.com/winterland1989/unboxed-ref/issues library exposed-modules: Data.IORef.Unboxed