The bits-extras package
This package contains efficient implementations of high-level bit operations missing from Data.Bits. The implementation is based on GCC builtins, which translate to specialized instructions where available.
All operations in this package can also be (less efficiently) implemented in terms of Data.Bits operations.
Issues: A GCC-provided library,
libgcc_s, is dynamically linked to
provide software fallbacks on architectures without instructions
corresponding to specific operations. This is currently only expected to work
on Linux systems, and even there can lead to issues with GHCi's custom
linker. A workaround for GHCi on a linux system:
ln -s /lib/libgcc_s.so.1
The current plan for broader support is to replace the libgcc dependency with built-in fallbacks in C or Haskell code. This needs to closely follow GCC's fall-back behaviour for each architecture. Alternative ideas would be appreciated.
Relevant Hackage tickets:
0.1.3: Added a first test and tweaked documentation. No functional changes.
0.1.2: Moved the
Data.Bits.Atomicmodule to the package
bits-atomic. Those operations do not depend on libgcc_s and should work wherever GCC 4.X is available. Link to
bits-atomicon hackage: http://hackage.haskell.org/package/bits-atomic
|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]|
|Author||Gabriel Wicke <email@example.com>|
|Maintainer||Gabriel Wicke <firstname.lastname@example.org>|
|Source repository||head: hg clone http://dev.wikidev.net/hg/bits-extras/|
|Uploaded||Mon Sep 20 18:26:23 UTC 2010 by GabrielWicke|
|Downloads||1997 total (116 in the last 30 days)|
|Rating||(no votes yet) [estimated by rule of succession]|
|Status||Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI
Build test program.
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
For package maintainers and hackage trustees