Skip to content

hash: Upgrade xxHash to 0.8.2#20064

Merged
TimWolla merged 3 commits into
php:masterfrom
TimWolla:xxhash-update
Oct 8, 2025
Merged

hash: Upgrade xxHash to 0.8.2#20064
TimWolla merged 3 commits into
php:masterfrom
TimWolla:xxhash-update

Conversation

@TimWolla

@TimWolla TimWolla commented Oct 4, 2025

Copy link
Copy Markdown
Member

No description provided.

@TimWolla TimWolla changed the title hash: Upgrade xxHash to 0.8.3 hash: Upgrade xxHash to 0.8.2 Oct 4, 2025
@TimWolla

TimWolla commented Oct 4, 2025

Copy link
Copy Markdown
Member Author

0.8.3 changes the internal struct, which breaks serialization, because serialization touches the internal fields of the opaque struct …

@ndossche

ndossche commented Oct 5, 2025

Copy link
Copy Markdown
Member

I'll have a proper look later, but the xxhash files had some manual patches done to them by various people (mostly backport probably); see #18842

@TimWolla

TimWolla commented Oct 6, 2025

Copy link
Copy Markdown
Member Author

but the xxhash files had some manual patches done to them

If it's not asserted by CI it doesn't exist 😉

@ndossche

ndossche commented Oct 6, 2025

Copy link
Copy Markdown
Member

Then half of php does not exist

@ndossche ndossche left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I went through the patches that went in after xxhash 0.8.1 went in:

  • a839230 which was pulled from upstream, so OK included
  • 7638640 also from upstream, so OK included
  • adcb38b also upstream
  • a82d864 which also has a corresponding upstream PR
  • afb1c57 which is mine, part of this modifies xxhash.h to work around a (older) compiler bug. I think it's fine to drop this patch.

I then compared with 0.8.2 upstream and found the sources match.

0.8.3 changes the internal struct, which breaks serialization, because serialization touches the internal fields of the opaque struct …

I see. That's unfortunate. I haven't looked at this yet but I wonder if there's a migration path possible. 0.8.3 contains a bugfix for XXH3_128bits_withSecretandSeed but it doesn't seem like we use that directly.

@TimWolla TimWolla removed the ABI break label Oct 8, 2025
@TimWolla TimWolla merged commit 50b3222 into php:master Oct 8, 2025
10 checks passed
@TimWolla TimWolla deleted the xxhash-update branch October 8, 2025 19:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants