pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/devel/libdeflate



Module Name:    pkgsrc
Committed By:   wiz
Date:           Wed Apr 26 15:56:33 UTC 2023

Modified Files:
        pkgsrc/devel/libdeflate: Makefile PLIST distinfo

Log Message:
libdeflate: update to 1.18.

## Version 1.18

* Fixed a bug where the build type didn't default to "Release" when using
  CMake 3.10 or earlier.

* Fixed a bug where some optimized code wasn't used when building with
  Clang 15 or later (x86), or with Clang 16 or later (aarch64).

* Fixed build errors with some architecture and compiler combos:
  * aarch64 with Clang 16
  * armv6kz or armv7e-m with gcc
  * armhf with gcc (on Debian only)

## Version 1.17

(Apologies for another release so soon after v1.16, but the bug fix listed below
needed to go out.)

* Fixed a bug introduced in v1.16 where compression at levels 10-12 would
  sometimes produce an output larger than the size that was returned by the
  corresponding `libdeflate_*_compress_bound()` function.

* Converted the fuzzing scripts to use LLVM's libFuzzer and added them to the
  GitHub Actions workflow.  (This would have detected the above bug.)

* Further improved the support for direct compilation without using the official
  build system.  The top-level source directory no longer needs to be added to
  the include path, and building the programs no longer requires that
  `_FILE_OFFSET_BITS` and `_POSIX_C_SOURCE` be defined on the command line.

## Version 1.16

* Improved the compression ratio at levels 10-12 slightly, mainly levels 11-12.
  Some inputs (such as certain PNG files) see much improved compression ratios.
  As a trade-off, compressing at levels 11-12 is now about 5-20% slower.

* For consistency with zlib, the decompressor now returns an error on some
  invalid inputs that were accepted before.

* Fixed a build error on arm64 with gcc with certain target CPUs.  (Fixes v1.12)

* Fixed a build error on arm32 with gcc 10.1-10.3 and 11.1-11.2.  (Fixes v1.15)

* Fixed a build error on arm32 with gcc in soft float mode.  (Fixes v1.15)

* Fixed a build error in programs/gzip.c with uClibc.  (Fixes v1.15)

* Fixed the install target on Windows.  (Fixes v1.15)

## Version 1.15

* libdeflate now uses CMake instead of a plain Makefile.

* Improved MSVC support.  Enabled most architecture-specific code with MSVC,
  fixed building with clang in MSVC compatibility mode, and other improvements.

* When libdeflate is built with MinGW, the static library and import library are
  now named using the MinGW convention (`*.a` and `*.dll.a`) instead of the
  Visual Studio convention.  This affects the official Windows binaries.

## Version 1.14

Significantly improved decompression performance on all platforms.  Examples
include (measuring DEFLATE only):

| Platform                           | Speedup over v1.13 |
|------------------------------------|--------------------|
| x86_64 (Intel Comet Lake), gcc     | 1.287x             |
| x86_64 (Intel Comet Lake), clang   | 1.437x             |
| x86_64 (Intel Ice Lake), gcc       | 1.332x             |
| x86_64 (Intel Ice Lake), clang     | 1.296x             |
| x86_64 (Intel Sandy Bridge), gcc   | 1.162x             |
| x86_64 (Intel Sandy Bridge), clang | 1.092x             |
| x86_64 (AMD Zen 2), gcc            | 1.263x             |
| x86_64 (AMD Zen 2), clang          | 1.259x             |
| i386 (Intel Comet Lake), gcc       | 1.570x             |
| i386 (Intel Comet Lake), clang     | 1.344x             |
| arm64 (Apple M1), clang            | 1.306x             |
| arm64 (Cortex-A76), clang          | 1.355x             |
| arm64 (Cortex-A55), clang          | 1.190x             |
| arm32 (Cortex-A76), clang          | 1.665x             |
| arm32 (Cortex-A55), clang          | 1.283x             |

