Unclaimed project
Are you a maintainer of xxHash ? Claim this project to take control of your public changelog and roadmap.
Claim this project Changelog
xxHash Extremely fast non-cryptographic hash algorithm
© 2026 AnnounceHQ. All rights reserved.
xxHash v0.8.2 - xxHash Release Notes | AnnounceHQ
Back to changelogNew July 21, 2023
xxHash v0.8.2 xxHash v0.8.2 is an incremental update featuring multiple small improvements and fixes spread out over ~300 commits.
Faster performance
Several updates by @easyaspi314 and @hzhuang1 impact arm platform, most notably the neon code path. On the M1 Pro, this translates into +20% speed for xxh3 and xxh128 (from 30.0 GB/s to 36 GB/s).
Some of the changes are generic, so other platforms can be affected too, though typically to a lesser extend (~5%).
On wasm, speed fo xxh3 is improved by a large factor x2 to x3 (depending on underlying hardware) through the use of simd128 (@easyaspi314). This is especially efficient under the v8 js engine, notably used by chrome and node.js.
Finally, @hzhuang1 added support for the arm's SVE vector extension. This is useful for server-side aarch64 cpus with hardware support for wide vectors, such as Fujitsu's A64FX.
Fixes and improvements
Notable fixes in this update include the resolution of issues with XXH3 S390x vector implementation, PowerPC vector compilation with IBM XL compiler, and -Og compilation.
Furthermore, the command line interface (CLI) was refined with features such as support for comment lines in check files and commands such as --binary and --ignore-missing (@t-mat). Additionally, issues with filename containing /LF character were resolved.
The build process was also refined, with improvements such as fixing pkgconfig generation with cmake (@ilya-fedin), icc compilation, cmake install directories, and new build options to reduce binary size (@easyaspi314). Dedicated install targets were introduced (@ffontaine), and support for DISPATCH mode in cmake was added (@hzhuang1).
In terms of portability, the update includes the SVE vector implementation of XXH3, compatibility with freestanding environments using XXH_NO_STDLIB, and the ability to build on Haiku. The code has also been validated on m68k and risc-v.
Documentation
XXH3 finally has a written specification , thanks to @Adrien1018 !
Source code can also be digested by doxygen to generate code documentation automatically. An instance is now available at homepage .
Erratum
There is a bug in this version when invoking the function XXH3_128bits_withSecretandSeed(), specifically when the parameter seed == 0, and input length < XXH3_MIDSIZE_MAX (< 240 bytes), and the secret is different from the one created with XXH3_generateSecret_fromSeed(), and the user is invoking the Streaming API. The hash values produced in this case are incorrect: as stated in the documentation, they should be == XXH3_128bits_withSeed(). This is fixed in later version and the dev branch , thanks to @hltj.(a9b2f1811534c5cbb8a7a702192c919ac320e4bb).
Changelog
fix : XXH3 S390x vector implementation (@hzhuang1)
fix : PowerPC vector compilation with IBM XL compiler (@MaxiBoether)
perf : improved WASM speed by x2/x3 using SIMD128 (@easyaspi314)
perf : improved speed (+20%) for XXH3 on ARM NEON (@easyaspi314)
cli : Fix filename contain /LF character (@t-mat)
cli : Support # comment lines in --check files (@t-mat)
cli : Support commands --binary and --ignore-missing (@t-mat)
build: fix -Og compilation (@easyaspi314, @t-mat)
build: fix pkgconfig generation with cmake (@ilya-fedin)
build: fix icc compilation
build: fix cmake install directories
build: new build options XXH_NO_XXH3, XXH_SIZE_OPT and XXH_NO_STREAM to reduce binary size (@easyaspi314)
build: dedicated install targets (@ffontaine)
build: support DISPATCH mode in cmake (@hzhuang1)
portability: fix x86dispatch when building with Visual + clang-cl (@t-mat)
portability: SVE vector implementation of XXH3 (@hzhuang1)
portability: compatibility with freestanding environments, using XXH_NO_STDLIB
portability: can build on Haiku (@Begasus)
portability: validated on m68k and risc-v
doc : XXH3 specification (@Adrien1018)
doc : improved doxygen documentation (@easyaspi314, @t-mat)
misc : dedicated sanity test binary (@t-mat)
Full change list (github generated)
Fix an assert comparison the same values (flagged by PVS Studio in 0.8.1) by @kcgen in https://github.com/Cyan4973/xxHash/pull/628
Add GitHub Actions badge for release branch by @t-mat in https://github.com/Cyan4973/xxHash/pull/633
Add windows-2022 to ci.yml by @t-mat in https://github.com/Cyan4973/xxHash/pull/634
Add macOS matrix to ci.yml by @t-mat in https://github.com/Cyan4973/xxHash/pull/635
Fix compilation on RHEL 7 ppc64le (gcc 4.8) by @ellert in https://github.com/Cyan4973/xxHash/pull/631
Add clang-cl for MSVC 2019 to ci.yml by @t-mat in https://github.com/Cyan4973/xxHash/pull/637
[NEON] Split XXH3 into 6 NEON lanes and 2 scalar lanes on aarch64 by @easyaspi314 in https://github.com/Cyan4973/xxHash/pull/632
Fix some ARM/clang-cl feature detection issues by @easyaspi314 in https://github.com/Cyan4973/xxHash/pull/623
Add QEMU/gcc matrix to ci.yml by @t-mat in https://github.com/Cyan4973/xxHash/pull/640
fix #625 by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/638
fix #627 by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/639
added m68k emulation tests to GA by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/643
Document some nerdy ARM stuff, move scalarRound down. by @easyaspi314 in https://github.com/Cyan4973/xxHash/pull/642
fix minor static analyzer warning by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/644
fix man page installation by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/648
fix cmake --install by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/649
Use attribute ((aligned)) instead of packed by @Hello71 in https://github.com/Cyan4973/xxHash/pull/650
[ARM/AArch64] Fix multiple GCC codegen problems by @easyaspi314 in https://github.com/Cyan4973/xxHash/pull/651
removed XXH3 declarations when XXH_NO_XXH3 is defined by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/653
new build macro XXH_NO_STDLIB by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/654
improved nostdlib test by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/656
added attribute ((const)) by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/657
added attribute ((malloc)) by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/658
added attribute ((pure)) by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/659
Documentation update by @easyaspi314 in https://github.com/Cyan4973/xxHash/pull/661
Makefile: add dedicated install targets by @ffontaine in https://github.com/Cyan4973/xxHash/pull/665
XXH_HAS_C_ATTRIBUTE(x)?! by @easyaspi314 in https://github.com/Cyan4973/xxHash/pull/662
New Contributors
@kcgen made their first contribution in https://github.com/Cyan4973/xxHash/pull/628
@Hello71 made their first contribution in https://github.com/Cyan4973/xxHash/pull/650
@ffontaine made their first contribution in https://github.com/Cyan4973/xxHash/pull/665
@mterron made their first contribution in https://github.com/Cyan4973/xxHash/pull/676
@pysco68 made their first contribution in https://github.com/Cyan4973/xxHash/pull/688
@MaxiBoether made their first contribution in https://github.com/Cyan4973/xxHash/pull/708
@goldsteinn made their first contribution in https://github.com/Cyan4973/xxHash/pull/726
@dougallj made their first contribution in https://github.com/Cyan4973/xxHash/pull/734
@DimitriPapadopoulos made their first contribution in https://github.com/Cyan4973/xxHash/pull/739
@hzhuang1 made their first contribution in https://github.com/Cyan4973/xxHash/pull/749
@dwsteele made their first contribution in https://github.com/Cyan4973/xxHash/pull/797
@devnexen made their first contribution in https://github.com/Cyan4973/xxHash/pull/803
@gabibguti made their first contribution in https://github.com/Cyan4973/xxHash/pull/828
@dependabot made their first contribution in https://github.com/Cyan4973/xxHash/pull/837
@ilya-fedin made their first contribution in https://github.com/Cyan4973/xxHash/pull/723
@adrien1018 made their first contribution in https://github.com/Cyan4973/xxHash/pull/750
Full Changelog : https://github.com/Cyan4973/xxHash/compare/v0.8.1...v0.8.2
do no longer depend on <assert.h> for XXH_STATIC_ASSERT by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/670
Properly fix altivec namespace collisions by @easyaspi314 in https://github.com/Cyan4973/xxHash/pull/672
Introduce XXH_SIZE_OPT and XXH_NO_STREAM by @easyaspi314 in https://github.com/Cyan4973/xxHash/pull/667
Remove duplicated definition of XXH3_128bits by @mterron in https://github.com/Cyan4973/xxHash/pull/676
Removed windows-2016 from ci.yml by @t-mat in https://github.com/Cyan4973/xxHash/pull/690
tipi.build instructions by @pysco68 in https://github.com/Cyan4973/xxHash/pull/688
Fix issue #695 by @t-mat in https://github.com/Cyan4973/xxHash/pull/698
Build fix for Haiku by @Begasus in https://github.com/Cyan4973/xxHash/pull/696
Use inline assembler for Power/IBM XL Compiler by @MaxiBoether in https://github.com/Cyan4973/xxHash/pull/708
test filename-escape by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/710
avoid add_compile_definitions for cmake < v3.12 by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/711
just more cmake v2.8.12 tests by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/721
CPack Added in https://github.com/Cyan4973/xxHash/pull/719
Remove stream loads and slightly improve avx512 seed generation by @goldsteinn in https://github.com/Cyan4973/xxHash/pull/726
Fix: brace expansion by @t-mat in https://github.com/Cyan4973/xxHash/pull/729
Fix issue #724 by @t-mat in https://github.com/Cyan4973/xxHash/pull/730
Remove macOS-10.15 from ci.yml by @t-mat in https://github.com/Cyan4973/xxHash/pull/736
blind fix for fallthrough on icc by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/718
Optimize XXH3_accumulate_512_neon by @dougallj in https://github.com/Cyan4973/xxHash/pull/734
Fix typos found by codespell by @DimitriPapadopoulos in https://github.com/Cyan4973/xxHash/pull/739
ci: fix tipi build error on github CI workflow by @hzhuang1 in https://github.com/Cyan4973/xxHash/pull/749
Update GitHub Actions by @DimitriPapadopoulos in https://github.com/Cyan4973/xxHash/pull/742
xxhash: support SVE by intrinsic code by @hzhuang1 in https://github.com/Cyan4973/xxHash/pull/752
fix issues reported by cppcheck by @hzhuang1 in https://github.com/Cyan4973/xxHash/pull/746
CI: fix missing space by @hzhuang1 in https://github.com/Cyan4973/xxHash/pull/758
Fixing tipi-build / Build as dependency CI step by @pysco68 in https://github.com/Cyan4973/xxHash/pull/760
Customize full accumulating loop for SVE by @hzhuang1 in https://github.com/Cyan4973/xxHash/pull/756
added macos-12 test to GH CI by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/765
Small improvement to x86 vectorized hashes and medium-sizes hash. by @goldsteinn in https://github.com/Cyan4973/xxHash/pull/754
dispatch: Use attribute ((constructor)) on XXH_setDispatch by @goldsteinn in https://github.com/Cyan4973/xxHash/pull/773
Fix typo found by codespell by @DimitriPapadopoulos in https://github.com/Cyan4973/xxHash/pull/777
http:// → https:// by @DimitriPapadopoulos in https://github.com/Cyan4973/xxHash/pull/778
Add attribute ((noescape)) on pointers in public API by @goldsteinn in https://github.com/Cyan4973/xxHash/pull/782
Annotate xxh_x86dispatch with XXH_NOESCAPE by @goldsteinn in https://github.com/Cyan4973/xxHash/pull/786
[NEON] Refactor NEON code by @easyaspi314 in https://github.com/Cyan4973/xxHash/pull/787
Makefile: add install_libxxhash.includes target by @ffontaine in https://github.com/Cyan4973/xxHash/pull/776
s390x: add memory barrier to avoid fault issue by @hzhuang1 in https://github.com/Cyan4973/xxHash/pull/785
Define XXH_RESTRICT for some C++ compilers (gcc/clang/msvc/icc) by @goldsteinn in https://github.com/Cyan4973/xxHash/pull/788
Fix spelling. by @dwsteele in https://github.com/Cyan4973/xxHash/pull/797
cmake: support dispatch mode by @hzhuang1 in https://github.com/Cyan4973/xxHash/pull/790
Fix XXH_UNREACHABLE feature test for C++23 and remove for C23 #791 by @goldsteinn in https://github.com/Cyan4973/xxHash/pull/792
Rewrite XXH3_update by @easyaspi314 in https://github.com/Cyan4973/xxHash/pull/805
fix: GH-Actions - remove ubuntu-18.04 by @t-mat in https://github.com/Cyan4973/xxHash/pull/817
Fix: add gcc -Og check and fix its false positive warnings by @t-mat in https://github.com/Cyan4973/xxHash/pull/814
Fix off-by-one in XXH3_consumeStripes() (Fixes #816) by @easyaspi314 in https://github.com/Cyan4973/xxHash/pull/818
added read-all permission status to Github Actions Workflow by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/807
XXH_ASSUME macro using __builtin_assume if supported (clang only fo… by @devnexen in https://github.com/Cyan4973/xxHash/pull/803
Fix GCC 12 -Og by @easyaspi314 in https://github.com/Cyan4973/xxHash/pull/804
Add gcc-12 to ci.yml by @t-mat in https://github.com/Cyan4973/xxHash/pull/819
benchmark : adjust initial speed target to 10 MB/s by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/822
added one test length for xxh sanity checks by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/820
Various AArch64 speed hacks by @easyaspi314 in https://github.com/Cyan4973/xxHash/pull/809
Dedicated sanity test program by @t-mat in https://github.com/Cyan4973/xxHash/pull/823
Add Security Policy by @gabibguti in https://github.com/Cyan4973/xxHash/pull/828
Reference actions by commit SHA by @gabibguti in https://github.com/Cyan4973/xxHash/pull/833
Bump actions/checkout from 3.5.2 to 3.5.3 by @dependabot in https://github.com/Cyan4973/xxHash/pull/837
removed tipi test from CI suite because it's unstable by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/841
reworded the AVX error message when compiling xxh_x86dispatch.c by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/840
Feature: Support # comment lines in --check files by @t-mat in https://github.com/Cyan4973/xxHash/pull/838
Fix double prefix when building with cmake by @ilya-fedin in https://github.com/Cyan4973/xxHash/pull/723
added a cmake pkgconfig generation test by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/845
added RISC-V emulation to CI by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/846
Add algorithm specification of XXH3 by @adrien1018 in https://github.com/Cyan4973/xxHash/pull/750
minor follow-ups for XXH3 specification (#750) by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/847
Remove 0.8.1s by @t-mat in https://github.com/Cyan4973/xxHash/pull/848
Detect and display SVE when active by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/849
Fix doxygen warnings (2nd attempt) by @t-mat in https://github.com/Cyan4973/xxHash/pull/851
feature: CLI: --binary by @t-mat in https://github.com/Cyan4973/xxHash/pull/852
Add WebAssembly SIMD128 implementation and Node.JS support by @easyaspi314 in https://github.com/Cyan4973/xxHash/pull/825
Add --ignore-missing by @t-mat in https://github.com/Cyan4973/xxHash/pull/853
Add missing doxygen style comments to XXH64 family by @t-mat in https://github.com/Cyan4973/xxHash/pull/855
Add missing doxygen style comments to XXH3 family by @t-mat in https://github.com/Cyan4973/xxHash/pull/856
Add --ignore-missing and --binary to --help and xxhsum.1 by @t-mat in https://github.com/Cyan4973/xxHash/pull/857
added a compilation warning message for XXH_OLD_NAMES by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/860
fix: __cpuidex pointer type warning by @t-mat in https://github.com/Cyan4973/xxHash/pull/864
Fix clang-cl dispatch by @t-mat in https://github.com/Cyan4973/xxHash/pull/865
add a test combining Windows + Visual + Clang-Cl + DISPATCH=1 by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/863
fix: enable clang-cl test for VC++2022 by @t-mat in https://github.com/Cyan4973/xxHash/pull/866
fix: Intel compiler's warning for XXH_ASSERT() by @t-mat in https://github.com/Cyan4973/xxHash/pull/867
fix: hide internal macros from doxygen by @t-mat in https://github.com/Cyan4973/xxHash/pull/868
hide x86 dispatcher internals by @t-mat in https://github.com/Cyan4973/xxHash/pull/869
CI: Add gcc-13 and clang-{13,14,15} by @t-mat in https://github.com/Cyan4973/xxHash/pull/872
revert XXH3's 17to128 variant to single accumulator by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/871
v0.8.2 by @Cyan4973 in https://github.com/Cyan4973/xxHash/pull/873