Name: bits-extras Version: 0.1.3 License: BSD3 License-File: License.txt Maintainer: Gabriel Wicke Author: Gabriel Wicke Synopsis: Efficient high-level bit operations not found in Data.Bits Description: 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 \/lib\/libgcc_s.so@. . 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: . * . * . /Changes/: . * 0.1.3: Added a first test and tweaked documentation. No functional changes. . * 0.1.2: Moved the 'Data.Bits.Atomic' module 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-atomic@ on hackage: Category: Data Stability: experimental Build-Type: Simple Cabal-Version: >= 1.6 Extra-Source-Files: cbits/bitops-gcc.c cbits/bitops-gcc.h Source-Repository head type: mercurial location: http://dev.wikidev.net/hg/bits-extras/ library Exposed-Modules: Data.Bits.Extras Build-Depends: base >= 4 && < 6 GHC-Options: -Wall -O2 -funbox-strict-fields GHC-Prof-Options: -auto-all C-Sources: cbits/bitops-gcc.c --CC-Options: -O3 -fomit-frame-pointer -march=native -Wall -- Try link-time optimization (inlining) with gcc 4.5: -- CC-Options: -fomit-frame-pointer -march=native -Wall -flto CC-Options: -Wall if os (linux) CC-Options: -fomit-frame-pointer -march=native -static-libgcc -static Extra-Libraries: gcc_s Include-Dirs: cbits Install-Includes: bitops-gcc.h Extensions: ForeignFunctionInterface --Includes: bitops-gcc.h --LD-Options: -flto --hs-source-dirs: . flag test description: Build test program. default: False Executable test if flag(test) buildable: True build-depends: base >= 4 && < 6, QuickCheck, HUnit, test-framework-quickcheck2, test-framework-hunit, test-framework else buildable: False hs-source-dirs: ., test other-modules: Data.Bits.Extras main-is: test.hs --GHC-Options: -O2 -threaded -fhpc GHC-Options: -O2 -threaded GHC-Prof-Options: -auto-all Include-Dirs: cbits C-Sources: cbits/bitops-gcc.c