packages feed

bv-little-0.1.2: bv-little.cabal

name:                bv-little
version:             0.1.2
synopsis:            Efficient little-endian bit vector library
category:            Data, Bit Vectors
license:             BSD3
license-file:        LICENSE
author:              Alex Washburn
maintainer:          hackage@recursion.ninja
homepage:            https://github.com/recursion-ninja/bv-little
bug-reports:         https://github.com/recursion-ninja/bv-little/issues
copyright:           (c) Alex Washburn 2018
description:
  .
  This package contains a time- and space- efficient implementation of /little-endian/ bit vectors. Provides implementations of applicable typeclasses and numeric conversions.
  .
  The declared cost of each operation is either worst-case or amortized.
  .
  For an implementation of /big-endian/ bit vectors, use the <https://hackage.haskell.org/package/bv bv> package.

build-type:          Simple
cabal-version:       >= 1.22

tested-with:         GHC == 8.6.1
                     GHC == 8.4.3
                     GHC == 8.2.2
                     GHC == 8.0.2
                     GHC == 7.10.3

extra-source-files:  changelog.md
                     README.md
                     stack.yaml

source-repository head
  type:     git
  location: https://github.com/recursion-ninja/bv-little


library

  build-depends:      base             >= 4.5.1 && < 4.13
                    , deepseq
                    , hashable
                    , integer-gmp
                    , mono-traversable
                    , primitive
                    , QuickCheck

  if !impl(ghc >= 8.0)

    build-depends:    semigroups

  default-language: Haskell2010

  exposed-modules:  Data.BitVector.LittleEndian

  ghc-options:      -O2

                    -- Sanity check warnings
                    -Wall
                    -fwarn-dodgy-foreign-imports
                    -fwarn-incomplete-record-updates
                    -fwarn-incomplete-uni-patterns
                    -fwarn-overlapping-patterns

                    -fwarn-duplicate-exports
                    -fwarn-identities
                    -fwarn-incomplete-patterns
                    -fwarn-incomplete-record-updates
                    -fwarn-incomplete-uni-patterns
                    -fwarn-missing-fields
                    -fwarn-missing-signatures
                    -fwarn-overlapping-patterns
                    -fwarn-tabs
                    -fwarn-unused-binds
                    -fwarn-unused-do-bind
                    -fwarn-unused-imports
                    -fwarn-unused-matches
                    -fwarn-wrong-do-bind

  if impl(ghc >= 7.8)

    ghc-options:    -fwarn-empty-enumerations
                    -fwarn-overflowed-literals

  if impl(ghc >= 8.0)

    ghc-options:    -Wcompat
                    -fwarn-noncanonical-monoid-instances
                    -fwarn-redundant-constraints
                    -fwarn-semigroup
                    -fwarn-unrecognised-warning-flags
                    -fwarn-unused-foralls

  hs-source-dirs:   src


Test-Suite test-suite

  type:             exitcode-stdio-1.0

  main-is:          TestSuite.hs

  build-depends:      base             >= 4.5.1 && < 4.13
                    , bv-little
                    , deepseq
                    , hashable
                    , mono-traversable
                    , QuickCheck
                    , tasty
                    , tasty-hunit
                    , tasty-quickcheck

  if !impl(ghc >= 8.0)

    build-depends:    semigroups
                    , transformers

  default-language: Haskell2010

  hs-source-dirs:   test


benchmark benchmark-suite

  type:             exitcode-stdio-1.0

  main-is:          Benchmarks.hs

  build-depends:      base             >= 4.5.1 && < 4.13
                    , bv-little
                    , criterion
                    , deepseq
                    , hashable

  if !impl(ghc >= 8.0)

    build-depends:    semigroups

  default-language: Haskell2010

  ghc-options:      -O2
                    -threaded
                    -fdicts-cheap
                    -fmax-simplifier-iterations=10
                    -fno-full-laziness
                    -fspec-constr-count=6

                    -- Sanity check warnings
                    -Wall
                    -fwarn-dodgy-foreign-imports
                    -fwarn-incomplete-record-updates
                    -fwarn-incomplete-uni-patterns
                    -fwarn-overlapping-patterns

                    -- Turn off type default warnings
                    -fno-warn-type-defaults

  hs-source-dirs:   bench