Sourced from regex's changelog.
1.8.0 (2023-04-20)
This is a sizeable release that will be soon followed by another sizeable release. Both of them will combined close over 40 existing issues and PRs.
This first release, despite its size, essentially represent preparatory work for the second release, which will be even bigger. Namely, this release:
- Increases the MSRV to Rust 1.60.0, which was released about 1 year ago.
- Upgrades its dependency on
aho-corasick
to the recently release 1.0 version.- Upgrades its dependency on
regex-syntax
to the simultaneously released0.7
version. The changes toregex-syntax
principally revolve around a rewrite of its literal extraction code and a number of simplifications and optimizations to its high-level intermediate representation (HIR).The second release, which will follow ~shortly after the release above, will contain a soup-to-nuts rewrite of every regex engine. This will be done by bringing
regex-automata
into this repository, and then changing theregex
crate to be nothing but an API shim layer on top ofregex-automata
's API.These tandem releases are the culmination of about 3 years of on-and-off work that began in earnest in March 2020.
Because of the scale of changes involved in these releases, I would love to hear about your experience. Especially if you notice undocumented changes in behavior or performance changes (positive or negative).
Most changes in the first release are listed below. For more details, please see the commit log, which reflects a linear and decently documented history of all changes.
New features:
- [FEATURE #501](rust-lang/regex#501): Permit many more characters to be escaped, even if they have no significance. More specifically, any ASCII character except for
[0-9A-Za-z<>]
can now be escaped. Also, a new routine,is_escapeable_character
, has been added toregex-syntax
to query whether a character is escapeable or not.- [FEATURE #547](rust-lang/regex#547): Add
Regex::captures_at
. This filles a hole in the API, but doesn't otherwise introduce any new expressive power.- [FEATURE #595](rust-lang/regex#595): Capture group names are now Unicode-aware. They can now begin with either a
_
or any "alphabetic" codepoint. After the first codepoint, subsequent codepoints can be any sequence of alpha-numeric codepoints, along with_
,.
,[
and]
. Note that replacement syntax has not changed.- [FEATURE #810](rust-lang/regex#810):
... (truncated)