lockfree-queue 0.2.3.1 → 0.2.4
raw patch · 4 files changed
+48/−30 lines, 4 filesdep ~basenew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base
API changes (from Hackage documentation)
- Data.Concurrent.Queue.MichaelScott: instance DequeClass LinkedQueue
+ Data.Concurrent.Queue.MichaelScott: instance Data.Concurrent.Deque.Class.DequeClass Data.Concurrent.Queue.MichaelScott.LinkedQueue
- Data.Concurrent.Queue.MichaelScott: pushL :: LinkedQueue a -> a -> IO ()
+ Data.Concurrent.Queue.MichaelScott: pushL :: forall a. LinkedQueue a -> a -> IO ()
- Data.Concurrent.Queue.MichaelScott: tryPopR :: LinkedQueue a -> IO (Maybe a)
+ Data.Concurrent.Queue.MichaelScott: tryPopR :: forall a. LinkedQueue a -> IO (Maybe a)
Files
- CHANGELOG.md +17/−0
- Data/Concurrent/Queue/MichaelScott.hs +7/−9
- README.md +1/−0
- lockfree-queue.cabal +23/−21
+ CHANGELOG.md view
@@ -0,0 +1,17 @@+## 0.2.4+* Allow building with GHC 9.4.++## 0.2.3+* bump for upstream change++## 0.2.0.2+* minor: fix for upstream change++## 0.2.0.1+* use ticketed CAS internally; add support for -prof mode++## 0.2+* switched to MutVar++## 0.1+* initial version
Data/Concurrent/Queue/MichaelScott.hs view
@@ -21,7 +21,10 @@ import Data.IORef (readIORef, newIORef) import System.IO (stderr)++#ifdef DEBUG import Data.ByteString.Char8 (hPutStrLn, pack)+#endif -- import GHC.Types (Word(W#)) import GHC.IORef(IORef(IORef))@@ -31,19 +34,14 @@ import Data.Atomics (readForCAS, casIORef, Ticket, peekTicket) -- GHC 7.8 changed some primops-#if MIN_VERSION_base(4,7,0) import GHC.Base hiding ((==#), sameMutVar#)-import GHC.Prim hiding ((==#), sameMutVar#)-import qualified GHC.PrimopWrappers as GPW+import GHC.Exts hiding ((==#), sameMutVar#)+import qualified GHC.Exts as Exts (==#) :: Int# -> Int# -> Bool-(==#) x y = case x GPW.==# y of { 0# -> False; _ -> True }+(==#) x y = case x Exts.==# y of { 0# -> False; _ -> True } sameMutVar# :: MutVar# s a -> MutVar# s a -> Bool-sameMutVar# x y = case GPW.sameMutVar# x y of { 0# -> False; _ -> True }-#else-import GHC.Base-import GHC.Prim-#endif+sameMutVar# x y = case Exts.sameMutVar# x y of { 0# -> False; _ -> True } -- Considering using the Queue class definition:
+ README.md view
@@ -0,0 +1,1 @@+See haddock in Data.Concurrent.LinkedQueue
lockfree-queue.cabal view
@@ -1,23 +1,16 @@ Name: lockfree-queue-Version: 0.2.3.1+Version: 0.2.4 License: BSD3 License-file: LICENSE Author: Ryan R. Newton Maintainer: rrnewton@gmail.com Category: Data, Concurrent Build-type: Simple-Cabal-version: >=1.8-+Cabal-version: 1.18+tested-with: GHC == 8.4.3, GHC == 8.2.2, GHC == 8.0.2, GHC == 7.10.3 Homepage: https://github.com/rrnewton/haskell-lockfree/wiki Bug-Reports: https://github.com/rrnewton/haskell-lockfree/issues --- Version History:--- 0.1 -- initial version--- 0.2 -- switched to MutVar --- 0.2.0.1 -- use ticketed CAS internally; add support for -prof mode--- 0.2.0.2 -- minor: fix for upstream change--- 0.2.3 -- bump for upstream change- Synopsis: Michael and Scott lock-free queues. Description:@@ -32,17 +25,21 @@ @ConcurrentLinkedQueue@. extra-source-files:+ CHANGELOG.md+ README.md stress_test.sh Library exposed-modules: Data.Concurrent.Queue.MichaelScott, Data.Concurrent.Queue.MichaelScott.DequeInstance- build-depends: base >= 4.4.0.0 && < 5,- ghc-prim, abstract-deque >= 0.3, bytestring,- atomic-primops >= 0.6+ build-depends: base >= 4.8 && < 5+ , ghc-prim+ , abstract-deque >= 0.3+ , atomic-primops >= 0.6 -- Build failure on GHC 7.2: -- queuelike ghc-options: -O2+ default-language: Haskell2010 Source-Repository head Type: git@@ -51,16 +48,21 @@ Test-Suite test-lockfree-queue type: exitcode-stdio-1.0- hs-source-dirs: ./tests/+ hs-source-dirs: tests main-is: Test.hs build-depends: lockfree-queue- build-depends: base >= 4.4.0.0 && < 5, - bytestring, - abstract-deque >= 0.3, abstract-deque-tests >= 0.3, - HUnit, test-framework, test-framework-hunit,- ghc-prim, atomic-primops >= 0.6+ build-depends: base >= 4.8 && < 5+ , bytestring+ , abstract-deque >= 0.3+ , abstract-deque-tests >= 0.3+ , HUnit+ , test-framework+ , test-framework-hunit+ , ghc-prim+ , atomic-primops >= 0.6 - ghc-options: -O2 -threaded -rtsopts + ghc-options: -O2 -threaded -rtsopts+ default-language: Haskell2010 -- Debugging generated code: -- ghc-options: -keep-tmp-files -dsuppress-module-prefixes -ddump-to-file -ddump-core-stats -ddump-simpl-stats -dcore-lint -dcmm-lint -- ghc-options: -ddump-ds -ddump-simpl -ddump-stg -ddump-asm -ddump-bcos -ddump-cmm -ddump-opt-cmm -ddump-inlinings@@ -71,7 +73,7 @@ -- build-depends: base >= 4.4.0.0 && < 5, IORefCAS >= 0.2, abstract-deque, bytestring, -- HUnit, test-framework, test-framework-hunit, -- ghc-prim, atomic-primops--- ghc-options: -O2 -threaded -rtsopts +-- ghc-options: -O2 -threaded -rtsopts -- -- Debugging generated code: -- ghc-options: -keep-tmp-files -dsuppress-module-prefixes -ddump-to-file -ddump-core-stats -ddump-simpl-stats -dcore-lint -dcmm-lint -- ghc-options: -ddump-ds -ddump-simpl -ddump-stg -ddump-asm -ddump-bcos -ddump-cmm -ddump-opt-cmm -ddump-inlinings