Package maintainers and Hackage trustees are allowed to edit certain bits
of package metadata after a release, without uploading a new tarball.
Note that the tarball itself is never changed, just the metadata that is
stored separately. For more information about metadata revisions, please
refer to the
Hackage Metadata Revisions FAQ.
No. |
Time |
User |
SHA256 |
-r2 (bitvec-1.0.0.1-r2) |
2022-06-19T20:42:34Z |
Bodigrim |
d0ff359caae444dc3dc0caf7ac2235b81ebec11a9a73a8bcac8ca089aa20a88f
|
|
|
-r1 (bitvec-1.0.0.1-r1) |
2019-08-10T22:07:39Z |
Bodigrim |
04ba2e92d4a6a4c1752047681bcdd8acb101fec7d80e8cde9d83506122611061
|
|
Changed description
from A newtype over 'Bool' with a better 'Vector' instance.
The [vector](https://hackage.haskell.org/package/vector)
package represents unboxed arrays of 'Bool'
This library provides a newtype wrapper 'Bit' and a custom instance
of unboxed 'Vector', which packs bits densely,
achieving __8x less 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 64x faster than 'Vector Bool'.
=== Thread safety
* "Data.Bit" is faster, but writes and flips are thread-unsafe.
This is because naive updates are not atomic:
read the whole word from memory,
then modify a bit, then write the whole word back.
* "Data.Bit.ThreadSafe" is slower (up to 20%),
but writes and flips are thread-safe.
=== Similar packages
* [bv](https://hackage.haskell.org/package/bv) and
[bv-little](https://hackage.haskell.org/package/bv-little)
do not offer mutable vectors.
* [array](https://hackage.haskell.org/package/array)
is memory-efficient for 'Bool', but lacks
a handy 'Vector' interface and is not thread-safe.
to A newtype over 'Bool' with a better 'Vector' instance.
The <https://hackage.haskell.org/package/vector vector>
package represents unboxed arrays of 'Bool'
This library provides a newtype wrapper 'Bit' and a custom instance
of unboxed 'Vector', which packs bits densely,
achieving __8x less 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 64x faster than 'Vector' 'Bool'.
=== Thread safety
* "Data.Bit" is faster, but writes and flips are thread-unsafe.
This is because naive updates are not atomic:
read the whole word from memory,
then modify a bit, then write the whole word back.
* "Data.Bit.ThreadSafe" is slower (up to 20%),
but writes and flips are thread-safe.
=== 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.
|
-r0 (bitvec-1.0.0.1-r0) |
2019-08-10T19:29:07Z |
Bodigrim |
b68ce9a91c32bcb142f6d88afb8a1c320f131f7be122f33ed71ba023525bf286
|
|
|