CompactBitset utility to turn bunch of bits to a bitset without additional serialization requirements#184
Merged
Merged
Conversation
…ional serialization requirements
shosseinimotlagh
self-requested a review
October 6, 2023 22:16
hkadayam
added this pull request to the merge queue
Oct 6, 2023
github-merge-queue
Bot
removed this pull request from the merge queue due to no response for status checks
Oct 7, 2023
hkadayam
added this pull request to the merge queue
Oct 7, 2023
yamingk
reviewed
Oct 7, 2023
yamingk
reviewed
Oct 7, 2023
yamingk
reviewed
Oct 7, 2023
yamingk
reviewed
Oct 7, 2023
yamingk
reviewed
Oct 7, 2023
github-merge-queue
Bot
removed this pull request from the merge queue due to no response for status checks
Oct 7, 2023
hkadayam
added this pull request to the merge queue
Oct 9, 2023
github-merge-queue
Bot
removed this pull request from the merge queue due to no response for status checks
Oct 9, 2023
hkadayam
enabled auto-merge (rebase)
October 24, 2023 14:57
auto-merge was automatically disabled
October 24, 2023 14:57
Rebase failed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem statement: sisl::Bitset is a full blown implementation of bit mapping and it supports serialization. This is meant for larger bit sequences like blk allocation and id space etc. However, there is a need to have a small memory footprint (where bunch of bits are to be turned into bitset). This is especially needed to be hosted inside a btree node or hash value etc. Requirement is to have very limited functionality, but no header serialization.
Solution: This PR introduces the CompactBitset, which does support set/reset bits and find next available set / reset bit. The caller is expected to provide the buffer and its size as part of its constructor (though it does have a buildable constructor as well).
Testing: Introduced the test_compact_bitset to test this feature.
Additional changes: Changed sisl to be C++-20 compiler requirements