Cabal-version: 3.0 Name: atomic-primops Version: 0.8.7 License: BSD-3-Clause License-file: LICENSE Author: Ryan Newton Maintainer: rrnewton@gmail.com Category: Data -- Portability: non-portabile (x86_64) Build-type: Simple 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: 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 extra-doc-files: CHANGELOG.md 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 impl(ghc >= 9.9) cmm-sources: cbits/atomics.cmm 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