Russ Cox would like Alan Donovan to review this change.
README.md: convert README to Markdown, expand
The README is essentially unchanged since 2009. Update it:
* Convert to Markdown.
* Paste in a few wiki pages, which will change to redirect to the README.md:
- https://github.com/google/re2/wiki/WhyRE2
- https://github.com/google/re2/wiki/CplusplusAPI
- https://github.com/google/re2/wiki/Install
Also document recipes for using CMake and Bazel,
neither of which was obvious to me.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Code-Review | +2 |
_**Safety is RE2's raison d'être.**_
"primary goal"?
(r always urged me to use only English.)
by working within a configurable budget – failing gracefully when exhausted –
No spaces around em dashes.
Although RE2 guarantees linear-time performance, the linear-time constant
varies depending on the overhead entailed by safe handling of the regular expression.
awkward?
Perhaps:
Although RE2 guarantees a running time that is asymptotically linear in the length of the input, more complex expressions may incur larger constant factors.
(Though this does raise the question whether DoS is possible by making the expression sufficiently complex.)
In a sense, RE2 behaves pessimistically whereas backtracking engines behave optimistically,
so it can be outperformed in various situations.
Perhaps elaborate to something like:
In a sense, RE2 is pessimistic where a backtracking engine is optimistic:
A backtracking engine tests each alternative sequentially, making it fast when the first alternative is common. By contrast RE2 evaluates all alternatives in parallel, avoiding the performance penalty for the last alternative, at the cost of some overhead. This pessimism is what makes RE2 secure.
For example, the predefined `Quiet` options silence error
message printing when a regular expression fails to parse:
6 nouns? Hard to parse.
RE2's native language is C++.
implementation
or "is implemented in"
The heading promises ports but then lists only wrappers.
Mention:
?
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Thanks for the careful review. I was not as careful copying the text off the wiki.
_**Safety is RE2's raison d'être.**_
"primary goal"?
(r always urged me to use only English.)
Done
by working within a configurable budget – failing gracefully when exhausted –
No spaces around em dashes.
Done
Although RE2 guarantees linear-time performance, the linear-time constant
varies depending on the overhead entailed by safe handling of the regular expression.
awkward?
Perhaps:
Although RE2 guarantees a running time that is asymptotically linear in the length of the input, more complex expressions may incur larger constant factors.
(Though this does raise the question whether DoS is possible by making the expression sufficiently complex.)
Done
In a sense, RE2 behaves pessimistically whereas backtracking engines behave optimistically,
so it can be outperformed in various situations.
Perhaps elaborate to something like:
In a sense, RE2 is pessimistic where a backtracking engine is optimistic:
A backtracking engine tests each alternative sequentially, making it fast when the first alternative is common. By contrast RE2 evaluates all alternatives in parallel, avoiding the performance penalty for the last alternative, at the cost of some overhead. This pessimism is what makes RE2 secure.
Done
For example, the predefined `Quiet` options silence error
message printing when a regular expression fails to parse:
6 nouns? Hard to parse.
Done
RE2's native language is C++.
implementation
or "is implemented in"
Done
The heading promises ports but then lists only wrappers.
Mention:
- https://github.com/google/re2j (Java)
- https://github.com/le0pard/re2js (JS, via RE2/J--a grandport!)
?
Done
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Code-Review | +2 |
For example, `RE2::Quiet` silences the error message that are
messages (plural)
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
For example, `RE2::Quiet` silences the error message that are
Russ Coxmessages (plural)
Done but now you have to +2 again. Sorry.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
README.md: convert README to Markdown, expand
The README is essentially unchanged since 2009. Update it:
* Convert to Markdown.
* Paste in a few wiki pages, which will change to redirect to the README.md:
- https://github.com/google/re2/wiki/WhyRE2
- https://github.com/google/re2/wiki/CplusplusAPI
- https://github.com/google/re2/wiki/Install
Also document recipes for using CMake and Bazel,
neither of which was obvious to me.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |