packages feed

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 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