- 12月 31, 2023
-
-
由 Yann Collet 创作于
Cirrus-CI: Add FreeBSD 14
-
由 Yann Collet 创作于
Fix a nullptr dereference in ZSTD_createCDict_advanced2()
-
- 12月 30, 2023
-
-
由 Ed Maste 创作于
-
由 Yann Collet 创作于
zlibWrapper: convert to C89 / ANSI C
-
- 12月 29, 2023
-
-
由 Elliot Gorokhovsky 创作于
* Add ZSTD_CCtxParams_registerSequenceProducer() to public API * add unit test * add docs to zstd.h * nits * Add ZSTDLIB_STATIC_API prefix * Add asserts
-
- 12月 19, 2023
-
-
由 Yann Collet 创作于
Bump actions/upload-artifact from 3.1.3 to 4.0.0
-
由 Yann Collet 创作于
and fixed version number in comment
-
- 12月 18, 2023
-
-
由 dependabot[bot] 创作于
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.3 to 4.0.0. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/a8a3f3ad30e3422c9c7b888a15615d19a852ae32...c7d193f32edcb7bfad88892161225aeda64e9392 ) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by:
dependabot[bot] <support@github.com>
-
- 12月 16, 2023
-
-
由 Michał Chojnowski 创作于
If the relevant allocation returns NULL, ZSTD_createCDict_advanced_internal() will return NULL. But ZSTD_createCDict_advanced2() doesn't check for this and attempts to use the returned pointer anyway, which leads to a segfault.
-
- 12月 14, 2023
-
-
由 Ed Maste 创作于
Clang 16 (which is the system compiler in FreeBSD 14.0) no longer allows K&R function definitions. Formatting of the changes matches current zlib.
-
由 Yann Collet 创作于
Update FreeBSD CI: drop 12.4 (nearly EOL)
-
由 Ed Maste 创作于
12.4 is EOL as of the end of December 2023, and pkg installation will start failing some time after that so remove those jobs now.
-
- 11月 29, 2023
-
-
由 Elliot Gorokhovsky 创作于
Move offload API params into ZSTD_CCtx_params
-
- 11月 28, 2023
-
-
由 Elliot Gorokhovsky 创作于
-
- 11月 27, 2023
-
-
由 Elliot Gorokhovsky 创作于
-
- 11月 25, 2023
- 11月 22, 2023
-
-
由 Nick Terrell 创作于
This PR introduces no functional changes. It attempts to change all macros currently using `{ }` or some variant of that to to `do { } while (0)`, and introduces trailing `;` where necessary. There were no bugs found during this migration. The bug in Visual Studios warning on this has been fixed since VS2015. Additionally, we have several instances of `do { } while (0)` which have been present for several releases, so we don't have to worry about breaking peoples builds. Fixes Issue #3830.
-
由 Yann Collet 创作于
update xxhash library to v0.8.2
-
- 11月 21, 2023
-
-
由 Nick Terrell 创作于
`HUF_DecompressFastArgs_init()` was adding 0 to NULL. Fix it by exiting early for empty outputs. This is no change in behavior, because the function was already exiting 0 in this case, just slightly later.
-
由 Nick Terrell 创作于
* Rename `ilimit` to `ilowest` and set it equal to `src` instead of `src + 6 + 8`. This is safe because the fast decoding loops guarantee to never read below `ilowest` already. This allows the fast decoder to run for at least two more iterations, because it consumes at most 7 bytes per iteration. * Continue the fast loop all the way until the number of safe iterations is 0. Initially, I thought that when it got towards the end, the computation of how many iterations of safe might become expensive. But it ends up being slower to have to decode each of the 4 streams individually, which makes sense. This drastically speeds up the Huffman decoder on the `github` dataset for the issue raised in #3762, measured with `zstd -b1e1r github/`. | Decoder | Speed before | Speed after | |----------|--------------|-------------| | Fallback | 477 MB/s | 477 MB/s | | Fast C | 384 MB/s | 492 MB/s | | Assembly | 385 MB/s | 501 MB/s | We can also look at the speed delta for different block sizes of silesia using `zstd -b1e1r silesia.tar -B#`. | Decoder | -B1K ∆ | -B2K ∆ | -B4K ∆ | -B8K ∆ | -B16K ∆ | -B32K ∆ | -B64K ∆ | -B128K ∆ | |----------|--------|--------|--------|--------|---------|---------|---------|----------| | Fast C | +11.2% | +8.2% | +6.1% | +4.4% | +2.7% | +1.5% | +0.6% | +0.2% | | Assembly | +12.5% | +9.0% | +6.2% | +3.6% | +1.5% | +0.7% | +0.2% | +0.03% |
-
由 Nick Terrell 创作于
gcc in the linux kernel was not unrolling the inner loops of the Huffman decoder, which was destroying decoding performance. The compiler was generating crazy code with all sorts of branches. I suspect because of Spectre mitigations, but I'm not certain. Once the loops were manually unrolled, performance was restored. Additionally, when gcc couldn't prove that the variable left shift in the 4X2 decode loop wasn't greater than 63, it inserted checks to verify it. To fix this, mask `entry.nbBits & 0x3F`, which allows gcc to eliete this check. This is a no op, because `entry.nbBits` is guaranteed to be less than 64. Lastly, introduce the `HUF_DISABLE_FAST_DECODE` macro to disable the fast C loops for Issue #3762. So if even after this change, there is a performance regression, users can opt-out at compile time.
-
- 11月 18, 2023
-
-
由 Nick Terrell 创作于
We only use this constant when `DEBUGLEVEL>=2`, but we get -Werror=pedantic errors for empty translation units, so still define it except in kernel environments. Backport from the kernel: https://lore.kernel.org/lkml/20230616144400.172683-1-ben.dooks@codethink.co.uk/
-
由 Nick Terrell 创作于
ZSTD_resetDStream() is deprecated and replaced by ZSTD_DCtx_reset(). This removes deprecation warnings from the kernel build. This change is a no-op, see the docs suggesting this replacement. https://github.com/facebook/zstd/blob/fcbf2fde9ac7ce1562c7b3a394350e764bcb580f/lib/zstd.h#L2655-L2663
-
由 Nick Terrell 创作于
Linux started providing intptr_t in <linux/types.h> so we no longer need to define it here. https://lkml.kernel.org/r/ed66b9e4-1fb7-45be-9bb9-d4bc291c691f@p183
-
- 11月 17, 2023
-
-
由 Yann Collet 创作于
-
- 11月 15, 2023
-
-
由 Yann Collet 创作于
[cmake] Require CMake version 3.5 or newer
-
- 11月 14, 2023
-
-
由 Yann Collet 创作于
-
由 Yann Collet 创作于
List of updates : https://github.com/Cyan4973/xxHash/releases/tag/v0.8.2 This is also a preparation task before taking care of #3819
-
- 11月 13, 2023
-
-
由 Yann Collet 创作于
Clarify that a stream containing too many Huffman weights is invalid
-
由 Yann Collet 创作于
Add Bazel module instructions to README.md
-
- 11月 09, 2023
-
-
由 elasota 创作于
-
- 11月 08, 2023
-
-
由 John Hughes 创作于
-
- 11月 02, 2023
-
-
由 Christoph Grüninger 创作于
The required version of CMake is now 3.5.
-
由 Yann Collet 创作于
Correct FSE probability bit consumption in specification
-
- 11月 01, 2023
-
-
由 Christoph Grüninger 创作于
More recent versions of CMake emit the following warning: CMake Deprecation Warning at cmake/CMakeLists.txt:10 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions.
-
由 Yann Collet 创作于
Bump actions/checkout from 4.1.0 to 4.1.1
-
由 Yann Collet 创作于
Add doc on how to use it with cmake FetchContent
-
- 10月 31, 2023