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.
My plan is to release v0.6.0 on Sunday.
There are two remaining blockers:
🔥 Remove deprecated UIDPlusData class #540
This requires only a few tweaks to the current PR, so the config options can have their own deprecation period. They'll raise a warning in the parser when they would've triggered. This is related to deprecation and deletion, so it really is a blocker for v0.6.0.
Improve
SequenceSetmemory use and performance #484This won't be done, but I did want to at least move off of the array of arrays approach, which uses 6x more memory than necessary! My current run length encoded branch is significantly faster on most benchmarks... except for operations that index into it as if it were an array of numbers:
#at,#slice/#[],#find_index, etc. These are all alreadyO(n)in the current implementation... but dealing with the encoded runs slows them down even more (at least in the current implementation). And, for how I useSequenceSet, I really need these operations operations to be significantly faster than they already are.If I'm not happy with my (simple) "chunked RLE" sequence set implementation by Sunday, we'll just ship what we already have.
I did also hope to finish the QRESYNC code, and I'll probably even be working on that this week and next for my employer. But I don't think I'll have time to make the
net-imapparts of that work release ready. Everything else can wait for v0.6.1 or v0.7.0.