Closed
Description
I think the 0.2
release has baked long enough. I propose that regex 1.0
be released on May 1, 2018.
Here are the key breaking changes (all supremely minor) I'd like to make:
- Increase the minimum Rust version to 1.??.
- Establish a policy around bumping the minimum Rust version. I would like to propose that new patch releases (
1.x.y
) should never increase the minimum Rust version required to compileregex
, but that new minor version releases (1.x
) may increase the minimum Rust version required to compileregex
. - Disable octal syntax by default. Today,
Regex::new(r"\1").unwrap().is_match("\u{1}")
evaluates totrue
. Instead, I'd like it to emit an error that backreferences are not supported. We will provide a method onRegexBuilder
to opt into the old syntax with octal escape sequences supported. - Ban
(?-u:\B)
from use inRegex::new
, since it is permitted to match invalid UTF-8 boundaries. We, of course, continue to allow it forbytes::Regex::new
.(?-u:\b)
remains legal inRegex::new
, since it cannot match invalid UTF-8 boundaries. - Remove the
impl From<regex_syntax::Error> for regex::Error
definition. The fact that this exists was an oversight, and it actually causesregex-syntax
to be a public dependency ofregex
, which we very much do not want to happen. - As noted by @cuviper, we may some day want to support non-std but
core
/alloc
-only use cases. To make this happen, we'll need to gate things on astd
feature that is enabled by default. We need to add this feature in 1.0 and gate the entire crate on it. If we didn't, and added this gate in the future, then existing uses ofdefault-features = false
would likely break, which would be a breaking change.
Metadata
Metadata
Assignees
Labels
No labels