Skip to content

Commit f2d738a

Browse files
authored
Merge pull request Cyan4973#618 from Cyan4973/dev
v0.8.1
2 parents 94e5f23 + f2416f4 commit f2d738a

40 files changed

+6732
-4075
lines changed

.github/workflows/ci.yml

Lines changed: 439 additions & 0 deletions
Large diffs are not rendered by default.

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ xxhsum_inlinedXXH
1919
dispatch
2020
tests/generate_unicode_test
2121

22-
# compilation chain
22+
# local conf
2323
.clang_complete
2424

2525
# Mac OS-X artefacts

.travis.yml

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,32 @@ language: c
22

33
# Dump CPU info before start
44
before_install:
5-
- cat /proc/cpuinfo
5+
- cat /proc/cpuinfo || echo /proc/cpuinfo is not present
66

77
matrix:
88
fast_finish: true
99
include:
1010

11-
- name: General linux tests (Xenial)
12-
dist: xenial
11+
- name: General linux x64 tests
1312
arch: amd64
1413
addons:
1514
apt:
1615
packages:
17-
- clang
1816
- g++-multilib
1917
- gcc-multilib
2018
- cppcheck
2119
script:
2220
- make -B test-all
2321
- make clean
24-
- make dispatch
22+
- CFLAGS="-Werror" MOREFLAGS="-Wno-sign-conversion" make dispatch # removing sign conversion warnings due to a bug in gcc-5's definition of some AVX512 intrinsics
23+
- make clean
24+
- CFLAGS="-O1 -mavx512f -Werror" make
2525
- make clean
26-
- CC=g++ CFLAGS="-O1 -mavx512f" make
26+
- CFLAGS="-Wall -Wextra -Werror" make DISPATCH=1
2727
- make clean
28-
- CC=g++ CFLAGS="-Wall -Wextra" make DISPATCH=1
28+
- CFLAGS="-std=c90 -pedantic -Wno-long-long -Werror" make xxhsum # check C90 + long long compliance
29+
- make c90test # strict c90, with no long long support; resulting in no XXH64_* symbol
30+
- make noxxh3test # check library can be compiled with XXH_NO_XXH3, resulting in no XXH3_* symbol
2931

3032

3133
- name: Check results consistency on x64
@@ -42,6 +44,14 @@ matrix:
4244
- CPPFLAGS=-DXXH_REROLL=1 make check # reroll code path (#240)
4345
- make -C tests/bench
4446

47+
- name: macOS General Test
48+
os: osx
49+
compiler: clang
50+
script:
51+
- CFLAGS="-Werror" make # test library build
52+
- make clean
53+
- make test MOREFLAGS='-Werror' | tee # test scenario where `stdout` is not the console
54+
4555
- name: ARM compilation and consistency checks (Qemu)
4656
dist: xenial
4757
arch: amd64
@@ -111,7 +121,7 @@ matrix:
111121
- CPPFLAGS=-DXXH_VECTOR=XXH_VSX CFLAGS="-O3 -maltivec -mvsx -mpower8-vector -mcpu=power8" LDFLAGS="-static" make check
112122
# altivec.h redefinition issue #426
113123
- make clean
114-
- CPPFLAGS=-DXXH_VECTOR=XXH_VSX CFLAGS="-maltivec -mvsx -mcpu=power8 -mpower8-vector" make -C tests test_ppc_redefine
124+
- CPPFLAGS=-DXXH_VECTOR=XXH_VSX CFLAGS="-maltivec -mvsx -mcpu=power8 -mpower8-vector" make -C tests test_ppc_redefine
115125

116126
- name: IBM s390x compilation and consistency checks
117127
dist: bionic
@@ -129,4 +139,4 @@ matrix:
129139
- mkdir build
130140
- cd build
131141
- cmake ..
132-
- make
142+
- CFLAGS=-Werror make

