packages feed

bits-extras-0.1.2: bits-extras.cabal

Name:               bits-extras
Version:            0.1.2
License:            BSD3
License-File:       License.txt
Maintainer:         Gabriel Wicke <wicke@wikidev.net>
Author:             Gabriel Wicke <wicke@wikidev.net>
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:
 .
 * <http://hackage.haskell.org/trac/ghc/ticket/3563>
 .
 * <http://hackage.haskell.org/trac/ghc/ticket/4102>
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/
--extra-tmp-files: cbits/bitops-gcc.h
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: .