🚀 This release adds a plethora of new crate features that permit users of regex to shrink its size considerably, in exchange for giving up either functionality 🐎 (such as Unicode support) or runtime performance. When all such features are disabled, the dependency tree for
regexshrinks to exactly 1 crate (
regex-syntax). More information about the new crate features can be 📄 found in the docs.
🚀 Note that while this is a new minor version release, the minimum supported Rust version for this crate remains at
🆕 New features:
🚀 This release does a bit of house cleaning. Namely:
- This repository is now using rustfmt.
- 🚚 License headers have been removed from all files, in following suit with the Rust project.
- 🚚 Teddy has been removed from the
regexcrate, and is now part of the
packedsub-module for details.
- 🗄 The
utf8-rangescrate has been deprecated, with its functionality moving into the
ucd-utildependency has been dropped, in favor of implementing what little we need inside of
In general, this is part of an ongoing (long term) effort to make optimizations in the regex engine easier to reason about. The current code is too convoluted and thus it is very easy to introduce new bugs. This simplification effort is the primary motivation behind re-working the
aho-corasickcrate to not only bundle algorithms like Teddy, but to also provide regex-like match semantics automatically.
Moving forward, the plan is to join up with the
regex-automatacrates, with the former providing more sophisticated substring search algorithms (thereby deleting existing code in
regex) and the latter providing ahead-of-time compiled DFAs for cases where they are inexpensive to compute.
🚀 This release updates regex's minimum supported Rust version to 1.28, which was 🚀 release almost 1 year ago. This release also updates regex's Unicode data tables to 12.1.0.
🚀 This release contains a few small internal refactorings. One of which fixes an instance of undefined behavior in a part of the SIMD code.
🐛 Bug fixes:
🚀 This release fixes up a few warnings as a result of recent deprecations.
🚀 This release fixes a bug in regex's dependency specification where it requires a newer version of regex-syntax, but this wasn't communicated correctly in the Cargo.toml. This would have been caught by a minimal version check, but this check was disabled because the
randcrate itself advertises incorrect dependency specifications.
🐛 Bug fixes:
- BUG #570: Fix regex-syntax minimal version.
🚀 This release fixes a backwards compatibility regression where Regex was no ⬆️ longer UnwindSafe. This was caused by the upgrade to aho-corasick 0.7, whose 🛠 AhoCorasick type was itself not UnwindSafe. This has been fixed in aho-corasick 0.7.4, which we now require.
🐛 Bug fixes:
- BUG #568: Fix an API regression where Regex was no longer UnwindSafe.