CHANGELOG

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1+
v0.8.1
2+
- perf : much improved performance for XXH3 streaming variants, notably on gcc and msvc
3+
- perf : improved XXH64 speed and latency on small inputs
4+
- perf : small XXH32 speed and latency improvement on small inputs of random size
5+
- perf : minor stack usage improvement for XXH32 and XXH64
6+
- api : new experimental variants XXH3_*_withSecretandSeed()
7+
- api : update XXH3_generateSecret(), can no generate secret of any size (>= XXH3_SECRET_SIZE_MIN)
8+
- cli : xxhsum can now generate and check XXH3 checksums, using command `-H3`
9+
- build: can build xxhash without XXH3, with new build macro XXH_NO_XXH3
10+
- build: fix xxh_x86dispatch build with MSVC, by @apankrat
11+
- build: XXH_INLINE_ALL can always be used safely, even after XXH_NAMESPACE or a previous XXH_INLINE_ALL
12+
- build: improved PPC64LE vector support, by @mpe
13+
- install: fix pkgconfig, by @ellert
14+
- install: compatibility with Haiku, by @Begasus
15+
- doc : code comments made compatible with doxygen, by @easyaspi314
16+
- misc : XXH_ACCEPT_NULL_INPUT_POINTER is no longer necessary, all functions can accept NULL input pointers, as long as size == 0
17+
- misc : complete refactor of CI tests on Github Actions, offering much larger coverage, by @t-mat
18+
- misc : xxhsum code base split into multiple specialized units, within directory cli/, by @easyaspi314
19+
120
v0.8.0
221
- api : stabilize XXH3
322
- cli : xxhsum can parse BSD-style --check lines, by @WayneD

Doxyfile

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Doxygen config for xxHash
2+
DOXYFILE_ENCODING = UTF-8
3+
4+
PROJECT_NAME = "xxHash"
5+
PROJECT_NUMBER = "0.8.0"
6+
PROJECT_BRIEF = "Extremely fast non-cryptographic hash function"
7+
OUTPUT_DIRECTORY = doxygen
8+
OUTPUT_LANGUAGE = English
9+
10+
# We already separate the internal docs.
11+
INTERNAL_DOCS = YES
12+
# Consistency
13+
SORT_MEMBER_DOCS = NO
14+
BRIEF_MEMBER_DESC = YES
15+
REPEAT_BRIEF = YES
16+
17+
# Warnings
18+
QUIET = YES
19+
# Until we document everything
20+
WARN_IF_UNDOCUMENTED = NO
21+
22+
# TODO: Add the other files. It is just xxhash.h for now.
23+
FILE_PATTERNS = xxhash.h xxh_x86dispatch.c
24+
# Note: xxHash's source files are technically ASCII only.
25+
INPUT_ENCODING = UTF-8
26+
TAB_SIZE = 4
27+
MARKDOWN_SUPPORT = YES
28+
29+
# xxHash is a C library
30+
OPTIMIZE_OUTPUT_FOR_C = YES
31+
# So we can document the internals
32+
EXTRACT_STATIC = YES
33+
# Document the macros
34+
MACRO_EXPANSION = YES
35+
EXPAND_ONLY_PREDEF = YES
36+
# Predefine some macros to clean up the output.
37+
PREDEFINED = "XXH_DOXYGEN=" \
38+
"XXH_PUBLIC_API=" \
39+
"XXH_FORCE_INLINE=static inline" \
40+
"XXH_NO_INLINE=static" \
41+
"XXH_RESTRICT=restrict" \
42+
"XSUM_API=" \
43+
"XXH_STATIC_LINKING_ONLY" \
44+
"XXH_IMPLEMENTATION" \
45+
"XXH_ALIGN(N)=alignas(N)" \
46+
"XXH_ALIGN_MEMBER(align,type)=alignas(align) type"
47+
48+
# We want HTML docs
49+
GENERATE_HTML = YES
50+
HTML_OUTPUT = html
51+
HTML_FILE_EXTENSION = .html
52+
# Tweak the colors a bit
53+
HTML_COLORSTYLE_HUE = 220
54+
HTML_COLORSTYLE_GAMMA = 100
55+
HTML_COLORSTYLE_SAT = 100
56+
57+
# We don't want LaTeX.
58+
GENERATE_LATEX = NO

LICENSE

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,25 +24,3 @@ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
2424
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2525
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
2626
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27-
28-
----------------------------------------------------
29-
30-
xxhsum command line interface
31-
Copyright (c) 2013-2020 Yann Collet
32-
All rights reserved.
33-
34-
GPL v2 License
35-
36-
This program is free software; you can redistribute it and/or modify
37-
it under the terms of the GNU General Public License as published by
38-
the Free Software Foundation; either version 2 of the License, or
39-
(at your option) any later version.
40-
41-
This program is distributed in the hope that it will be useful,
42-
but WITHOUT ANY WARRANTY; without even the implied warranty of
43-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
44-
GNU General Public License for more details.
45-
46-
You should have received a copy of the GNU General Public License along
47-
with this program; if not, write to the Free Software Foundation, Inc.,
48-
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

0 commit comments

Comments
 (0)