Cabal revisions of bitvec-1.0.0.0
Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.
revision 1
-name: bitvec-version: 1.0.0.0-cabal-version: >=1.10-build-type: Simple-license: BSD3-license-file: LICENSE-copyright: 2019 Andrew Lelechenko, 2012-2016 James Cook-maintainer: Andrew Lelechenko <andrew.lelechenko@gmail.com>-homepage: https://github.com/Bodigrim/bitvec-synopsis: Unboxed bit vectors-description:- Bit vectors library for Haskell.- .- The current [vector](https://hackage.haskell.org/package/vector)- package represents unboxed arrays of 'Bool'- allocating one byte per boolean, which might be considered wasteful.- This library provides a newtype wrapper 'Data.Bit.Bit' and a custom instance- of unboxed 'Data.Vector.Unboxed.Vector', which packs booleans densely.- It is a time-memory tradeoff: 8x less memory footprint- at the price of moderate performance penalty- (mostly, for random writes).- .- === Thread safety- * "Data.Bit" is faster, but thread-unsafe. This is because- naive updates are not atomic operations: read the whole word from memory,- modify a bit, write the whole word back.- * "Data.Bit.ThreadSafe" is slower (up to 2x), but thread-safe.- .- === Similar packages- .- * [bv](https://hackage.haskell.org/package/bv)- and [bv-little](https://hackage.haskell.org/package/bv-little)- offer only immutable size-polymorphic bit vectors.- @bitvec@ provides an interface to mutable vectors as well.- .- * [array](https://hackage.haskell.org/package/array)- is memory-efficient for 'Bool', but lacks- a handy 'Vector' interface and is not thread-safe.--category: Data, Bit Vectors-author: Andrew Lelechenko <andrew.lelechenko@gmail.com>,- James Cook <mokus@deepbondi.net>--tested-with: GHC ==7.10.3 GHC ==8.0.2 GHC ==8.2.2 GHC ==8.4.4 GHC ==8.6.5 GHC ==8.8.1-extra-source-files:- changelog.md--source-repository head- type: git- location: git://github.com/Bodigrim/bitvec.git--flag bmi2- description: Enable bmi2 instruction set- manual: False- default: False--library- exposed-modules:- Data.Bit- Data.Bit.ThreadSafe- build-depends:- base >=4.8 && <5,- ghc-prim,- primitive >=0.5,- vector >=0.11- if (flag(bmi2)) && (impl(ghc >=8.4.1))- build-depends:- bits-extra >=0.0.0.4 && <0.1- if impl(ghc <8.0)- build-depends:- semigroups >=0.8- default-language: Haskell2010- hs-source-dirs: src- other-modules:- Data.Bit.Immutable- Data.Bit.ImmutableTS- Data.Bit.Internal- Data.Bit.InternalTS- Data.Bit.Mutable- Data.Bit.MutableTS- Data.Bit.Select1- Data.Bit.Utils- ghc-options: -O2 -Wall- include-dirs: src- if (flag(bmi2)) && (impl(ghc >=8.4.1))- ghc-options: -mbmi2 -msse4.2- cpp-options: -DBMI2_ENABLED--test-suite bitvec-tests- type: exitcode-stdio-1.0- main-is: Main.hs- build-depends:- base >=4.8 && <5,- bitvec,- primitive >=0.5,- quickcheck-classes >=0.6.1,- vector >=0.11,- tasty,- tasty-hunit,- tasty-quickcheck- if impl(ghc <8.0)- build-depends:- semigroups >=0.8- default-language: Haskell2010- hs-source-dirs: test- other-modules:- Support- Tests.MVector- Tests.MVectorTS- Tests.SetOps- Tests.Vector- ghc-options: -Wall- include-dirs: test--benchmark gauge- build-depends:- base,- bitvec,- gauge,- vector- type: exitcode-stdio-1.0- main-is: Bench.hs- default-language: Haskell2010- hs-source-dirs: bench- ghc-options: -O2 -Wall+name: bitvec +version: 1.0.0.0 +x-revision: 1 +cabal-version: >=1.10 +build-type: Simple +license: BSD3 +license-file: LICENSE +copyright: 2019 Andrew Lelechenko, 2012-2016 James Cook +maintainer: Andrew Lelechenko <andrew.lelechenko@gmail.com> +homepage: https://github.com/Bodigrim/bitvec +synopsis: Unboxed bit vectors +description: + Bit vectors library for Haskell. + . + The current [vector](https://hackage.haskell.org/package/vector) + package represents unboxed arrays of 'Bool' + allocating one byte per boolean, which might be considered wasteful. + This library provides a newtype wrapper 'Data.Bit.Bit' and a custom instance + of unboxed 'Data.Vector.Unboxed.Vector', which packs booleans densely. + It is a time-memory tradeoff: 8x less memory footprint + at the price of moderate performance penalty + (mostly, for random writes). + . + === Thread safety + * "Data.Bit" is faster, but thread-unsafe. This is because + naive updates are not atomic operations: read the whole word from memory, + modify a bit, write the whole word back. + * "Data.Bit.ThreadSafe" is slower (up to 2x), but thread-safe. + . + === Similar packages + . + * [bv](https://hackage.haskell.org/package/bv) + and [bv-little](https://hackage.haskell.org/package/bv-little) + offer only immutable size-polymorphic bit vectors. + @bitvec@ provides an interface to mutable vectors as well. + . + * [array](https://hackage.haskell.org/package/array) + is memory-efficient for 'Bool', but lacks + a handy 'Vector' interface and is not thread-safe. + +category: Data, Bit Vectors +author: Andrew Lelechenko <andrew.lelechenko@gmail.com>, + James Cook <mokus@deepbondi.net> + +tested-with: GHC ==7.10.3 GHC ==8.0.2 GHC ==8.2.2 GHC ==8.4.4 GHC ==8.6.5 GHC ==8.8.1 +extra-source-files: + changelog.md + +source-repository head + type: git + location: git://github.com/Bodigrim/bitvec.git + +flag bmi2 + description: Enable bmi2 instruction set + manual: False + default: False + +library + exposed-modules: + Data.Bit + Data.Bit.ThreadSafe + build-depends: + base >=4.8 && <5, + ghc-prim, + primitive >=0.5, + vector >=0.11 && <0.13 + if (flag(bmi2)) && (impl(ghc >=8.4.1)) + build-depends: + bits-extra >=0.0.0.4 && <0.1 + if impl(ghc <8.0) + build-depends: + semigroups >=0.8 + default-language: Haskell2010 + hs-source-dirs: src + other-modules: + Data.Bit.Immutable + Data.Bit.ImmutableTS + Data.Bit.Internal + Data.Bit.InternalTS + Data.Bit.Mutable + Data.Bit.MutableTS + Data.Bit.Select1 + Data.Bit.Utils + ghc-options: -O2 -Wall + include-dirs: src + if (flag(bmi2)) && (impl(ghc >=8.4.1)) + ghc-options: -mbmi2 -msse4.2 + cpp-options: -DBMI2_ENABLED + +test-suite bitvec-tests + type: exitcode-stdio-1.0 + main-is: Main.hs + build-depends: + base >=4.8 && <5, + bitvec, + primitive >=0.5, + quickcheck-classes >=0.6.1, + vector >=0.11, + tasty, + tasty-hunit, + tasty-quickcheck + if impl(ghc <8.0) + build-depends: + semigroups >=0.8 + default-language: Haskell2010 + hs-source-dirs: test + other-modules: + Support + Tests.MVector + Tests.MVectorTS + Tests.SetOps + Tests.Vector + ghc-options: -Wall + include-dirs: test + +benchmark gauge + build-depends: + base, + bitvec, + gauge, + vector + type: exitcode-stdio-1.0 + main-is: Bench.hs + default-language: Haskell2010 + hs-source-dirs: bench + ghc-options: -O2 -Wall