Repository navigation
Conversation
|
hi, I'm author of utf8_range, glad to see my lib adopted by protobuf. |
|
@acozzette will you have a look at this pr? or someone else can help? |
|
Hello Yibo, I'll reassign this to @danlark1 who is our ARM SIMD expert. Thanks for making this contribution. In the meantime, I'll approve this for integration testing. |
tonyliaoss
left a comment
There was a problem hiding this comment.
Approve for integration testing.
(Do not submit until another approval from @danlark1)
|
Hmm..., looks this pr leads to java and ruby linux aarch64 job failure, will check. |
|
Should have fixed ruby error. Please help start CI jobs. |
|
A bit struggling about the jave linux aarch64 job failure. Looks it's related to this PR. Any suggestion is welcomed. EDIT: managed to reproduce it locally, debugging... Fixed. |
|
This is the key changes to the original utf8_range.c sse validation code after moving arch dependent code to utf8_range_sse.inc. Might be useful for review. |
|
Hopefully all issues are fixed. Please help trigger CI. |
|
Approval for code. Thank you a lot! |
tonyliaoss
left a comment
There was a problem hiding this comment.
Approving again -- thanks for sending us this PR!
|
How to check CI error |
|
Hi Yibo -- This error message about Copybara failures is saying that it's pending internal integration tests to be run before we can pull it into Google. This CL looks good so far, we just need to get approvals internally to get it integrated into our monorepo (and then we can close this PR). There is no action needed on your part. We've been a bit busy these few days but hopefully we can get this merged soon. |
Protobuf uses utf8_range library for utf8 string validation. Currently, only SSE implementation is integrated. This patch adapts utf8_range Neon implementation to protobuf. Closes #18126 COPYBARA_INTEGRATE_REVIEW=#18126 from cyb70289:utf8-neon 5edbcc2 FUTURE_COPYBARA_INTEGRATE_REVIEW=#18126 from cyb70289:utf8-neon 5edbcc2 PiperOrigin-RevId: 679316668
|
This is failing our internal integration tests. I haven't fully debugged what's going on, but I can tell a behavior change happened in the SSE (non-neon) codepath, due to the changes that you mentioned in a previous comment, in these two places:
If I revert these two changes, the regression disappears. Specifically it seems like the change on this line is somewhat problematic:
|
|
Oh I think I know what the problem is. If I assign If, instead, is not true. |
|
I'm going to rerun tests with the following patchset and see what happens:
|
|
Ouch! It's very lucky that internal test catches this bug.😓 |
Protobuf uses utf8_range library for utf8 string validation. Currently, only SSE implementation is integrated. This patch adapts utf8_range Neon implementation to protobuf. Closes #18126 COPYBARA_INTEGRATE_REVIEW=#18126 from cyb70289:utf8-neon 5edbcc2 FUTURE_COPYBARA_INTEGRATE_REVIEW=#18126 from cyb70289:utf8-neon 5edbcc2 PiperOrigin-RevId: 679316668
Protobuf uses utf8_range library for utf8 string validation. Currently, only SSE implementation is integrated. This patch adapts utf8_range Neon implementation to protobuf. Closes #18126 COPYBARA_INTEGRATE_REVIEW=#18126 from cyb70289:utf8-neon 5edbcc2 FUTURE_COPYBARA_INTEGRATE_REVIEW=#18126 from cyb70289:utf8-neon 5edbcc2 PiperOrigin-RevId: 679316668
I debugged this previously in PR #18126. There must've been some hiccup in Copybara ingestion because this patch didn't end up getting picked up. #18126 (comment) This is a fix-forward. PiperOrigin-RevId: 680734793
I debugged this previously in PR #18126. There must've been some hiccup in Copybara ingestion because this patch didn't end up getting picked up. #18126 (comment) This is a fix-forward. PiperOrigin-RevId: 680734793
I debugged this previously in PR #18126. There must've been some hiccup in Copybara ingestion because this patch didn't end up getting picked up. #18126 (comment) This is a fix-forward. PiperOrigin-RevId: 680757652


Protobuf uses utf8_range library for utf8 string validation.
Currently, only SSE implementation is integrated.
This patch adapts utf8_range Neon implementation to protobuf.