mirror of
https://github.com/cuberite/libdeflate.git
synced 2025-08-03 17:56:17 -04:00
175 lines
5.9 KiB
Plaintext
175 lines
5.9 KiB
Plaintext
Version 1.6:
|
|
Prevented gcc 10 from miscompiling libdeflate (workaround for
|
|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94994).
|
|
|
|
Removed workaround for gcc 5 and earlier producing slow code on
|
|
ARM32. If this affects you, please upgrade your compiler.
|
|
|
|
New API function: libdeflate_zlib_decompress_ex(). It provides
|
|
the actual size of the stream that was decompressed, like the
|
|
gzip and DEFLATE equivalents.
|
|
|
|
libdeflate_zlib_decompress() now accepts trailing bytes after
|
|
the end of the stream, like the gzip and DEFLATE equivalents.
|
|
|
|
Added support for custom memory allocators.
|
|
(New API function: libdeflate_set_memory_allocator())
|
|
|
|
Added support for building the library in freestanding mode.
|
|
|
|
Building libdeflate no longer requires CPPFLAGS=-Icommon.
|
|
|
|
Version 1.5:
|
|
Fixed up stdcall support on 32-bit Windows: the functions are
|
|
now exported using both suffixed and non-suffixed names, and
|
|
fixed libdeflate.h to be MSVC-compatible again.
|
|
|
|
Version 1.4:
|
|
The 32-bit Windows build of libdeflate now uses the "stdcall"
|
|
calling convention instead of "cdecl". If you're calling
|
|
libdeflate.dll directly from C or C++, you'll need to recompile
|
|
your code. If you're calling it from another language, or
|
|
calling it indirectly using LoadLibrary(), you'll need to update
|
|
your code to use the stdcall calling convention.
|
|
|
|
The Makefile now supports building libdeflate as a shared
|
|
library (.dylib) on macOS.
|
|
|
|
Fixed a bug where support for certain optimizations and optional
|
|
features (file access hints and more precise timestamps) was
|
|
incorrectly omitted when libdeflate was compiled with -Werror.
|
|
|
|
Added 'make check' target to the Makefile.
|
|
|
|
Added CI configuration files.
|
|
|
|
Version 1.3:
|
|
`make install` now supports customizing the directories into
|
|
which binaries, headers, and libraries are installed.
|
|
|
|
`make install` now installs into /usr/local by default.
|
|
To change it, use e.g. `make install PREFIX=/usr`.
|
|
|
|
`make install` now works on more platforms.
|
|
|
|
The Makefile now supports overriding the optimization flags.
|
|
|
|
The compression functions now correctly handle an output data
|
|
buffer >= 4 GiB in size, and `gzip` and `gunzip` now correctly
|
|
handle multi-gigabyte files (if enough memory is available).
|
|
|
|
Version 1.2:
|
|
Slight improvements to decompression speed.
|
|
|
|
Added an AVX-512BW implementation of Adler-32.
|
|
|
|
The Makefile now supports a user-specified installation PREFIX.
|
|
|
|
Fixed build error with some Visual Studio versions.
|
|
|
|
Version 1.1:
|
|
Fixed crash in CRC-32 code when the prebuilt libdeflate for
|
|
32-bit Windows was called by a program built with Visual Studio.
|
|
|
|
Improved the worst-case decompression speed of malicious data.
|
|
|
|
Fixed build error when compiling for an ARM processor without
|
|
hardware floating point support.
|
|
|
|
Improved performance on the PowerPC64 architecture.
|
|
|
|
Added soname to libdeflate.so, to make packaging easier.
|
|
|
|
Added 'make install' target to the Makefile.
|
|
|
|
The Makefile now supports user-specified CPPFLAGS.
|
|
|
|
The Windows binary releases now include the import library for
|
|
libdeflate.dll. libdeflate.lib is now the import library, and
|
|
libdeflatestatic.lib is the static library.
|
|
|
|
Version 1.0:
|
|
Added support for multi-member gzip files.
|
|
|
|
Moved architecture-specific code into subdirectories. If you
|
|
aren't using the provided Makefile to build libdeflate, you now
|
|
need to compile lib/*.c and lib/*/*.c instead of just lib/*.c.
|
|
|
|
Added an ARM PMULL implementation of CRC-32, which speeds up
|
|
gzip compression and decompression on 32-bit and 64-bit ARM
|
|
processors that have the Cryptography Extensions.
|
|
|
|
Improved detection of CPU features, resulting in accelerated
|
|
functions being used in more cases. This includes:
|
|
|
|
- Detect CPU features on 32-bit x86, not just 64-bit as was
|
|
done previously.
|
|
|
|
- Detect CPU features on ARM, both 32 and 64-bit.
|
|
(Limited to Linux only currently.)
|
|
|
|
Version 0.8:
|
|
Build fixes for certain platforms and compilers.
|
|
|
|
libdeflate now produces the same output on all CPU architectures.
|
|
|
|
Improved documentation for building libdeflate on Windows.
|
|
|
|
Version 0.7:
|
|
Fixed a very rare bug that caused data to be compressed incorrectly.
|
|
The bug affected compression levels 7 and below since libdeflate v0.2.
|
|
Although there have been no user reports of the bug, and I believe it
|
|
would have been highly unlikely to encounter on realistic data, it could
|
|
occur on data specially crafted to reproduce it.
|
|
|
|
Fixed a compilation error when building with clang 3.7.
|
|
|
|
Version 0.6:
|
|
Various improvements to the gzip program's behavior.
|
|
|
|
Faster CRC-32 on AVX-capable processors.
|
|
|
|
Other minor changes.
|
|
|
|
Version 0.5:
|
|
The CRC-32 checksum algorithm has been optimized with carryless
|
|
multiplication instructions for x86_64 (PCLMUL). This speeds up gzip
|
|
compression and decompression.
|
|
|
|
Build fixes for certain platforms and compilers.
|
|
|
|
Added more test programs and scripts.
|
|
|
|
libdeflate is now entirely MIT-licensed.
|
|
|
|
Version 0.4:
|
|
The Adler-32 checksum algorithm has been optimized with vector
|
|
instructions for x86_64 (SSE2 and AVX2) and ARM (NEON). This speeds up
|
|
zlib compression and decompression.
|
|
|
|
To avoid naming collisions, functions and definitions in libdeflate's
|
|
API have been renamed to be prefixed with "libdeflate_" or
|
|
"LIBDEFLATE_". Programs using the old API will need to be updated.
|
|
|
|
Various bug fixes and other improvements.
|
|
|
|
Version 0.3:
|
|
Some bug fixes and other minor changes.
|
|
|
|
Version 0.2:
|
|
Implemented a new block splitting algorithm which typically improves the
|
|
compression ratio slightly at all compression levels.
|
|
|
|
The compressor now outputs each block using the cheapest type (dynamic
|
|
Huffman, static Huffman, or uncompressed).
|
|
|
|
The gzip program has received an overhaul and now behaves more like the
|
|
standard version.
|
|
|
|
Build system updates, including: some build options were changed and
|
|
some build options were removed, and the default 'make' target now
|
|
includes the gzip program as well as the library.
|
|
|
|
Version 0.1:
|
|
Initial official release.
|