diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-28 11:48:17 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:14 -0300 |
| commit | 78c60342022bc44307ad789aaef163ab96ebd08b (patch) | |
| tree | 92c35aa8a5a39df2384d2dd1e297e4716798d23a /src/macos/Sources | |
| parent | 1c3842f136b9f98fae784559ec12d66d629c5909 (diff) | |
| download | pardes-78c60342022bc44307ad789aaef163ab96ebd08b.tar.gz pardes-78c60342022bc44307ad789aaef163ab96ebd08b.zip | |
A regular expression search comes back: costly patterns refused, long lines windowed, 300 ms deadline
mvzr backtracks with no bound on its work (a*a*a*a*x over a hundred a's takes a
second, each repeat multiplying by the haystack length), and a search runs holding
the editor's turn, so one pasted pattern froze the editor. pardes does not write or
vendor a regex engine, so regexp.zig bounds what it hands mvzr: more than four
repeats is refused, a line longer than a window sized from measured worst cases is
searched in half-overlapping windows, and a deadline stops the search. addr names
each failure; normal s/S keeps what it found. The prescan also stops reading an
escaped backslash before n as a newline, and ends a class where mvzr does.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/macos/Sources')
0 files changed, 0 insertions, 0 deletions
