Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Breaking Changes Wishlist #9

Open
10 tasks
Cydhra opened this issue Jul 13, 2024 · 0 comments
Open
10 tasks

Breaking Changes Wishlist #9

Cydhra opened this issue Jul 13, 2024 · 0 comments
Labels
breaking An enhancement or similar that induces a breaking change enhancement New feature or request

Comments

@Cydhra
Copy link
Owner

Cydhra commented Jul 13, 2024

Listed here are breaking changes to implement if a major version release is planned

  • Rename FastRmq to SmallRmq or something similar, expressing its higher memory efficiency
  • Rename BinaryRmq to SparseRmq
  • Change return value of count_ones and count_zeros functions in both bit vectors to usize
  • Refactor the data structure APIs into traits, so alternative backing structs can be used interchangeably with trait objects, and code can be reused when providing alternative implementations or utility like MaskedBitVec. This also enables a graceful implementation of Zero-Copy Serialization/Deserialization #5
  • Rename BitVector::from_bits to from_bits_u8
  • Change the Vecs inside immutable data structures into Box<&[u64]> where applicable
  • Change u64 limbs into a struct worth 512 bits to force both cache-alignment and avx-alignment
  • merge superblocks and blocks into a cache-aligned interleaved structure to reduce cache misses
  • Maybe abstract over the RS support structure, such that it can be exchanged through different implementations
  • Change RsVec fields (and fields of the supporting structs) that are not indices from usize to u64 (like len, rank0, ...)
@Cydhra Cydhra added enhancement New feature or request breaking An enhancement or similar that induces a breaking change labels Jul 13, 2024
@Cydhra Cydhra mentioned this issue Jul 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking An enhancement or similar that induces a breaking change enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant