packages feed

hw-bits-0.7.0.6: hw-bits.cabal

cabal-version:  2.2

name:           hw-bits
version:        0.7.0.6
synopsis:       Bit manipulation
description:    Please see README.md
category:       Data, Bit
stability:      Experimental
homepage:       http://github.com/haskell-works/hw-bits#readme
bug-reports:    https://github.com/haskell-works/hw-bits/issues
author:         John Ky
maintainer:     newhoggy@gmail.com
copyright:      2016-2018 John Ky
license:        BSD-3-Clause
license-file:   LICENSE
tested-with:    GHC == 8.6.3, GHC == 8.4.2, GHC == 8.2.2, GHC == 8.0.2
build-type:     Simple
extra-source-files:
    README.md

source-repository head
  type: git
  location: https://github.com/haskell-works/hw-bits

flag sse42
  description: Enable SSE 4.2 optimisations.
  manual: False
  default: True

common base                 { build-depends: base                 >= 4          && < 5      }

common QuickCheck           { build-depends: QuickCheck           >= 2.10       && < 2.12   }
common bytestring           { build-depends: bytestring           >= 0.9        && < 0.11   }
common criterion            { build-depends: criterion            >= 1.2        && < 1.6    }
common hedgehog             { build-depends: hedgehog             >= 0.5        && < 0.7    }
common hspec                { build-depends: hspec                >= 2.4        && < 3      }
common hw-hspec-hedgehog    { build-depends: hw-hspec-hedgehog    >= 0.1.0.4    && < 0.2    }
common hw-int               { build-depends: hw-int               >= 0.0.0.1    && < 0.1    }
common hw-prim              { build-depends: hw-prim              >= 0.4.0.3    && < 0.7    }
common hw-string-parse      { build-depends: hw-string-parse      >= 0.0.0.1    && < 0.1    }
common vector               { build-depends: vector               >= 0.12       && < 0.13   }
common safe                 { build-depends: safe                 >= 0.3        && < 0.4    }

common common
  default-language:   Haskell2010
  ghc-options:        -Wall -O2
  if flag(sse42)
    ghc-options:      -msse4.2

library
  import:   base
          , common
          , bytestring
          , hw-int
          , hw-prim
          , hw-string-parse
          , safe
          , vector
  exposed-modules:
      HaskellWorks.Data.Bits
      HaskellWorks.Data.Bits.AllExcess
      HaskellWorks.Data.Bits.AllExcess.AllExcess0
      HaskellWorks.Data.Bits.AllExcess.AllExcess1
      HaskellWorks.Data.Bits.BitLength
      HaskellWorks.Data.Bits.BitParse
      HaskellWorks.Data.Bits.BitRead
      HaskellWorks.Data.Bits.BitShow
      HaskellWorks.Data.Bits.BitShown
      HaskellWorks.Data.Bits.BitWise
      HaskellWorks.Data.Bits.Broadword
      HaskellWorks.Data.Bits.ElemFixedBitSize
      HaskellWorks.Data.Bits.FixedBitSize
      HaskellWorks.Data.Bits.FromBitTextByteString
      HaskellWorks.Data.Bits.LoBitsSized
      HaskellWorks.Data.Bits.Log2
      HaskellWorks.Data.Bits.PopCount
      HaskellWorks.Data.Bits.PopCount.PopCount0
      HaskellWorks.Data.Bits.PopCount.PopCount1
      HaskellWorks.Data.Bits.Types.Broadword
      HaskellWorks.Data.Bits.Types.Builtin
      HaskellWorks.Data.Bits.Word
      HaskellWorks.Data.Bits.Writer.Storable
  other-modules:      Paths_hw_bits
  autogen-modules:    Paths_hw_bits
  hs-source-dirs:     src

test-suite hw-bits-test
  import:   base
          , common
          , QuickCheck
          , bytestring
          , hedgehog
          , hspec
          , hw-hspec-hedgehog
          , hw-prim
          , vector
  build-depends:      hw-bits
  type:               exitcode-stdio-1.0
  main-is:            Spec.hs
  build-depends:      hw-bits
  other-modules:
      HaskellWorks.Data.Bits.BitReadSpec
      HaskellWorks.Data.Bits.BitWiseSpec
      HaskellWorks.Data.Bits.FromBitTextByteStringSpec
      HaskellWorks.Data.Bits.Log2Spec
      HaskellWorks.Data.Bits.Writer.StorableSpec
      Paths_hw_bits
  autogen-modules:    Paths_hw_bits
  hs-source-dirs:     test
  ghc-options:        -threaded -rtsopts -with-rtsopts=-N
  build-tool-depends: hspec-discover:hspec-discover

benchmark bench
  import:   base
          , common
          , criterion
          , vector
  build-depends:      hw-bits
  type:               exitcode-stdio-1.0
  main-is:            Main.hs
  build-depends:      hw-bits
  other-modules:      Paths_hw_bits
  autogen-modules:    Paths_hw_bits
  hs-source-dirs:     bench