mirror of
https://github.com/cuberite/libdeflate.git
synced 2025-08-03 09:46:04 -04:00
Convert NEWS file to markdown
This commit is contained in:
parent
9b565afd99
commit
8efdabddae
200
NEWS
200
NEWS
@ -1,200 +0,0 @@
|
||||
Version 1.7:
|
||||
Added support for compression level 0, "no compression".
|
||||
|
||||
Added an ARM CRC32 instruction accelerated implementation of CRC32.
|
||||
|
||||
Added support for linking the programs to the shared library version of
|
||||
libdeflate rather than to the static library version.
|
||||
|
||||
Made the compression level affect the minimum input size at which
|
||||
compression is attempted.
|
||||
|
||||
Fixed undefined behavior in x86 Adler32 implementation.
|
||||
(No miscompilations were observed in practice.)
|
||||
|
||||
Fixed undefined behavior in x86 CPU feature code.
|
||||
(No miscompilations were observed in practice.)
|
||||
|
||||
Fixed installing shared lib symlink on macOS.
|
||||
|
||||
Documented third-party bindings.
|
||||
|
||||
Made a lot of improvements to the testing scripts and the CI
|
||||
configuration file.
|
||||
|
||||
Lots of other small improvements and cleanups.
|
||||
|
||||
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.
|
216
NEWS.md
Normal file
216
NEWS.md
Normal file
@ -0,0 +1,216 @@
|
||||
# libdeflate release notes
|
||||
|
||||
## Version 1.7
|
||||
|
||||
* Added support for compression level 0, "no compression".
|
||||
|
||||
* Added an ARM CRC32 instruction accelerated implementation of CRC32.
|
||||
|
||||
* Added support for linking the programs to the shared library version of
|
||||
libdeflate rather than to the static library version.
|
||||
|
||||
* Made the compression level affect the minimum input size at which compression
|
||||
is attempted.
|
||||
|
||||
* Fixed undefined behavior in x86 Adler32 implementation. (No miscompilations
|
||||
were observed in practice.)
|
||||
|
||||
* Fixed undefined behavior in x86 CPU feature code. (No miscompilations were
|
||||
observed in practice.)
|
||||
|
||||
* Fixed installing shared lib symlink on macOS.
|
||||
|
||||
* Documented third-party bindings.
|
||||
|
||||
* Made a lot of improvements to the testing scripts and the CI configuration
|
||||
file.
|
||||
|
||||
* Lots of other small improvements and cleanups.
|
||||
|
||||
## 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.
|
@ -22,6 +22,8 @@ use this library are also provided:
|
||||
yet support very large files
|
||||
* benchmark, a program for benchmarking in-memory compression and decompression
|
||||
|
||||
For the release notes, see the [NEWS file](NEWS.md).
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Building](#building)
|
||||
|
@ -12,9 +12,8 @@ for arch in 'i686' 'x86_64'; do
|
||||
cp libdeflate.{dll,lib,def} libdeflatestatic.lib libdeflate.h ./*.exe \
|
||||
"$dir"
|
||||
${arch}-w64-mingw32-strip "$dir/libdeflate.dll" "$dir"/*.exe
|
||||
for file in COPYING NEWS; do
|
||||
for file in COPYING NEWS.md README.md; do
|
||||
sed < $file > "$dir/${file}.txt" -e 's/$/\r/g'
|
||||
done
|
||||
sed < README.md > "$dir/README.md" -e 's/$/\r/g'
|
||||
(cd "$dir" && zip -r "../${dir}.zip" .)
|
||||
done
|
||||
|
Loading…
x
Reference in New Issue
Block a user