From 1c2698f9be19a8d837a83d2a08e938f22c3f3202 Mon Sep 17 00:00:00 2001 From: Hans Kristian Rosbach Date: Tue, 25 Apr 2023 12:37:32 +0200 Subject: [PATCH] 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 --- Makefile.in | 2 +- zlib-ng.h.in | 4 ++-- zlib.h.in | 6 +++--- zutil.c | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Makefile.in b/Makefile.in index 4bfb6313..8ca8c81d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -29,7 +29,7 @@ TEST_LIBS=$(LIBNAME1).a LDSHARED=$(CC) LDSHAREDFLAGS=-shared -VER=2.1.0.devel +VER=2.1.0.beta1 VER1=2 STATICLIB=$(LIBNAME1).a diff --git a/zlib-ng.h.in b/zlib-ng.h.in index a1536b76..7f68f7a3 100644 --- a/zlib-ng.h.in +++ b/zlib-ng.h.in @@ -48,8 +48,8 @@ extern "C" { #endif -#define ZLIBNG_VERSION "2.1.0.devel" -#define ZLIBNG_VERNUM 0x02010000L /* MMNNRRMS: major minor revision status modified */ +#define ZLIBNG_VERSION "2.1.0.beta1" +#define ZLIBNG_VERNUM 0x02010010L /* MMNNRRSM: major minor revision status modified */ #define ZLIBNG_VER_MAJOR 2 #define ZLIBNG_VER_MINOR 1 #define ZLIBNG_VER_REVISION 0 diff --git a/zlib.h.in b/zlib.h.in index 311cd34e..6da533c4 100644 --- a/zlib.h.in +++ b/zlib.h.in @@ -49,12 +49,12 @@ extern "C" { #endif -#define ZLIBNG_VERSION "2.1.0.devel" -#define ZLIBNG_VERNUM 0x02010000L /* MMNNRRMS: major minor revision status modified */ +#define ZLIBNG_VERSION "2.1.0.beta1" +#define ZLIBNG_VERNUM 0x02010010L /* MMNNRRSM: major minor revision status modified */ #define ZLIBNG_VER_MAJOR 2 #define ZLIBNG_VER_MINOR 1 #define ZLIBNG_VER_REVISION 0 -#define ZLIBNG_VER_STATUS 0 /* 0=devel, 1-E=beta, F=Release */ +#define ZLIBNG_VER_STATUS 1 /* 0=devel, 1-E=beta, F=Release */ #define ZLIBNG_VER_MODIFIED 0 /* non-zero if modified externally from zlib-ng */ #define ZLIB_VERSION "1.2.13.zlib-ng" diff --git a/zutil.c b/zutil.c index 742c33ac..0fd14f4e 100644 --- a/zutil.c +++ b/zutil.c @@ -21,7 +21,7 @@ z_const char * const PREFIX(z_errmsg)[10] = { }; const char PREFIX3(vstring)[] = - " zlib-ng 2.1.0.devel forked from zlib"; + " zlib-ng 2.1.0.beta1"; #ifdef ZLIB_COMPAT const char * Z_EXPORT zlibVersion(void) { -- 2.47.3