Skip to content

Commit

Permalink
2.1.0 Beta1 release
Browse files Browse the repository at this point in the history
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:
- 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-VINNI, 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 now longer actively supported and tested, it is now community supported.
- See the wiki for minimum builsystem versions and deprecations https://github.com/zlib-ng/zlib-ng/wiki
  • Loading branch information
Dead2 committed Apr 25, 2023
1 parent 3f06cec commit 8c5f025
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 7 deletions.
2 changes: 1 addition & 1 deletion Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions zlib-ng.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 3 additions & 3 deletions zlib.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 1 addition & 1 deletion zutil.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down

0 comments on commit 8c5f025

Please sign in to comment.