Skip to content

0.9.0 Tracking Issue #178

Open
Open
@saik0

Description

@saik0

Here's what I think is still left before next release

Release notes

  • Breaking changes

    • Removed deprecated set ops such as union_with. Use the corresponding operators |=.
    • MSRV increased to 1.56
    • deserialize_from validates inputs. It some cases it can be 4x slower. For workloads that are heavy in deserialization from trusted sources migrate to deserialize_unchecked_from
  • Performance optimizations

    • from_sorted_iter and append are exponentially faster. They should be preferred over collect and extend whenever adding monotonically increasing integers to the set as it's about 2-2.5x faster.
    • Other performance optimizations.
      Min Mean Max
      Iteration 6% 57% 125%
      And 0% 7% 22%
      Or 0% 10% 33%
      Sub 0% 9% 39%
      Xor 4% 90% 209%
  • New features

    • rank Returns the number of integers that are <= value. rank(u64::MAX) == len()
    • select Returns the nth integer in the set or None if n <= len()
    • union_len intersection_len ... and so on. Compute the cardinality of a set operation without materializing it. Usually about twice as fast as materializing the bitmap.
    • implemented DoubleEndedIterator
    • implemented ExactSizeIterator (on 64 bit targets only)
    • EXPERIMENTAL SIMD feature (requires rust nightly)
      Min Mean Max
      And 0% 34% 141%
      Or 2% 45% 145%
      Sub 0% 51% 168%
      Xor 0% 130% 437%
  • Other

    • Added property testing suite for set operations
    • Added many benchmarks and real world datasets

Perf numbers are for pairwise operations on collections of bitmaps from real datasets.
Pairwise as in: B1 ∩ B2, B2 ∩ B3, ... BN-1 ∩ BN

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions