Skip to content

Conversation

@nevans
Copy link
Collaborator

@nevans nevans commented Dec 10, 2025

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 SequenceSet memory use and performance #484
    This 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 already O(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 use SequenceSet, 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-imap parts of that work release ready. Everything else can wait for v0.6.1 or v0.7.0.

@nevans
Copy link
Collaborator Author

nevans commented Dec 14, 2025

I didn't finish the migration from SequenceSet implemented as an array of arrays into one of the other (faster, 3x-6x less memory use) because my preferred approach is still too slow for indexing/ranking by number (which is critically important for mapping UIDs to sequence numbers!).

But although it's a major refactoring, it should be 100% compatible... so it can be in the 0.6.1 release... and maybe still be released in time for ruby 4.0??? 🤞🏻

@nevans nevans marked this pull request as ready for review December 14, 2025 18:19
@nevans nevans merged commit 4e38b1f into master Dec 14, 2025
32 checks passed
@nevans nevans deleted the release-0.6 branch December 14, 2025 18:20
@nevans nevans added this to the v0.6 milestone Dec 14, 2025
@nevans
Copy link
Collaborator Author

nevans commented Dec 14, 2025

I can't fix this right now, but I'll get it pushed in a couple hours.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants