summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Suppress false positive warning from MSVC (fuzzer.c)Takayuki Matsuoka2022-08-121-2/+10
| | | | | | | 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.
* Suppress false positive warning from MSVC (datagencli.c)Takayuki Matsuoka2022-08-121-28/+4
| | | | | | | | | | | 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.
* Suppress warning from rc.exeTakayuki Matsuoka2022-08-121-0/+4
| | | | | | | | | | 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.
* Suppress false positive warning from MSVCTakayuki Matsuoka2022-08-121-0/+7
| | | | | | | | | | | | 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.
* Update MSVC 2022 project's PlatformToolset to v143Takayuki Matsuoka2022-08-127-28/+28
|
* Clone MSVC project (from VS2017 to VS2022)Takayuki Matsuoka2022-08-129-0/+1410
|
* Merge pull request #1134 from lz4/faster_BD4Yann Collet2022-08-121-16/+22
|\ | | | | faster CLI decompression speed for frames compressed with -BD4 setting
| * faster CLI decompression speed for frames with -BD4 settingYann Collet2022-08-121-16/+22
|/ | | | | | | | | | | 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.
* Merge pull request #1133 from SpaceIm/fix/cmake-minimum-required-positionYann Collet2022-08-121-4/+4
|\ | | | | cmake: move `cmake_minimum_required()` before `project()`
| * cmake: move cmake_minimum_required() before project()SpaceIm2022-08-111-4/+4
| | | | | | | | | | 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().
* | Merge pull request #1132 from lz4/prepv194Yann Collet2022-08-116-73/+172
|\ \ | |/ |/| Update documentation in preparation for release v1.9.4
| * updated man pageYann Collet2022-08-112-8/+16
| |
| * updated documentation in anticipation for `v1.9.4` releaseYann Collet2022-08-115-65/+156
|/
* Merge pull request #1131 from t-mat/doc-freestandingYann Collet2022-08-112-1/+18
|\ | | | | Doc freestanding
| * Add short description of LZ4_FREESTANDING and _DISABLE_MEMORY_ALLOCATIONTakayuki Matsuoka2022-08-111-0/+12
| |
| * Fix document for LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION in lz4.cTakayuki Matsuoka2022-08-111-1/+6
|/
* Merge pull request #1129 from t-mat/disable-memory-alloc-add-docYann Collet2022-08-102-0/+15
|\ | | | | Add document for LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION
| * Fix: Disable prototypes in header fileTakayuki Matsuoka2022-08-061-0/+4
| |
| * Add: Doxygen comment for LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATIONTakayuki Matsuoka2022-08-061-0/+11
| |
* | Merge pull request #1130 from t-mat/freestandingYann Collet2022-08-109-33/+328
|\ \ | |/ |/| Add LZ4_FREESTANDING
| * Add short document of LZ4_FREESTANDING to lz4.hTakayuki Matsuoka2022-08-101-4/+11
| |
| * Add freestanding test to specific target in ci.ymlTakayuki Matsuoka2022-08-081-30/+36
| | | | | | | | | | The 'freestanding' flag indicates a capability of compiling and executing freestanding code. Currently it requires Linux, x86_64 and (relatively newer) gcc/g++.
| * Add test-freestanding to MakefileTakayuki Matsuoka2022-08-081-0/+4
| |
| * Remove test-freestanding from tests/Makefile "all" and "test"Takayuki Matsuoka2022-08-081-2/+2
| | | | | | | | | | Since test-freestanding is able to be compiled and executed in specific environment, we should not run it in our standard test.
| * Fix: Ignore exitcode of strace and ltraceTakayuki Matsuoka2022-08-071-2/+2
| |
| * Fix: implement empty _start and main for non-Linux or x86-64 platformsTakayuki Matsuoka2022-08-071-4/+6
| |
| * Fix: Add extern "C" to all standard C replacement functionsTakayuki Matsuoka2022-08-071-13/+16
| |
| * Fix for ctocpptestTakayuki Matsuoka2022-08-071-13/+16
| |
| * Add LZ4_FREESTANDING test on Linux x86-64 platformTakayuki Matsuoka2022-08-073-3/+244
| | | | | | | | Also added tests/Makefile entry "test-freestanding".
| * Fix: Disable LZ4HC correspond functions when ↵Takayuki Matsuoka2022-08-072-1/+5
| | | | | | | | LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION is enabled
| * Add LZ4_FREESTANDINGTakayuki Matsuoka2022-08-072-1/+26
|/
* Merge pull request #1124 from t-mat/compile-time-purge-memalloc-funcYann Collet2022-08-052-1/+15
|\ | | | | Introduce LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION
| * Fix : Internal memory allocation macro namesTakayuki Matsuoka2022-07-311-6/+3
| |
| * Introduce LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATIONTakayuki Matsuoka2022-07-312-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changeset introduces new compile time switch macro LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION which removes the following functions when it's defined. ``` // lz4.c LZ4_createStream LZ4_freeStream LZ4_createStreamDecode LZ4_freeStreamDecode LZ4_create // legacy // lz4hc.c LZ4_createStreamHC(void) LZ4_freeStreamHC LZ4_createHC // legacy LZ4_freeHC // legacy ``` These functions uses dynamic memory allocation functions such as malloc() and free(). It'll be useful for freestanding environment which doesn't have these allocation functions. Since this change breaks API, this macro is only valid with lz4 as a static linked object.
* | Merge pull request #1128 from lz4/decompress_unsafeYann Collet2022-08-031-134/+233
|\ \ | | | | | | Separate support of LZ4_decompress_fast*()
| * | simplify read_variable_length()Yann Collet2022-08-031-26/+24
| | | | | | | | | | | | single sumtype return value
| * | refactor read_variable_length()Yann Collet2022-08-021-19/+29
| | | | | | | | | | | | | | | updated documentation, more assert(), overflow detection in 32-bit mode
| * | remove support of decompress_fast*() from decompress_generic()Yann Collet2022-08-021-92/+43
| | | | | | | | | | | | | | | | | | | | | since it's now supported by decompress_unsafe(). The goal is to improve maintenability of decompress_generic() by reducing its complexity.
| * | introduce LZ4_decompress_unsafe_generic()Yann Collet2022-08-021-18/+158
|/ / | | | | | | | | | | | | designed to support specifically LZ4_decompress_fast*() variants. The end goal is to offload this support from LZ4_decompress_generic to improve its maintenance.
* | Merge pull request #1125 from dpelle/fix-typosYann Collet2022-07-3113-15/+15
|\ \ | | | | | | fix: various typos
| * | fix: various typosDominique Pelle2022-07-3113-15/+15
|/ /
* | Merge pull request #1123 from t-mat/memfunc-macrosYann Collet2022-07-312-13/+26
|\ \ | | | | | | New macro for memcpy, memmove and memset
| * | New macro for memcpy, memmove and memsetTakayuki Matsuoka2022-07-312-13/+26
| |/ | | | | | | | | | | | | | | This changeset introduces the following external macros. - Add new macro LZ4_memset() which enables to inject external function as memset(). - Similar macro LZ4_memmove() for memmove(). - In same manner, LZ4_memcpy() also can be overriden by external macro.
* | updated LZ4 Block Format documentationYann Collet2022-07-311-67/+144
|/ | | | hopefully answering concerns expressed in #792
* Merge pull request #1122 from lz4/skipCrcYann Collet2022-07-309-25/+75
|\ | | | | Introduce ability to save cpu cycles by disabling checksum validation
| * fixed minor pedantic warningYann Collet2022-07-291-2/+4
| |
| * extend disabling checksum validation to normal lz4 CLI decompressionYann Collet2022-07-292-5/+26
| | | | | | | | | | note : it's unlikely to improve speed, as in most cases I/O is slower than lz4 decompression, but maybe in extreme scenarios, it might show a difference.
| * added options.skipChecksums to local fuzzer testYann Collet2022-07-291-0/+1
| |
| * introduced new `--no-crc` commandYann Collet2022-07-293-0/+6
| | | | | | | | which disables both frame and block checksums.
| * can select validation of CRC during benchmarkYann Collet2022-07-294-8/+18
| | | | | | | | | | on command line, using existing long command --no-frame-crc. Note : it's effectively more than that, since _all_ checksums are disabled.