Commit Graph

2868 Commits

Author SHA1 Message Date
Crypto City
d0b5f67b71 bump min cmake version to 3.5
Some checks failed
lz4 CI / test different values of LZ4_MEMORY_USAGE (push) Has been cancelled
lz4 CI / Custom LZ4_DISTANCE_MAX (push) Has been cancelled
lz4 CI / Test lz4 compression on a block device (push) Has been cancelled
lz4 CI / make cppcheck (push) Has been cancelled
lz4 CI / make staticAnalyze (push) Has been cancelled
lz4 CI / valgrind (push) Has been cancelled
lz4 CI / Linux x64 ubsan (push) Has been cancelled
lz4 CI / Linux x86 ubsan (push) Has been cancelled
lz4 CI / Linux x64 ASAN (push) Has been cancelled
lz4 CI / lint unicode in ./lib/, ./tests/ and ./programs/ (push) Has been cancelled
lz4 CI / make examples (push) Has been cancelled
lz4 CI / oss-fuzz (address) (push) Has been cancelled
lz4 CI / oss-fuzz (memory) (push) Has been cancelled
lz4 CI / oss-fuzz (undefined) (push) Has been cancelled
lz4 CI / QEMU ${{ matrix.type }} (ubuntu-latest, qemu-system-arm gcc-aarch64-linux-gnu, ARM64, aarch64-linux-gnu-gcc, qemu-aarch64-static) (push) Has been cancelled
lz4 CI / QEMU ${{ matrix.type }} (ubuntu-latest, qemu-system-arm gcc-arm-linux-gnueabi, ARM, arm-linux-gnueabi-gcc, qemu-arm-static) (push) Has been cancelled
lz4 CI / QEMU ${{ matrix.type }} (ubuntu-latest, qemu-system-ppc gcc-powerpc-linux-gnu, PPC, powerpc-linux-gnu-gcc, qemu-ppc-static) (push) Has been cancelled
lz4 CI / QEMU ${{ matrix.type }} (ubuntu-latest, qemu-system-ppc gcc-powerpc64le-linux-gnu, PPC64LE, powerpc64le-linux-gnu-gcc, qemu-ppc64le-static) (push) Has been cancelled
lz4 CI / QEMU ${{ matrix.type }} (ubuntu-latest, qemu-system-s390x gcc-s390x-linux-gnu, S390X, s390x-linux-gnu-gcc, qemu-s390x-static) (push) Has been cancelled
lz4 CI / macOS (push) Has been cancelled
lz4 CI / make (push) Has been cancelled
lz4 CI / make travis-install (push) Has been cancelled
lz4 CI / cmake (push) Has been cancelled
lz4 CI / make cmake (push) Has been cancelled
lz4 CI / Meson + Ninja (push) Has been cancelled
lz4 CI / git version tag checking for release (push) Has been cancelled
lz4 CI / GH-Actions Virtual Env Info (${{ matrix.os }}) (ubuntu-18.04) (push) Has been cancelled
lz4 CI / GH-Actions Virtual Env Info (${{ matrix.os }}) (ubuntu-20.04) (push) Has been cancelled
lz4 CI / GH-Actions Virtual Env Info (${{ matrix.os }}) (ubuntu-22.04) (push) Has been cancelled
lz4 CI / GH-Actions Virtual Env Info (${{ matrix.os }}) (ubuntu-latest) (push) Has been cancelled
2025-08-03 12:46:18 +00:00
Yann Collet
5ff8396801
Merge pull request #1138 from lz4/dev
stage v1.9.4
2022-08-15 15:45:31 -07:00
Yann Collet
cfd6ab3252 update NEWS for v1.9.4 2022-08-15 14:24:49 -07:00
Yann Collet
7fe9c69024
Merge pull request #1136 from t-mat/msvc-17.3
Support MSVC 2022 (version 17.3)
2022-08-12 16:51:15 -07:00
Takayuki Matsuoka
ae179a9c16 Add note about RC_INVOKED 2022-08-13 05:39:25 +09:00
Takayuki Matsuoka
ff4b136ab8 Fix: replace strtoull with _strtoui64 for MSVC2010
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/strtoui64-wcstoui64-strtoui64-l-wcstoui64-l
2022-08-13 03:59:49 +09:00
Takayuki Matsuoka
8a071ea323 trigger GitHub actions 2022-08-13 01:49:25 +09:00
Takayuki Matsuoka
f7e95939e8 Fix: remove unused value
This patch fixes the following error from "make staticAnalyze"

