src: replace custom ASCII validation with simdutf one#46271
src: replace custom ASCII validation with simdutf one#46271nodejs-github-bot merged 1 commit intonodejs:mainfrom
Conversation
tniessen
left a comment
There was a problem hiding this comment.
I would have (naively) assumed that many compilers would vectorize contains_non_ascii_slow.
|
@tniessen Me too! Fwiw, I’m not really trying to optimize anything here (who even uses |
|
The commit title is missing the "d" from "simdutf". |
5e740f8 to
8df6b9d
Compare
|
|
||
| case ASCII: | ||
| if (contains_non_ascii(buf, buflen)) { | ||
| if (simdutf::validate_ascii_with_errors(buf, buflen).error) { |
There was a problem hiding this comment.
Any reason for using the error version? Is the common case to have invalid ASCII?
There was a problem hiding this comment.
The with_errors variant bails out early if it detects invalid ASCII, instead of running the entire string, so my thought was that it would match the performance profile of the previous code here best.
The common case is to not use this branch (ASCII) at all :)
| } | ||
|
|
||
| return false; | ||
| } |
There was a problem hiding this comment.
Complete aside: I have a distinct memory of writing this code, it looks like how I would write such code, yet git blame attributes it to Isaac S... huh. The human mind is a fickle thing.
There was a problem hiding this comment.
@bnoordhuis I double-checked out of interest (and also because it looks like code from you), and … you did! e325ace is all yours 🙂
There was a problem hiding this comment.
I feel vindicated now! Thanks for digging that up, Anna. :)
There was a problem hiding this comment.
Written almost ten years ago, and you still remember your code. I've nothing but respect for all of you.
|
Landed in 6913140 |
PR-URL: #46271 Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Darshan Sen <raisinten@gmail.com>
PR-URL: #46271 Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Darshan Sen <raisinten@gmail.com>
PR-URL: #46271 Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Darshan Sen <raisinten@gmail.com>
No description provided.