- update to 2.2.3:
* This time we have two code fixes for potentially unsafe
access, although we have not had any bug-reports about these.
* It also contains several optimizations. Especially of note,
inflate has been optimized on various instruction sets and
also the generic C code has seen improvements, and we have
improvements for arches where unaligned accesses are not
possible (lacking instructions to handle unaligned access)
and also improvements on big endian.
* x86-64 AVX2: Inflate ~17.8% faster, Deflate unchanged. -4.6KB
library size.
* Aarch64: Inflate ~2.3% faster, Deflate unchanged. - 5.5KB
library size.
* We also took some time to do a comprehensive cleanup of the
now misleading UNALIGNED_OK option and of all the "unaligned"
functions. We have noticed that some distros have been
disabling these, fearing they are using potentially unsafe
unaligned pointers, but we already fixed that in 2.1.0-beta1.
Since then, these "unaligned" settings/functions have been
referring to using unaligned accesses in safe ways, like
utilizing unaligned intrinsics or memcpy to fix alignment for
example and selecting what safe method is optimal to the
arch. So disabling that instead disabled several safe
optimizations.
* Because this was obviously misleading certain distros into
disabling these optimizations, we have cleaned it up, removed
a lot of unnecessary preprocessor checks, and made detection
of optimal methods happen during compile instead of
configure. As a bonus, this cleaned up a lot of code and also
let us not compile in many extra variants of
OBS-URL: https://build.opensuse.org/request/show/1245806
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/zlib-ng?expand=0&rev=21
* This time we have two code fixes for potentially unsafe
access, although we have not had any bug-reports about these.
* It also contains several optimizations. Especially of note,
inflate has been optimized on various instruction sets and
also the generic C code has seen improvements, and we have
improvements for arches where unaligned accesses are not
possible (lacking instructions to handle unaligned access)
and also improvements on big endian.
* x86-64 AVX2: Inflate ~17.8% faster, Deflate unchanged. -4.6KB
library size.
* Aarch64: Inflate ~2.3% faster, Deflate unchanged. - 5.5KB
library size.
* We also took some time to do a comprehensive cleanup of the
now misleading UNALIGNED_OK option and of all the "unaligned"
functions. We have noticed that some distros have been
disabling these, fearing they are using potentially unsafe
unaligned pointers, but we already fixed that in 2.1.0-beta1.
Since then, these "unaligned" settings/functions have been
referring to using unaligned accesses in safe ways, like
utilizing unaligned intrinsics or memcpy to fix alignment for
example and selecting what safe method is optimal to the
arch. So disabling that instead disabled several safe
optimizations.
* Because this was obviously misleading certain distros into
disabling these optimizations, we have cleaned it up, removed
a lot of unnecessary preprocessor checks, and made detection
of optimal methods happen during compile instead of
configure. As a bonus, this cleaned up a lot of code and also
let us not compile in many extra variants of
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/zlib-ng?expand=0&rev=48
- update to 2.1.6:
* This release also improves on the functable implementation,
and also moves its initialization to happen in deflateInit()
and inflateInit(). We also have some optimizations for RVV
and ARM.
* Fix inflateCopy corruption caused by change in 2.1.4 #1628
* This is a regression caused by a change introduced in 2.1.4
* Initialize functable without TLS, using atomics #1609
* Initialize functable early, during DeflateInit and
InflateInit #1613
* Add FAR macro to zlib-compat headers to improve compatibility
* Improve performance of crc32_acle on 32-bit ARM #1397
* Add support for __attribute__((__target__(...))) to overcome
limitations of -march=native #1620
* Remove tab character in ACLE uqsub16 assembly #1627
* Optimize adler32_fold_copy using RVV #1597
* Simplify AVX2 and AVX512 adler32_fold_copy by removing
templates #1599
* Don't attempt ARMv6 detection on AARCH64 #1617
* Prevent tests writing into source directory #1604
* CMake: Fix clang-cl warnings #1591
* CMake: Export cmake target #1601#1611
* CMake: Remove duplicate enable tests option #1610
* CMake: Fix reading version information from zlib.h.in #1614
* CMake: Check whether compiler supports -march=native or
-mcpu=native #1618
* CMake: Always run compiler feature tests without LTO #1622
* CMake: Make sure uqsub16 check doesn't get optimized away
with LTO #1619
* CMake: Update to GoogleTest 1.12.1 #1623
OBS-URL: https://build.opensuse.org/request/show/1138793
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/zlib-ng?expand=0&rev=38
- update to 2.1.4:
* This is a stable release, with several minor improvements and
one fix for a possible buffer overrun while using
inflateCopy().
* Zlib-ng's zlib-compat mode is now targeting zlib 1.3
compatibility.
* Of note, we have new optimizations for ARM and Risc-V RVV,
and a lot of fixes and improvements to the buildsystem.
* Fix: inflateCopy() allocate window with padding #1583
* Pull zlib 1.3 changes #1563
* Deprecate ZLIBNG_VER_STATUS, use ZLIBNG_VER_STATUSH #1581
* Optimize slide_hash for ARMv6 #1538
* Handle ARM64EC #1539
* Remove inert check for HAVE_ACLE_FLAG in
check_acle_compiler_flag #1554
* Clean up ARM detection and allow ACLE on all ARM archs #1567
* Initial loongarch port #1537
* Fix building benchmarks on 32-bit PowerPC #1588
* Optimize adler32 using rvv #1532
* Optimize chunkset #1568
* Support RVV hwcap detect at runtime #1585
* Move the AVX compatibility functions into a separate file
* Clean up SSE4.2 support, fixes compile issues under docker/VM
OBS-URL: https://build.opensuse.org/request/show/1125544
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/zlib-ng?expand=0&rev=34
- Update to version 2.1.2:
* 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.
* 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.
* Deflate_rle has been optimized with its own compare_256 implementation.
* 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.
OBS-URL: https://build.opensuse.org/request/show/1094600
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/zlib-ng?expand=0&rev=26