packages feed

Cabal revisions of bitvec-1.1.5.0

Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.

revision 1
-name: bitvec-version: 1.1.5.0-cabal-version: 2.0-build-type: Simple-license: BSD3-license-file: LICENSE-copyright: 2019-2022 Andrew Lelechenko, 2012-2016 James Cook-maintainer: Andrew Lelechenko <andrew.lelechenko@gmail.com>-homepage: https://github.com/Bodigrim/bitvec-synopsis: Space-efficient bit vectors-description:-  A newtype over 'Bool' with a better 'Vector' instance: 8x less memory, up to 3500x faster.-  .-  The <https://hackage.haskell.org/package/vector vector>-  package represents unboxed arrays of 'Bool's-  spending 1 byte (8 bits) per boolean.-  This library provides a newtype wrapper 'Bit' and a custom instance-  of an unboxed 'Vector', which packs bits densely,-  achieving an __8x smaller memory footprint.__-  The performance stays mostly the same;-  the most significant degradation happens for random writes-  (up to 10% slower).-  On the other hand, for certain bulk bit operations-  'Vector' 'Bit' is up to 3500x faster than 'Vector' 'Bool'.-  .-  === Thread safety-  .-  * "Data.Bit" is faster, but writes and flips are not thread-safe.-    This is because naive updates are not atomic:-    they read the whole word from memory,-    then modify a bit, then write the whole word back.-    Concurrently modifying non-intersecting slices of the same underlying array-    may also lead to unexpected results, since they can share a word in memory.-  * "Data.Bit.ThreadSafe" is slower (usually 10-20%),-    but writes and flips are thread-safe.-    Additionally, concurrently modifying non-intersecting slices of the same underlying array-    works as expected. However, operations that affect multiple elements are not-    guaranteed to be atomic.-  .-  === Similar packages-  .-  * <https://hackage.haskell.org/package/bv bv> and-    <https://hackage.haskell.org/package/bv-little bv-little>-    do not offer mutable vectors.-  .-  * <https://hackage.haskell.org/package/array 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 ==8.4.4 GHC ==8.6.5 GHC ==8.8.1 GHC ==8.8.2 GHC ==8.8.4 GHC ==8.10.7 GHC ==9.0.2 GHC ==9.2.7 GHC ==9.4.4 GHC ==9.6.1-extra-doc-files:-  changelog.md-  README.md--source-repository head-  type: git-  location: git://github.com/Bodigrim/bitvec.git--flag simd-  description:-    Use a C SIMD implementation for the ultimate performance of `zipBits`, `invertBits` and `countBits`.-    Disable this flag if there are problems with the C FFI.-  default: True-  manual: True--library-  exposed-modules:-    Data.Bit-    Data.Bit.ThreadSafe-  build-depends:-    base >=4.11 && <5,-    bytestring >=0.10 && <0.13,-    deepseq <1.6,-    primitive >=0.5,-    vector >=0.11 && <0.14-  default-language: Haskell2010-  hs-source-dirs: src-  other-modules:-    Data.Bit.F2Poly-    Data.Bit.F2PolyTS-    Data.Bit.Immutable-    Data.Bit.ImmutableTS-    Data.Bit.Internal-    Data.Bit.InternalTS-    Data.Bit.Mutable-    Data.Bit.MutableTS-    Data.Bit.PdepPext-    Data.Bit.Utils-  ghc-options: -O2 -Wall -Wcompat-  include-dirs: src--  if impl(ghc <9.0)-    build-depends: integer-gmp-  else-    build-depends: ghc-bignum--  if flag(simd) && !arch(javascript) && !arch(wasm32)-    c-sources: cbits/bitvec_simd.c-    cc-options: -fopenmp-simd-    cpp-options: -DUseSIMD-    other-modules:-      Data.Bit.SIMD--test-suite bitvec-tests-  type: exitcode-stdio-1.0-  main-is: Main.hs-  build-depends:-    base,-    bitvec,-    primitive >=0.5 && <0.9,-    quickcheck-classes-base <0.7,-    quickcheck-classes >=0.6.1 && <0.7,-    vector >=0.11,-    tasty <1.5,-    tasty-quickcheck <0.11-  default-language: Haskell2010-  hs-source-dirs: test-  other-modules:-    Support-    Tests.Conc-    Tests.F2Poly-    Tests.MVector-    Tests.MVectorTS-    Tests.SetOps-    Tests.SetOpsTS-    Tests.Vector-  ghc-options: -Wall -threaded -rtsopts -Wcompat-  include-dirs: test--  if impl(ghc <9.0)-    build-depends: integer-gmp <1.2-  else-    build-depends: ghc-bignum--benchmark bitvec-bench-  build-depends:-    base,-    bitvec,-    containers <0.7,-    random <1.3,-    tasty,-    tasty-bench >=0.3.2 && <0.4,-    vector-  type: exitcode-stdio-1.0-  main-is: Bench.hs-  default-language: Haskell2010-  hs-source-dirs: bench-  other-modules:-    Bench.BitIndex-    Bench.Common-    Bench.GCD-    Bench.Invert-    Bench.Intersection-    Bench.Product-    Bench.RandomFlip-    Bench.RandomRead-    Bench.RandomWrite-    Bench.Remainder-    Bench.Reverse-    Bench.Sum-    Bench.Union-  ghc-options: -O2 -Wall -Wcompat--  if impl(ghc <9.0)-    build-depends: integer-gmp-  else-    build-depends: ghc-bignum+name: bitvec
+version: 1.1.5.0
+x-revision: 1
+cabal-version: 2.0
+build-type: Simple
+license: BSD3
+license-file: LICENSE
+copyright: 2019-2022 Andrew Lelechenko, 2012-2016 James Cook
+maintainer: Andrew Lelechenko <andrew.lelechenko@gmail.com>
+homepage: https://github.com/Bodigrim/bitvec
+synopsis: Space-efficient bit vectors
+description:
+  A newtype over 'Bool' with a better 'Vector' instance: 8x less memory, up to 3500x faster.
+  .
+  The <https://hackage.haskell.org/package/vector vector>
+  package represents unboxed arrays of 'Bool's
+  spending 1 byte (8 bits) per boolean.
+  This library provides a newtype wrapper 'Bit' and a custom instance
+  of an unboxed 'Vector', which packs bits densely,
+  achieving an __8x smaller memory footprint.__
+  The performance stays mostly the same;
+  the most significant degradation happens for random writes
+  (up to 10% slower).
+  On the other hand, for certain bulk bit operations
+  'Vector' 'Bit' is up to 3500x faster than 'Vector' 'Bool'.
+  .
+  === Thread safety
+  .
+  * "Data.Bit" is faster, but writes and flips are not thread-safe.
+    This is because naive updates are not atomic:
+    they read the whole word from memory,
+    then modify a bit, then write the whole word back.
+    Concurrently modifying non-intersecting slices of the same underlying array
+    may also lead to unexpected results, since they can share a word in memory.
+  * "Data.Bit.ThreadSafe" is slower (usually 10-20%),
+    but writes and flips are thread-safe.
+    Additionally, concurrently modifying non-intersecting slices of the same underlying array
+    works as expected. However, operations that affect multiple elements are not
+    guaranteed to be atomic.
+  .
+  === Similar packages
+  .
+  * <https://hackage.haskell.org/package/bv bv> and
+    <https://hackage.haskell.org/package/bv-little bv-little>
+    do not offer mutable vectors.
+  .
+  * <https://hackage.haskell.org/package/array 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 ==8.4.4 GHC ==8.6.5 GHC ==8.8.1 GHC ==8.8.2 GHC ==8.8.4 GHC ==8.10.7 GHC ==9.0.2 GHC ==9.2.7 GHC ==9.4.4 GHC ==9.6.1
+extra-doc-files:
+  changelog.md
+  README.md
+
+source-repository head
+  type: git
+  location: git://github.com/Bodigrim/bitvec.git
+
+flag simd
+  description:
+    Use a C SIMD implementation for the ultimate performance of `zipBits`, `invertBits` and `countBits`.
+    Disable this flag if there are problems with the C FFI.
+  default: True
+  manual: True
+
+library
+  exposed-modules:
+    Data.Bit
+    Data.Bit.ThreadSafe
+  build-depends:
+    base >=4.11 && <5,
+    bytestring >=0.10 && <0.13,
+    deepseq <1.6,
+    primitive >=0.5,
+    vector >=0.11 && <0.14
+  default-language: Haskell2010
+  hs-source-dirs: src
+  other-modules:
+    Data.Bit.F2Poly
+    Data.Bit.F2PolyTS
+    Data.Bit.Immutable
+    Data.Bit.ImmutableTS
+    Data.Bit.Internal
+    Data.Bit.InternalTS
+    Data.Bit.Mutable
+    Data.Bit.MutableTS
+    Data.Bit.PdepPext
+    Data.Bit.Utils
+  ghc-options: -O2 -Wall -Wcompat
+  include-dirs: src
+
+  if impl(ghc <9.0)
+    build-depends: integer-gmp
+  else
+    build-depends: ghc-bignum
+
+  if flag(simd) && !arch(javascript) && !arch(wasm32)
+    c-sources: cbits/bitvec_simd.c
+    cc-options: -fopenmp-simd
+    cpp-options: -DUseSIMD
+    other-modules:
+      Data.Bit.SIMD
+
+test-suite bitvec-tests
+  type: exitcode-stdio-1.0
+  main-is: Main.hs
+  build-depends:
+    base,
+    bitvec,
+    primitive >=0.5 && <0.9,
+    quickcheck-classes-base <0.7,
+    quickcheck-classes >=0.6.1 && <0.7,
+    vector >=0.11,
+    tasty <1.6,
+    tasty-quickcheck <0.11
+  default-language: Haskell2010
+  hs-source-dirs: test
+  other-modules:
+    Support
+    Tests.Conc
+    Tests.F2Poly
+    Tests.MVector
+    Tests.MVectorTS
+    Tests.SetOps
+    Tests.SetOpsTS
+    Tests.Vector
+  ghc-options: -Wall -threaded -rtsopts -Wcompat
+  include-dirs: test
+
+  if impl(ghc <9.0)
+    build-depends: integer-gmp <1.2
+  else
+    build-depends: ghc-bignum
+
+benchmark bitvec-bench
+  build-depends:
+    base,
+    bitvec,
+    containers <0.7,
+    random <1.3,
+    tasty,
+    tasty-bench >=0.3.2 && <0.4,
+    vector
+  type: exitcode-stdio-1.0
+  main-is: Bench.hs
+  default-language: Haskell2010
+  hs-source-dirs: bench
+  other-modules:
+    Bench.BitIndex
+    Bench.Common
+    Bench.GCD
+    Bench.Invert
+    Bench.Intersection
+    Bench.Product
+    Bench.RandomFlip
+    Bench.RandomRead
+    Bench.RandomWrite
+    Bench.Remainder
+    Bench.Reverse
+    Bench.Sum
+    Bench.Union
+  ghc-options: -O2 -Wall -Wcompat
+
+  if impl(ghc <9.0)
+    build-depends: integer-gmp
+  else
+    build-depends: ghc-bignum
revision 2
 name: bitvec
 version: 1.1.5.0
-x-revision: 1
+x-revision: 2
 cabal-version: 2.0
 build-type: Simple
 license: BSD3
   build-depends:
     base,
     bitvec,
-    primitive >=0.5 && <0.9,
+    primitive >=0.5 && <0.10,
     quickcheck-classes-base <0.7,
     quickcheck-classes >=0.6.1 && <0.7,
     vector >=0.11,
     tasty <1.6,
-    tasty-quickcheck <0.11
+    tasty-quickcheck <0.12
   default-language: Haskell2010
   hs-source-dirs: test
   other-modules:
   build-depends:
     base,
     bitvec,
-    containers <0.7,
+    containers <0.8,
     random <1.3,
     tasty,
-    tasty-bench >=0.3.2 && <0.4,
+    tasty-bench >=0.3.2 && <0.5,
     vector
   type: exitcode-stdio-1.0
   main-is: Bench.hs
revision 3
 name: bitvec
 version: 1.1.5.0
-x-revision: 2
+x-revision: 3
 cabal-version: 2.0
 build-type: Simple
 license: BSD3
     base,
     bitvec,
     containers <0.8,
-    random <1.3,
+    random <1.4,
     tasty,
     tasty-bench >=0.3.2 && <0.5,
     vector