haskell
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:
* GCC manual: <https://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html>
* GCC wiki: <https://gcc.gnu.org/wiki/Atomic>
/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
<http://www.mingw.org/> 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/:
* 0.1.3: Documentation updates, especially on portability. No functional
changes.
* 0.1.2: Avoid using System.FilePath in Setup.hs to fix build failure on hackage