datagencli.c:106:21: warning: Value stored to 'size' is never read
                    size=0;
                    ^    ~
2022-08-13 00:46:44 +09:00
Takayuki Matsuoka
46d12d661e Suppress false positive warning from MSVC (fuzzer.c)
Suppress the following false positive warnings from MSVC:
- Disable all arithmetic overflow (C26451)
- Suppress C6385: Reading invalid data from 'compressedBuffer'.
- Add ULL suffix to unsigned 64-bits constants.
2022-08-13 00:36:28 +09:00
Yann Collet
125af816ae
Merge pull request #1135 from t-mat/github-actions-update-2022-0812
GH-Actions: Add ubuntu-22.04 and the latest C/C++ compilers for Linux
2022-08-12 08:35:13 -07:00
Takayuki Matsuoka
f892f82883 Suppress false positive warning from MSVC (datagencli.c)
MSVC 2022 reports the follwing false positve warnings:

lz4\tests\datagencli.c(110): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
lz4\tests\datagencli.c(134): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
lz4\tests\datagencli.c(146): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).

Although they're absolutely compiler's and static analyzer's bug,
it'd always be nice to use the standard library.
2022-08-13 00:25:13 +09:00
Takayuki Matsuoka
af0d7c0cb8 Suppress warning from rc.exe
Since rc.exe (the resource compiler) is legacy compiler,  it truncates preprocessor symbol name length to 32 chars.
And it reports the following warning

lz4\build\VS2022\..\..\lib\lz4.h(314): warning RC4011: identifier truncated to 'LZ4_STATIC_LINKING_ONLY_DISABLE'
lz4\build\VS2022\..\..\lib\lz4.h(401): warning RC4011: identifier truncated to 'LZ4_STATIC_LINKING_ONLY_DISABLE'

This patch detects rc.exe and just skips long symbol.
2022-08-12 23:59:34 +09:00
Takayuki Matsuoka
0fc36f1bc7 Suppress false positive warning from MSVC
MSVC (17.3 or earlier) reports the following warning

lz4\lib\lz4.c(527): warning C6385: Reading invalid data from 'v'.
Line 527 is : LZ4_memcpy(&v[4], v, 4);

But, obviously v[0..3] is always filled with meaningful value.
Therefore, this warning report is wrong.

We must revisit this issue with future version of MSVC.
2022-08-12 23:49:22 +09:00
Takayuki Matsuoka
5e22228e88 Update MSVC 2022 project's PlatformToolset to v143 2022-08-12 23:49:22 +09:00
Takayuki Matsuoka
b8c4120aa1 Clone MSVC project (from VS2017 to VS2022) 2022-08-12 23:49:13 +09:00
Yann Collet
17356fca28
Merge pull request #1134 from lz4/faster_BD4
faster CLI decompression speed for frames compressed with -BD4 setting
2022-08-11 21:18:54 -07:00
Takayuki Matsuoka
07e3fd8b64 Add ubuntu-22.04 and the latest C/C++ compilers for Linux 2022-08-12 13:01:47 +09:00
Yann Collet
ec487d3265 faster CLI decompression speed for frames with -BD4 setting
lz4frame favors the faster prefix mode
when decompressing a frame with linked blocks.

This significantly improved CLI decompression on files compressed with -BD4 setting.
On my laptop, decompressing `enwik9` went from 0.89s to 0.52s.

