Skip to content
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

v0.8.2 #873

Merged
merged 311 commits into from
Jul 21, 2023
Merged

v0.8.2 #873

merged 311 commits into from
Jul 21, 2023

Conversation

Cyan4973
Copy link
Owner

v0.8.2

  • 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)

easyaspi314 and others added 30 commits December 22, 2021 22:40
 - XXH_SIZE_OPT is a value from 0-2 which indicates how much xxHash
   should care about code size, default 1 for -Os/-Oz, default 0
   otherwise
 - XXH_NO_STREAM disables the streaming API.
 - These two interact: if XXH_SIZE_OPT == 2 and XXH_NO_STREAM is not
 defined, XXH32 and XXH64 use the streaming API for single shot
    - TODO: apply this to XXH3 as well
since some versions are buggy.

Use `_Static_assert` instead, which is part of the C11 language.
do no longer depend on `<assert.h>` for XXH_STATIC_ASSERT
It seems that using the streaming API is not beneficial on GCC so it
isn't worth the complexity.
Uses `#pragma push_macro`/`#pragma pop_macro` instead of assuming that
`__APPLE_ALTIVEC__` can be defined safely.

Safer and less hacky fix for #668.
Properly fix altivec namespace collisions
Introduce XXH_SIZE_OPT and XXH_NO_STREAM
Remove duplicated definition of XXH3_128bits
Removed windows-2016 from ci.yml
tipi.build instructions
For details, see issue #695.

If filename contains special character (\n, 0x0a, LF),

- Put '\' (0x5c) at the beginning of the line.
- Escape special character by '\'.
Use inline assembler for Power/IBM XL Compiler
This is PR #699 from @t-mat,
which was blocked by a file permission issue.
Retrying it here.
t-mat and others added 29 commits July 11, 2023 01:57
Generate with the following commands:

rm cli/xxhsum.1
make man
man cli/xxhsum.1
Add missing doxygen style comments to XXH64 family
Add missing doxygen style comments to XXH3 family
Add --ignore-missing and --binary to --help and xxhsum.1
as suggested by @t-mat,
warning about the upcoming deprecation of this feature.
added a compilation warning message for XXH_OLD_NAMES
clang-cl warns the first argument of __cpuidex() because it's int[].

void __cpuidex(
   int cpuInfo[4],
   int function_id,
   int subfunction_id
);

https://learn.microsoft.com/en-us/cpp/intrinsics/cpuid-cpuidex
fix: __cpuidex pointer type warning
clang-cl defines both __clang__ and _MSC_VER.

Also it seems clang-cl needs extra headers to compile AVX2/512F intrinsic.
- Actual platform name of x64 for MSVC/clang-cl is "AMD64"
- When we compile xxhsum with dispatch, we need xxh_x86dispatch.c
add a test combining Windows + Visual + Clang-Cl + DISPATCH=1
fix: enable clang-cl test for VC++2022
Intel compiler expects "unsigned char" as an argument of __builtin_assume().
fix: Intel compiler's warning for XXH_ASSERT()
"Doxyfile" is configured to generate public document.
Differences are:
- INTERNAL_DOCS
- EXTRACT_STATIC
- EXTRACT_PRIVATE
Hide internals to simplify public document.
fix: hide internal macros from doxygen
and re-employ original nest order
to reproduce same performance as v0.8.1.
CI: Add gcc-13 and clang-{13,14,15}
revert XXH3's 17to128 variant to single accumulator
@Cyan4973 Cyan4973 merged commit bbb27a5 into release Jul 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.