-
Notifications
You must be signed in to change notification settings - Fork 49
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
🎨 RLE indices no longer materialise bitset
s
#434
🎨 RLE indices no longer materialise bitset
s
#434
Conversation
I'm going to write up a document describing how this and the RLE encoding process works, so it might be a good idea to wait for that to assist with reviews. |
bedc897
to
bdde90f
Compare
472142d
to
70c5ad3
Compare
efc5bd9
to
15d283d
Compare
I'll wait until you get the changes in intel/cpp-std-extensions#45 merged, and then fix both the |
The previous interim implementation of RLE encoded message indices would decode data into fully materialised `bitset`s in order to fit into the existing infrastructure easily. This commit now eliminates the need to materialise a `bitset` to compute which callbacks are to be executed for a given message. The `rle_intersect` type is a proxy object that collects together multiple `rle_decoder`s created from the indexed RLE data during message matching. This proxy object can then be used to virtually combine the run length encoded bitset data and enumerate the resulting `1` bits. It is still possible to materialise the `bitset`s if needed.
84c6eff
to
cb096cc
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Look's great! Had a chance today to finish my review. I may post an issue/enhancemenr later for additional property based tests on the RLE encode/decode functions.
The previous interim implementation of RLE encoded message indices would decode data into fully materialised
bitset
s in order to fit into the existing infrastructure easily.This commit now eliminates the need to materialise a
bitset
to compute which callbacks are to be executed for a given message.The
rle_intersect
type is a proxy object that collects together multiplerle_decoder
s created from the indexed RLE data during message matching. This proxy object can then be used to virtually combine the run length encoded bitset data and enumerate the resulting1
bits.It is still possible to materialise the
bitset
s if needed.Implements #396