-
Notifications
You must be signed in to change notification settings - Fork 18k
regexp: allow patterns with no alternates to be one-pass #48748
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This PR (HEAD: 6ce55f1) has been imported to Gerrit for code review. Please visit https://go-review.googlesource.com/c/go/+/353711 to see it. Tip: You can toggle comments from me using the |
Message from Ingo Oeser: Patch Set 3: (2 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Bryan Boreham: Patch Set 3: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
This PR (HEAD: d0f1fd6) has been imported to Gerrit for code review. Please visit https://go-review.googlesource.com/c/go/+/353711 to see it. Tip: You can toggle comments from me using the |
Message from Bryan Boreham: Patch Set 4: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Brad Fitzpatrick: Patch Set 4: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
This PR (HEAD: 96f04b5) has been imported to Gerrit for code review. Please visit https://go-review.googlesource.com/c/go/+/353711 to see it. Tip: You can toggle comments from me using the |
Message from Bryan Boreham: Patch Set 5: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Brad Fitzpatrick: Patch Set 5: Run-TryBot+1 Code-Review+1 (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Gopher Robot: Patch Set 5: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Gopher Robot: Patch Set 5: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Gopher Robot: Patch Set 5: TryBot-Result-1 (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Russ Cox: Patch Set 5: Code-Review+2 Hold+1 (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Daniel Martí: Patch Set 5: Code-Review+1 (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
This PR (HEAD: 0d22e6b) has been imported to Gerrit for code review. Please visit https://go-review.googlesource.com/c/go/+/353711 to see it. Tip: You can toggle comments from me using the |
Message from Dmitri Shuralyov: Patch Set 6: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Daniel Martí: Patch Set 6: Code-Review+1 (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Ingo Oeser: Patch Set 3: (2 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Bryan Boreham: Patch Set 3: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Bryan Boreham: Patch Set 4: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Brad Fitzpatrick: Patch Set 4: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Bryan Boreham: Patch Set 5: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Brad Fitzpatrick: Patch Set 5: Run-TryBot+1 Code-Review+1 (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Gopher Robot: Patch Set 5: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Gopher Robot: Patch Set 5: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Gopher Robot: Patch Set 5: TryBot-Result-1 (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Russ Cox: Patch Set 5: Code-Review+2 Hold+1 (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Daniel Martí: Patch Set 5: Code-Review+1 (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Dmitri Shuralyov: Patch Set 6: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Daniel Martí: Patch Set 6: Code-Review+1 (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Check whether a regex has any 'alt' instructions before rejecting it.
Message from Bryan Boreham: Patch Set 6: (2 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
This PR (HEAD: e9e0c29) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/go/+/353711. Important tips:
|
Message from t hepudds: Patch Set 7: Commit-Queue+1 Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Go LUCI: Patch Set 7: Dry run: CV is trying the patch. Bot data: {"action":"start","triggered_at":"2024-05-27T18:37:12Z","revision":"be1ae4ab4ecbe8bb2c9e4d566dc9d030ca4ddec1"} Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from t hepudds: Patch Set 7: -Commit-Queue Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Go LUCI: Patch Set 7: This CL has passed the run Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Go LUCI: Patch Set 7: LUCI-TryBot-Result+1 Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Ian Lance Taylor: Patch Set 7: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Dmitri Shuralyov: Patch Set 7: Code-Review+1 Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Ian Lance Taylor: Patch Set 8: Auto-Submit+1 Commit-Queue+1 Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Go LUCI: Patch Set 8: Dry run: CV is trying the patch. Bot data: {"action":"start","triggered_at":"2024-07-24T00:36:29Z","revision":"d8f6484ca36ad46b2764a609e87d90c0f19fd587"} Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Ian Lance Taylor: Patch Set 8: -Commit-Queue Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Go LUCI: Patch Set 8: This CL has passed the run Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Message from Go LUCI: Patch Set 8: LUCI-TryBot-Result+1 Please don’t reply on this GitHub thread. Visit golang.org/cl/353711. |
Check whether a regex has any 'alt' instructions before rejecting it as one-pass. Previously `^abc` would run the backtrack matcher. I tried to make the comment match what the code does now. Updates #21463 ``` name old time/op new time/op delta Find-8 167ns ± 1% 170ns ± 3% ~ (p=0.500 n=5+5) FindAllNoMatches-8 88.8ns ± 5% 87.3ns ± 0% ~ (p=0.095 n=5+5) FindString-8 166ns ± 3% 164ns ± 0% ~ (p=0.063 n=5+5) FindSubmatch-8 191ns ± 1% 191ns ± 0% ~ (p=0.556 n=4+5) FindStringSubmatch-8 183ns ± 0% 182ns ± 0% -0.43% (p=0.048 n=5+5) Literal-8 50.3ns ± 0% 50.1ns ± 0% -0.40% (p=0.016 n=5+4) NotLiteral-8 914ns ± 0% 927ns ± 7% ~ (p=0.730 n=5+5) MatchClass-8 1.20µs ± 1% 1.22µs ± 6% ~ (p=0.738 n=5+5) MatchClass_InRange-8 1.20µs ± 6% 1.21µs ± 6% ~ (p=0.548 n=5+5) ReplaceAll-8 796ns ± 0% 792ns ± 0% -0.51% (p=0.032 n=5+5) AnchoredLiteralShortNonMatch-8 41.0ns ± 2% 34.2ns ± 2% -16.47% (p=0.008 n=5+5) AnchoredLiteralLongNonMatch-8 53.3ns ± 0% 34.3ns ± 3% -35.74% (p=0.008 n=5+5) AnchoredShortMatch-8 74.0ns ± 2% 75.8ns ± 0% +2.46% (p=0.032 n=5+4) AnchoredLongMatch-8 146ns ± 3% 76ns ± 1% -48.12% (p=0.008 n=5+5) OnePassShortA-8 424ns ± 0% 423ns ± 0% ~ (p=0.222 n=5+4) NotOnePassShortA-8 373ns ± 1% 375ns ± 2% ~ (p=0.690 n=5+5) OnePassShortB-8 315ns ± 2% 308ns ± 0% -2.12% (p=0.008 n=5+5) NotOnePassShortB-8 244ns ± 3% 239ns ± 0% ~ (p=0.476 n=5+5) OnePassLongPrefix-8 61.6ns ± 2% 60.9ns ± 0% -1.13% (p=0.016 n=5+4) OnePassLongNotPrefix-8 236ns ± 3% 230ns ± 0% ~ (p=0.143 n=5+5) ``` Change-Id: I8a94b53bc761cd7ec89923c905ec8baaaa58a5fd GitHub-Last-Rev: e9e0c29 GitHub-Pull-Request: #48748 Reviewed-on: https://go-review.googlesource.com/c/go/+/353711 Reviewed-by: Daniel Martí <[email protected]> Reviewed-by: Russ Cox <[email protected]> Auto-Submit: Ian Lance Taylor <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> Auto-Submit: Ian Lance Taylor <[email protected]> LUCI-TryBot-Result: Go LUCI <[email protected]> Commit-Queue: Ian Lance Taylor <[email protected]> Reviewed-by: Brad Fitzpatrick <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]>
This PR is being closed because golang.org/cl/353711 has been merged. |
Check whether a regex has any 'alt' instructions before rejecting it as one-pass.
Previously
^abc
would run the backtrack matcher.I tried to make the comment match what the code does now.
Updates #21463