bits-atomic: Atomic bit operations on memory locations for low-level synchronization

[ bsd3, concurrency, data, foreign, library ] [ Propose Tags ]
Versions 0.1.0, 0.1.1, 0.1.2, 0.1.3
Dependencies base (>=4 && <6), HUnit, QuickCheck, test‑framework, test‑framework‑hunit, test‑framework‑quickcheck2 [details]
License BSD-3-Clause
Author Gabriel Wicke <>
Maintainer Gabriel Wicke <>
Category Data, Concurrency, Foreign
Source repo head: hg clone
Uploaded by GabrielWicke at Sun Sep 5 07:54:05 UTC 2010
Distributions FreeBSD:0.1.3, NixOS:0.1.3
Executables test
Downloads 4567 total (29 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI

Atomic operations including CAS (compare-and-swap), fetch & add and variants suitable for low-level shared-memory synchronization.

The implementation is using GCC's builtin atomic operations (available in GCC >= 4) in C wrappers called through the FFI. See these links for background:

Portability: This package is primarily developed on a Linux system, but should work wherever GCC >= 4 is available. It has been confirmed as working on OSX. On Windows, it should work with Cygwin but currently fails for vanilla Haskell-Platform 2010.1.0.0 as it still packages GCC 3.x. An installer for updated versions of GCC is available at and should make this package work in connection with Haskell-Platform. Feedback on compatibility would be appreciated.

Testing: The following commands can be used to compile and run the test suite:

cabal unpack bits-atomic && cd bits-atomic-* # if not yet locally available
cabal configure -ftest
cabal build
cabal test

Recent changes:





Build test program.


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees