Comments (5)
That sounds like a good idea.
Users of lalrpop
don't need to know that it internally uses the regex
crate, it's perfectly possible to only have a dependency on lalrpop
.
Having to add a direct dependency on regex
and regex-syntax
just to enable some optional features on them is not intuitive. But a unicode
feature on lalrpop
is. It's also easy do document: If you use unicode character classes in your grammar, you need to add the unicode
-feature on lalrpop
.
from lalrpop.
Because lalrpop itself didn't require the feature, we couldn't catch the problem.
Small clarification, lalrpop does require this feature in CI (for example here, however because CI is ran with a Cargo.lock present, we never ran lalrpop CI with regex 1.8. Lalrpop binary users get the versions in lalrpop's Cargo.lock, but lalrpop library users do now.
Other than that, I think your explanation is spot on.
from lalrpop.
see also #750 (comment)
Thanks @jannic
from lalrpop.
This makes sense to me, though I would appreciate from somebody a summary of exactly what this breakage is all about.
from lalrpop.
@nikomatsakis by looking #750, user can input any regex. Here is my guess based on it.
Until regex 1.7, even if your input required unicode feature of regex-syntax, it passed because lalrpop implicitly had dependency to regex-syntax with unicode feature.
With regex 1.8, it is broken. regex 1.8 requires regex-syntax 0.7 while lalrpop depends on regex-syntax 0.6. Our dependency to regex(implicitly 1.8) enabled regex-syntax 0.7 with unicode feature, but the direct dependnecy regex-syntax 0.6 with no feature. Because lalrpop itself didn't require the feature, we couldn't catch the problem.
Users who depending on regex-syntax with unicode features started to experience problem because unicode feature is unexpectedly and silently dropped in their dependency.
from lalrpop.
Related Issues (20)
- Release a new version and yank last release HOT 4
- Using `ThinVec` instead of `Vec` HOT 3
- Error in 0.20's generated code HOT 3
- Custom lexer needs context information from the parser? HOT 7
- Custom lexer with custom Token type HOT 8
- Dangling symlinks anywhere in the crate cause obscure build failures HOT 1
- Is it supposed to be possible to use the lexer generator without enabling the unicode feature? HOT 7
- Assertion instead of error message HOT 3
- Additional bracket make generated code fail to compile. HOT 1
- Online yacc/lex grammar editor/tester HOT 2
- Custom parser errors HOT 10
- Grouping rules together HOT 1
- Confusion about Ambiguous regex HOT 1
- Parsing from standard input? HOT 2
- Release 0.20.1 not SemVer compatible? HOT 7
- How can I parse newline-separated code with lalrpop? HOT 2
- Lane Table not quite correct? HOT 2
- Access to span in fallible actions HOT 1
- Replace term with anstream? HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lalrpop.