Commit Graph

28 Commits

Author SHA1 Message Date
Hans Kristian Rosbach
860e4cff79 2.2.4 Release 2025-02-10 23:43:59 +01:00
Hans Kristian Rosbach
cbb6ec1d74 2.2.3 Release 2025-01-01 01:22:18 +01:00
Adeel Mujahid
4fa76be6c0
Fix typos (#1825) 2024-12-20 23:35:50 +01:00
Hans Kristian Rosbach
c939498c7f 2.2.2 Release 2024-09-17 14:12:24 +02:00
Hans Kristian Rosbach
d54e3769be 2.2.1 Release 2024-07-02 15:55:49 +02:00
Hans Kristian Rosbach
80514c17b3 2.2.0 Release 2024-06-19 14:19:52 +02:00
Mark Adler
4fe59efbe0 zlib 1.3.1
madler/zlib#51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf
2024-02-07 19:15:56 +01:00
Mark Adler
3b8e7f616e Note that the len2 argument of crc_combine*() must be non-negative.
If it is negative, then the code will enter an infinite loop.

madler/zlib#36e369e1a54b35a978dc584496af69a07ec2d71a
2024-02-07 19:15:56 +01:00
Hans Kristian Rosbach
74253725f8 2.1.6 Release 2024-01-10 23:25:47 +01:00
Hans Kristian Rosbach
2bc66887dd 2.1.5 Release 2023-11-27 13:26:56 +01:00
Hans Kristian Rosbach
9fb955b8ba 2.1.4 Release 2023-10-19 18:45:33 +02:00
Hans Kristian Rosbach
2ad0cd0d25 Deprecate ZLIBNG_VER_STATUS, add new variant ZLIBNG_VER_STATUSH 2023-09-28 00:20:18 +02:00
Mark Adler
830dc147ef Clarify requirement in zlib.h to avoid multiple flush markers. 2023-08-24 11:22:33 +02:00
Mark Adler
10f51f6096 Document in zlib.h the initialization of stream fields by the Init
and Reset functions.
2023-08-24 11:22:33 +02:00
Mark Adler
3bef206e2c Correct comment in zlib.h on os setting in gzip header.
The comment said that the os is set to 255, when in fact it has
been set to the current os since zlib 1.2.3. Or at least our best
guess at the os made at compile time.
2023-08-24 11:22:33 +02:00
Paul Marquess
44cc37f154 Remove duplicate "the" in zlib.h. 2023-08-24 11:22:33 +02:00
Hans Kristian Rosbach
cf89cf3503 2.1.3 Release 2023-06-29 10:23:11 +02:00
Hans Kristian Rosbach
f75c6856c3 2.1.2 Release 2023-06-07 21:12:16 +02:00
Hans Kristian Rosbach
ee68fc338f 2.1.1-Beta2
Changes since 2.1.0-Beta1:
- Fix missing exported z_size_t type in zlib.h (zlib-compat mode).
- Fix two Coverity warnings
- Fix CMake GNUInstallDirs usage
- Configure/CMake improvements for compilers with early AVX512-VNNI support (GCC8.0 etc)
- Microptimalization for AVX512 implementation of CRC32
- Optimized deflate_rle compression, also added related test and benchmark.
- Add testing of file_compress/file_uncompress in minigzip/minideflate
- Add emulated RISC-V to CI test workflow
- Add deflate_fast to switchlevels test
- Fix abicheck CI test was not ignoring version string
- Fix MinGW CI test, broken by Github Actions VM image updates
2023-05-17 13:03:27 +02:00
Hans Kristian Rosbach
144b1d4cc5 Remove refrences to z_size_t from zlib-ng.h, since we use size_t directly. 2023-05-16 10:28:28 +02:00
Hans Kristian Rosbach
1c2698f9be 2.1.0 Beta1 release
This release contains two years of development and improvements to zlib-ng,
as well as fixes and changes inherited from zlib.

The 2.1.x version series has new targeted minumum buildsystem versions, as detailed on the Wiki https://github.com/zlib-ng/zlib-ng/wiki

Buildsystem:
- Many improvements to the CMake scripts.
- Improved support for detecting memory alignment functions.
- Improved support for unaligned access by letting the compiler promote code to unaligned if supported by the CPU.
- Remove x86 cpu feature detection for TZCNT, safely fallback to BSF.
- Enable using AVX512 intrinsics with GCC <9.

Optimizations and Enhancements:
- Decompression is a lot faster (56% faster measured on AVX2-capable x86-64)
- Compresson is improved for Level 9, at the cost of a little performance.
- Compression is improved for Level 3, by switching from deflate_fast to deflate_medium.
- Levels 3 and 4 have been reconfigured to provide a better gradual tradeoff for speed/compression between levels 2 and 5.
- Deflate_quick (Level 1) has been improved to default to a bigger windowsize and support changing the window size like the other levels.

New instruction set optimizations:
- Adler32 implementation using AVX512, AVX512-VNNI, VMX.
- CRC32-B implementation using VPCLMULQDQ & IBM-Z.
- Slide hash implementation using VMX.
- Compare256 implementations using SSE2, Neon, & POWER9.
- Inflate chunk copying using SSSE3 & VSX.

Compatibility and Porting:
- CRC-32 computation changes from madler/zlib. zlib-ng/zlib-ng#a6155234
- Compatible and up-to-date with zlib 1.2.13.
- Removed the usage of macros in zlib-ng.h, making life easier for languages that want to call the C functions without having the C preprocessor (Python, etc).

Improved support more environments:
- Apple M1
- vcpkg
- Emscripten

Testing:
- Tests have been converted to use GTest. Many new tests have also been added.
- Gbench support has been added to easily benchmark changes to performance-critical functions.

Misc:
- Several pieces of core code has been restructured or rewritten.
- Too many changes to list here, see the git commit log for the full list of changes.

Deprecations:
- Configure no longer has the full range of tests.
- NMake is no longer actively supported and tested, it is now community supported.
- See the wiki for minimum build system versions and deprecations https://github.com/zlib-ng/zlib-ng/wiki
2023-04-28 11:38:36 +02:00
Mika Lindqvist
ff9162c1a0 In compatibility mode, always define z_crc_t as uint32_t for backwards compatibility. 2022-06-19 13:50:20 +02:00
Hans Kristian Rosbach
4fe1affc6d Remove zng_gzgetc_ function from zlib-ng native API.
It exists in zlib for backwards compatibility, but has never been
documented/advertised for use in zlib-ngs native API.
2022-06-03 10:21:01 +02:00
Hans Kristian Rosbach
2f4e2372a2 Simplify zlib-ng native API by removing version and struct size checks.
This should be backwards compatible with applications compiled for 2.0.x.
2022-06-03 10:21:01 +02:00
Nathan Moinvaziri
a6155234a2 Speed up software CRC-32 computation by a factor of 1.5 to 3.
Use the interleaved method of Kadatch and Jenkins in order to make
use of pipelined instructions through multiple ALUs in a single
core. This also speeds up and simplifies the combination of CRCs,
and updates the functions to pre-calculate and use an operator for
CRC combination.

Co-authored-by: Nathan Moinvaziri <nathan@nathanm.com>
2022-05-25 12:04:35 +02:00
Deniz Bahadir
498fac54e8 Fix compilation with clang-cl on windows
Do not include (system) headers when processing these headers with the
resource compiler, because it might trip over the headers coming from
LLVM.
2022-02-09 22:03:03 +01:00
Nathan Moinvaziri
0802430694 Move stdint.h below zconf include to prevent unexpected characters warning on ClangCl. 2022-01-07 14:55:23 +01:00
Dženan Zukić
714f624d79 Add support for name mangling
This is useful when zlib-ng is embedded into another library,
such as ITK: https://itk.org/

Closes #1025.

Co-authored-by: Mika Lindqvist <postmaster@raasu.org>
2021-10-09 09:19:55 +02:00