| web | https://mudge.name |
| github | https://github.com/mudge |
| sponsor | https://github.com/sponsors/mudge |
| web | https://mudge.name |
| github | https://github.com/mudge |
| sponsor | https://github.com/sponsors/mudge |
I had hoped to release this over the long weekend but it is now ready:
re2 2.27.0 is now out and now releases the Ruby Global VM Lock when performing matches with RE2::Regexp, a compiled RE2::Set, and when using RE2.replace, RE2.global_replace, and RE2.extract.
This gives a near-linear speed-up when using the gem in a multi-threaded environment (e.g. with Puma) and there’s a toy benchmark in the release notes to demonstrate.
A gift from me to you after the Bank Holiday weekend:
Argon2id 0.10.0, now with multi-threading and Ractor support (it no longer holds the Ruby Global VM Lock while doing the expensive computation of your password hash so these can now run in parallel, freeing up other work) and Argon2id::Password objects are now frozen.
re2 2.26.0 is now out distinguishing zero-length groups (e.g. `(a*)`) from unmatched ones (e.g. `(a)?`) by returning them as empty strings, not nil. This fixes the new `pre_match` and `post_match` methods when only matching a zero-length group but **may be a breaking change** if you relied on zero-length groups being nil.
re2 2.25.0 is now out with a new RE2.extract method and an expanded API for RE2::Regexp and RE2::MatchData to match Ruby’s own Regexp and MatchData more closely: names, named_captures, values_at, offset, pre_match, post_match, and match_length.
re2 2.24.0 is now out, upgrading the bundled version of Abseil to 20260107.1, allowing the copying of RE2 objects, and fixing bugs when handling uninitialized RE2 objects.