This improvement is only for linked blocks.
It's more visible for small block sizes.
2022-08-11 17:48:35 -07:00
Yann Collet
92839247b9
Merge pull request #1133 from SpaceIm/fix/cmake-minimum-required-position
cmake: move `cmake_minimum_required()` before `project()`
2022-08-11 17:08:29 -07:00
Yann Collet
86e1ad6752
Merge pull request #1132 from lz4/prepv194
Update documentation in preparation for release v1.9.4
2022-08-11 15:55:41 -07:00
SpaceIm
a28421e129 cmake: move cmake_minimum_required() before project()
cmake_minimum_required() must always be the first instruction of a CMakeLists.
project() should come after cmake_minimum_required() as soon as possible. Therefore option() are moved after project().
2022-08-12 00:09:48 +02:00
Yann Collet
23af1d776d updated man page 2022-08-11 14:33:27 -07:00
Yann Collet
18b293d9fd updated documentation in anticipation for v1.9.4 release 2022-08-11 14:06:30 -07:00
Yann Collet
e691e82728
Merge pull request #1131 from t-mat/doc-freestanding
Doc freestanding
2022-08-11 11:51:43 -07:00
Takayuki Matsuoka
b41ee9935d Add short description of LZ4_FREESTANDING and _DISABLE_MEMORY_ALLOCATION 2022-08-11 16:13:56 +09:00
Takayuki Matsuoka
67c321935b Fix document for LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION in lz4.c 2022-08-11 16:13:24 +09:00
Yann Collet
dee9f95fd9
Merge pull request #1129 from t-mat/disable-memory-alloc-add-doc
Add document for LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION
2022-08-10 10:59:36 -07:00
Yann Collet
70b1201c5b
Merge pull request #1130 from t-mat/freestanding
Add LZ4_FREESTANDING
2022-08-10 10:57:54 -07:00
Takayuki Matsuoka
d0928a7f20 Add short document of LZ4_FREESTANDING to lz4.h 2022-08-11 01:09:53 +09:00
Takayuki Matsuoka
d0460e4aaa Add freestanding test to specific target in ci.yml
The 'freestanding' flag indicates a capability of compiling and executing freestanding code.
Currently it requires Linux, x86_64 and (relatively newer) gcc/g++.
2022-08-08 18:11:05 +09:00
Takayuki Matsuoka
4b74762203 Add test-freestanding to Makefile 2022-08-08 18:04:48 +09:00
Takayuki Matsuoka
aa2699707b Remove test-freestanding from tests/Makefile "all" and "test"
Since test-freestanding is able to be compiled and executed
in specific environment, we should not run it in our standard test.
2022-08-08 18:04:13 +09:00
Takayuki Matsuoka
79b40d61b8 Fix: Ignore exitcode of strace and ltrace 2022-08-07 20:07:01 +09:00
Takayuki Matsuoka
431a793b24 Fix: implement empty _start and main for non-Linux or x86-64 platforms 2022-08-07 19:43:54 +09:00
Takayuki Matsuoka
cdf515c90f Fix: Add extern "C" to all standard C replacement functions 2022-08-07 19:39:50 +09:00
Takayuki Matsuoka
70e76e50b1 Fix for ctocpptest 2022-08-07 19:26:01 +09:00
Takayuki Matsuoka
f88f02f78c Add LZ4_FREESTANDING test on Linux x86-64 platform
Also added tests/Makefile entry "test-freestanding".
2022-08-07 19:08:59 +09:00
Takayuki Matsuoka
50915609a9 Fix: Disable LZ4HC correspond functions when LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION is enabled 2022-08-07 19:07:41 +09:00
Takayuki Matsuoka
721e76d1af Add LZ4_FREESTANDING 2022-08-07 19:06:37 +09:00
Takayuki Matsuoka
e1276aebe2 Fix: Disable prototypes in header file 2022-08-06 19:46:01 +09:00
Takayuki Matsuoka
d9e0741aee Add: Doxygen comment for LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION 2022-08-06 19:45:13 +09:00
Yann Collet
ca26930a91
Merge pull request #1124 from t-mat/compile-time-purge-memalloc-func
Introduce LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION
2022-08-05 21:36:57 +02:00
Yann Collet
f7b1f6b742
Merge pull request #1128 from lz4/decompress_unsafe
Separate support of LZ4_decompress_fast*()
2022-08-03 11:58:34 +02:00
Yann Collet
ccd92cb43b simplify read_variable_length()
single sumtype return value
2022-08-03 02:57:26 +02:00
Yann Collet
63e9a62249 refactor read_variable_length()
updated documentation, more assert(),
overflow detection in 32-bit mode
2022-08-02 15:56:05 +02:00
Yann Collet
7d7cddfac1 remove support of decompress_fast*() from decompress_generic()
since it's now supported by decompress_unsafe().

The goal is to improve maintenability of decompress_generic()
by reducing its complexity.
2022-08-02 14:40:24 +02:00
Yann Collet
efd123e1f1 introduce LZ4_decompress_unsafe_generic()
designed to support specifically LZ4_decompress_fast*() variants.

The end goal is to offload this support from LZ4_decompress_generic
to improve its maintenance.
2022-08-02 12:53:22 +02:00
Takayuki Matsuoka
9173ca37d7 Fix : Internal memory allocation macro names 2022-08-01 06:12:45 +09:00
Yann Collet
65603aeb7c
Merge pull request #1125 from dpelle/fix-typos
fix: various typos
2022-07-31 22:28:34 +02:00
Dominique Pelle
3347485307 fix: various typos 2022-07-31 17:47:00 +02:00