Thanks to Dougall Johnson (https://dougallj.wordpress.com/) for ideas for many
of the improvements.

## Version 1.13

* Changed the 32-bit Windows build of the library to use the default calling
  convention (cdecl) instead of stdcall, reverting a change from libdeflate 1.4.

* Fixed a couple macOS compatibility issues with the gzip program.

## Version 1.12

This release focuses on improving the performance of the CRC-32 and Adler-32
checksum algorithms on x86 and ARM (both 32-bit and 64-bit).

* Build updates:

  * Fixed building libdeflate on Apple platforms.

  * For Visual Studio builds, Visual Studio 2015 or later is now required.

* CRC-32 algorithm updates:

  * Improved CRC-32 performance on short inputs on x86 and ARM.

  * Improved CRC-32 performance on Apple Silicon Macs by using a 12-way pmull
    implementation.   Performance on large inputs on M1 is now about 67 GB/s,
    compared to 8 GB/s before, or 31 GB/s with the Apple-provided zlib.

  * Improved CRC-32 performance on some other ARM CPUs by reworking the code so
    that multiple crc32 instructions can be issued in parallel.

  * Improved CRC-32 performance on some x86 CPUs by increasing the stride length
    of the pclmul implementation.

* Adler-32 algorithm updates:

  * Improved Adler-32 performance on some x86 CPUs by optimizing the AVX-2
    implementation.  E.g., performance on Zen 1 improved from 19 to 30 GB/s, and
    on Ice Lake from 35 to 41 GB/s (if the AVX-512 implementation is excluded).

  * Removed the AVX-512 implementation of Adler-32 to avoid CPU frequency
    downclocking, and because the AVX-2 implementation was made faster.

  * Improved Adler-32 performance on some ARM CPUs by optimizing the NEON
    implementation.  E.g., Apple M1 improved from about 36 to 52 GB/s.

## Version 1.11

* Library updates:

  * Improved compression performance slightly.

  * Detect arm64 CPU features on Apple platforms, which should improve
    performance in some areas such as CRC-32 computation.

* Program updates:

  * The included `gzip` and `gunzip` programs now support the `-q` option.

  * The included `gunzip` program now passes through non-gzip data when both
    the `-f` and `-c` options are used.

* Build updates:

  * Avoided a build error on arm32 with certain gcc versions, by disabling
    building `crc32_arm()` as dynamically-dispatched code when needed.

  * Support building with the LLVM toolchain on Windows.

  * Disabled the use of the "stdcall" ABI in static library builds on Windows.

  * Use the correct `install_name` in macOS builds.

  * Support Haiku builds.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 pkgsrc/devel/libdeflate/Makefile
cvs rdiff -u -r1.1 -r1.2 pkgsrc/devel/libdeflate/PLIST \
    pkgsrc/devel/libdeflate/distinfo

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/devel/libdeflate/Makefile
diff -u pkgsrc/devel/libdeflate/Makefile:1.2 pkgsrc/devel/libdeflate/Makefile:1.3
--- pkgsrc/devel/libdeflate/Makefile:1.2        Mon Jul 25 11:12:22 2022
+++ pkgsrc/devel/libdeflate/Makefile    Wed Apr 26 15:56:32 2023
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.2 2022/07/25 11:12:22 wiz Exp $
+# $NetBSD: Makefile,v 1.3 2023/04/26 15:56:32 wiz Exp $
 
-DISTNAME=      libdeflate-1.10
+DISTNAME=      libdeflate-1.18
 CATEGORIES=    devel
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=ebiggers/}
 GITHUB_TAG=    v${PKGVERSION_NOREV}
@@ -10,8 +10,7 @@ HOMEPAGE=     https://github.com/ebiggers/li
 COMMENT=       Optimized deflate/zlib/gzip library
 LICENSE=       mit
 
-USE_TOOLS+=    gmake
-
 PKGCONFIG_OVERRIDE+=   libdeflate.pc.in
 
+.include "../../devel/cmake/build.mk"
 .include "../../mk/bsd.pkg.mk"

Index: pkgsrc/devel/libdeflate/PLIST
diff -u pkgsrc/devel/libdeflate/PLIST:1.1 pkgsrc/devel/libdeflate/PLIST:1.2
--- pkgsrc/devel/libdeflate/PLIST:1.1   Sun Apr  3 16:11:01 2022
+++ pkgsrc/devel/libdeflate/PLIST       Wed Apr 26 15:56:32 2023
@@ -1,7 +1,11 @@
-@comment $NetBSD: PLIST,v 1.1 2022/04/03 16:11:01 bsiegert Exp $
+@comment $NetBSD: PLIST,v 1.2 2023/04/26 15:56:32 wiz Exp $
 bin/libdeflate-gunzip
 bin/libdeflate-gzip
 include/libdeflate.h
+lib/cmake/libdeflate/libdeflate-config-version.cmake
+lib/cmake/libdeflate/libdeflate-config.cmake
+lib/cmake/libdeflate/libdeflate-targets-release.cmake
+lib/cmake/libdeflate/libdeflate-targets.cmake
 lib/libdeflate.a
 lib/libdeflate.so
 lib/libdeflate.so.0
Index: pkgsrc/devel/libdeflate/distinfo
diff -u pkgsrc/devel/libdeflate/distinfo:1.1 pkgsrc/devel/libdeflate/distinfo:1.2
--- pkgsrc/devel/libdeflate/distinfo:1.1        Sun Apr  3 16:11:01 2022
+++ pkgsrc/devel/libdeflate/distinfo    Wed Apr 26 15:56:32 2023
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.1 2022/04/03 16:11:01 bsiegert Exp $
+$NetBSD: distinfo,v 1.2 2023/04/26 15:56:32 wiz Exp $
 
-BLAKE2s (libdeflate-1.10.tar.gz) = 5c10771369adabd3ad7c64777a8245cb9892c54b7bec091cde34f71cb6d8010b
-SHA512 (libdeflate-1.10.tar.gz) = 2b59cc170c7fb3bb13bd3c6853070ea24fb9e6844dde4d08e43a8a5f8745ecbf844952390ff758070c6fc4f17d9eec8c4d2a729922bf84e2eaa9e74f1424e241
-Size (libdeflate-1.10.tar.gz) = 158379 bytes
+BLAKE2s (libdeflate-1.18.tar.gz) = 8893c7a144b320c3191abf6aca1cfada2ada3db6415b71658bb305c1a88b3199
+SHA512 (libdeflate-1.18.tar.gz) = 8a60fa5850f323389370f931579f85a094a35b3db334f2a2afa61bee39ecebc797e93c6fe5deb4178e19d83a1427533975dba6c05ce0b1db88b43c9268d09124
+Size (libdeflate-1.18.tar.gz) = 184924 bytes



Home | Main Index | Thread Index | Old Index