Name: atomic-primops
Version: 0.8.3
License: BSD3
License-file: LICENSE
Author: Ryan Newton
Maintainer: rrnewton@gmail.com
Category: Data
-- Portability: non-portabile (x86_64)
Build-type: Simple
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
Synopsis: A safe approach to CAS and other atomic ops in Haskell.
Description:
After GHC 7.4 a new `casMutVar#` primop became available, but it's
difficult to use safely, because pointer equality is a highly
unstable property in Haskell. This library provides a safer method
based on the concept of "Tickets".
.
Also, this library uses the "foreign primop" capability of GHC to
add access to other variants that may be of
interest, specifically, compare and swap inside an array.
.
Note that as of GHC 7.8, the relevant primops have been included in GHC itself.
This library is engineered to work pre- and post-GHC-7.8, while exposing the
same interface.
Extra-Source-Files: CHANGELOG.md, DEVLOG.md,
testing/Test.hs, testing/test-atomic-primops.cabal, testing/ghci-test.hs
testing/Makefile, testing/CommonTesting.hs, testing/Counter.hs, testing/CounterCommon.hs, testing/hello.hs, testing/Fetch.hs
testing/Issue28.hs
testing/TemplateHaskellSplices.hs
testing/Raw781_test.hs
Flag debug
Description: Enable extra internal checks.
Default: False
Library
Default-Language: Haskell2010
exposed-modules: Data.Atomics
Data.Atomics.Internal
Data.Atomics.Counter
ghc-options: -O2 -funbox-strict-fields
ghc-options: -Wall
build-depends: base >= 4.8 && < 5
, ghc-prim
, primitive
if os(windows) {
Include-Dirs: cbits
C-Sources: cbits/RtsDup.c
}
CC-Options: -Wall
if flag(debug)
cpp-options: -DDEBUG_ATOMICS
Source-Repository head
Type: git
Location: https://github.com/rrnewton/haskell-lockfree/
Subdir: atomic-primops