atomic-primops 0.8.5 → 0.8.6
raw patch · 3 files changed
+25/−8 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGELOG.md +4/−0
- Data/Atomics.hs +20/−7
- atomic-primops.cabal +1/−1
CHANGELOG.md view
@@ -1,3 +1,7 @@+## 0.8.6 [2024.04.16]+* Use `prim`, not `ccall`, for the `foreign import`s used when building the+ library with GHC 9.10 or later. This fixes a GHC 9.10-specific build issue.+ ## 0.8.5 [2024.02.17] * Allow building with GHC 9.10.
Data/Atomics.hs view
@@ -1,5 +1,9 @@-{-# LANGUAGE MagicHash, UnboxedTuples, ScopedTypeVariables, BangPatterns, CPP #-}+{-# LANGUAGE MagicHash, UnboxedTuples, ScopedTypeVariables, BangPatterns, CPP #-} {-# LANGUAGE ForeignFunctionInterface #-}+#if __GLASGOW_HASKELL__ >= 909+{-# LANGUAGE GHCForeignImportPrim #-}+{-# LANGUAGE UnliftedFFITypes #-}+#endif -- | Provides atomic memory operations on IORefs and Mutable Arrays. --@@ -351,19 +355,28 @@ #if __GLASGOW_HASKELL__ >= 909 +foreign import prim "hs_atomics_primops_store_load_barrier" storeLoadBarrier#+ :: State# RealWorld -> State# RealWorld+ -- | A memory barrier that prevents future loads occurring before preceding -- stores.-foreign import ccall unsafe "hs_atomics_primops_store_load_barrier" storeLoadBarrier- :: IO ()+storeLoadBarrier :: IO ()+storeLoadBarrier = IO $ \s -> case storeLoadBarrier# s of s' -> (# s', () #) +foreign import prim "hs_atomics_primops_load_load_barrier" loadLoadBarrier#+ :: State# RealWorld -> State# RealWorld+ -- | A memory barrier that prevents future loads occurring before earlier loads.-foreign import ccall unsafe "hs_atomics_primops_load_load_barrier" loadLoadBarrier- :: IO ()+loadLoadBarrier :: IO ()+loadLoadBarrier = IO $ \s -> case loadLoadBarrier# s of s' -> (# s', () #) +foreign import prim "hs_atomics_primops_write_barrier" writeBarrier#+ :: State# RealWorld -> State# RealWorld+ -- | A memory barrier that prevents future stores occurring before preceding -- stores.-foreign import ccall unsafe "hs_atomics_primops_write_barrier" writeBarrier- :: IO ()+writeBarrier :: IO ()+writeBarrier = IO $ \s -> case writeBarrier# s of s' -> (# s', () #) #elif !(defined(mingw32_HOST_OS) && __GLASGOW_HASKELL__ < 802)
atomic-primops.cabal view
@@ -1,6 +1,6 @@ Cabal-version: 3.0 Name: atomic-primops-Version: 0.8.5+Version: 0.8.6 License: BSD-3-Clause License-file: LICENSE Author: Ryan Newton