Comments (8)
@huonw I'm not sure this issue actually belongs on this repo, unless there is something about the regex!
implementation that is abusing code generation?
from regex.
I don't know the specifics of regex!
, so it may very well be better suited to being returned to rust-lang/rust. (I assume the migration was mechanical.)
from regex.
(Yup, was mechanical.) OK, I re-opened the issue on rust-lang/regex, but I'm also keeping this open because it would be nice to reduce the amount of code generated by regex!
(which I think is one way of attacking the original problem).
from regex.
I wonder if const fn
allows for abstracting some of the code away. (That said, const fn
can't do much computation so I guess it can't.)
from regex.
Yeah, I doubt const fn
would help (I read the original RFC long ago, not sure if it got more powerful since then). I think the real key to this will be two-fold:
- Do more analysis on the regex and generate cleverer code (like Ragel does and like OP's example).
- Stop embedding full NFA and fall back to the dynamic implementation. (There is not much difference between them now after recent perf improvements in the dynamic impl.
regex!
used to be better because it allocated less, but it no longer has that advantage!)
from regex.
What is the code generated?
from regex.
@arielb1 Right now, it's a full NFA simulation. The generator requires calling the regex parser and compiler before hand.
from regex.
Closing in favor of #26.
from regex.
Related Issues (20)
- Inconsistent behavior with zero-width matches on empty strings
- Valid prefix search (with ^) goes into dead state HOT 3
- The regex parse error while the expre is correct ! HOT 2
- Onepass DFA always has empty captures (user error) HOT 2
- dfa/onepass.rs: index out of bounds HOT 2
- Errors when running quickstart from docs HOT 2
- Add a flag for unescaped literal groups HOT 1
- Inconsistency with is_match and Python's search in Matching Specific Regex Patterns HOT 6
- regex-lite with a &[u8] haystack HOT 2
- Underscore will not match propblaly HOT 2
- Invalid regex with multiple repetition flags is accepted HOT 3
- Valgrind reports "possibly lost" when using static `Regex` HOT 7
- adding regex-automata to cargo.toml file reduces performance
- Add method to get the full match of a Captures without an unwrap HOT 2
- valgrind reports "Conditional jump or move depends on uninitialised value(s)" HOT 2
- no_std support and cargo.toml doc comments HOT 2
- calling `caputres_iter` in an `async` function may cause memory leak HOT 20
- Compilation error when compiling with nightly with `unstable` feature enabled HOT 4
- switch `once_cell` recommendation to `std::sync::LazyLock` HOT 1
- Version 1.5.0 should be yanked HOT 2
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 regex.