summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* fix #482: change CFLAGS to CXXFLAGSYann Collet2018-03-091-4/+4
| | | | as they are associated with $(CXX)
* fix #481: ensure liblz4.a dependency for `make all`Yann Collet2018-03-091-1/+2
| | | | | | | | | `make all` will trigger several sub-directory makefiles. several of them need `liblz4.a`. When built with `-j#`, there are several concurrent liblz4.a built Make liblz4.a a dependency, which is built once, before moving to sub-directory Makefiles
* updated LZ4F_compressBound() documentationYann Collet2018-02-282-6/+12
| | | | to clarify it includes potentially buffered data.
* Merge pull request #479 from lz4/checkYann Collet2018-02-272-16/+21
|\ | | | | added target make check
| * added target make checkYann Collet2018-02-262-16/+21
| | | | | | | | | | | | | | | | | | | | according to GNU Makefile conventions, the Makefile should feature a make check target to self-test the generated program: https://www.gnu.org/prep/standards/html_node/Standard-Targets.html . this is much less thorough and less taxing than `make test`, and can be run on any target in a reasonable timeframe (several seconds).
* | Merge pull request #478 from lz4/mergeOptYann Collet2018-02-264-362/+329
|\ \ | |/ |/| merge lz4opt.h into lz4hc.c
| * merge lz4opt.h into lz4hc.cYann Collet2018-02-254-362/+329
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Having a dedicated file for optimal parser made sense during its creation, it allowed Przemyslaw to work more freely on lz4opt, with less dependency on lz4hc, moreover, the optimal parser was more complex, with its own search functions. Since the optimal was rewritten last year, it's now a lot lighter. It makes more sense now to integrate it directly inside lz4hc.c, making it easier to edit (editors are a bit "lost" inside a `*.h` dependent on its #include position), it also reduces the number of files in the project, which fits pretty well with lz4 objectives. (adding lz4hc requires "just" lz4hc.h and lz4hc.c).
* | bumped version number to v1.8.2Yann Collet2018-02-264-5/+10
| | | | | | | | updated NEWS was current progresses
* | update code comment on LZ4 streaming interfaceYann Collet2018-02-262-21/+23
| | | | | | | | | | notably regarding LZ4_saveDict() speed advantage, answering #477.
* | Merge pull request #476 from lz4/mflimitYann Collet2018-02-263-9/+10
|\ \ | |/ | | edge case fix : compress up to end-mflimit (12 bytes)
| * edge case : compress up to end-mflimit (12 bytes)Yann Collet2018-02-243-9/+10
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The LZ4 block format specification states that the last match must start at a minimum distance of 12 bytes from the end of the block. However, out of an abundance of caution, the reference implementation would actually stop searching matches at 13 bytes from the end of the block. This patch fixes this small detail. The new version is now able to properly compress a limit case such as `aaaaaaaabaaa\n` as reported by Gao Xiang (@hsiangkao). Obviously, it doesn't change a lot of things. This is just one additional match candidate per block, with a maximum match length of 7 (since last 5 bytes must remain literals). With default policy, blocks are 4 MB long, so it doesn't happen too often Compressing silesia.tar at default level 1 saves 5 bytes (100930101 -> 100930096). At max level 12, it saves a grand 16 bytes (77389871 -> 77389855). The impact is a bit more visible when blocks are smaller, hence more numerous. For example, compressing silesia with blocks of 64 KB (using -12 -B4D) saves 543 bytes (77304583 -> 77304040). So the smaller the packet size, the more visible the impact. And it happens we have a ton of scenarios with little blocks using LZ4 compression ... And a useless "hooray" sidenote : the patch improves the LZ4 compression record of silesia (using -12 -B7D --no-frame-crc) by 16 bytes (77270672 -> 77270656) and the record on enwik9 by 44 bytes (371680396 -> 371680352) (previously claimed by [smallz4](http://create.stephan-brumme.com/smallz4/) ).
* Merge pull request #475 from lz4/betterBenchYann Collet2018-02-212-29/+46
|\ | | | | Better bench measurements for small inputs
| * use TIMELOOP_NANOSEC,Yann Collet2018-02-201-2/+2
| | | | | | | | as suggested by @terrelln
| * fixed minor conversion warningYann Collet2018-02-201-2/+2
| |
| * ensure bench speed measurement is more accurate for small inputsYann Collet2018-02-202-24/+41
| | | | | | | | | | | | | | | | | | | | | | | | Previous method would produce too many time() invocations, becoming a significant fraction of workload measured. The new strategy is to use time() only once per batch, and dynamically resize batch size so that each round lasts approximately 1 second. This only matters for small inputs. Measurement for large files (such as silesia.tar) are much less impacted (though decoding speed is so fast that even medium-size files will notice an improvement).
| * update bench.c to use less time invocationsYann Collet2018-02-201-9/+9
| | | | | | | | translating into more accurate speed measurements for small sources
* | Merge pull request #471 from lz4/fasterHCYann Collet2018-02-211-25/+18
|\ \ | |/ |/| Faster HC
| * added one assert()Yann Collet2018-02-201-3/+7
| | | | | | | | suggested by @terrelln
| * slight hc speed benefit (~+1%)Yann Collet2018-02-121-21/+10
| | | | | | | | by optimizing countback
| * slightly improved hc compression speed (+~1-2%)Yann Collet2018-02-111-1/+1
| | | | | | | | by removing bad candidates faster.
* | update API doc regarding double-buffer strategyYann Collet2018-02-182-2/+6
| | | | | | | | answering question #473
* | Merge pull request #472 from hobomind/devYann Collet2018-02-141-1/+1
|\ \ | | | | | | fix: missed semicolon at programs/lz4io.c:954
| * | fix: missed semicolon at programs/lz4io.c:954hobomind2018-02-141-1/+1
|/ /
* | Merge pull request #470 from lz4/fasterDecYann Collet2018-02-131-10/+8
|\ \ | |/ |/| Faster decoding speed
| * removed LZ4_copy8Yann Collet2018-02-121-11/+6
| | | | | | | | better use memcpy() directly
| * slightly improved decompression speed (~+1-2%)Yann Collet2018-02-111-2/+5
|/ | | | by making shortcut slightly more common
* Merge pull request #469 from mathstuf/intel-windows-packing-selectionYann Collet2018-02-082-2/+2
|\ | | | | intel: do not use __attribute__((packed)) on Windows
| * intel: do not use __attribute__((packed)) on WindowsBen Boeckel2018-02-082-2/+2
|/ | | | | | | On Windows, the Intel compiler is closer to MSVC rather than GCC and does not support the GCC attribute syntax. Fixes #468
* fixed code comment as detected in #466Yann Collet2018-02-072-59/+61
| | | | | Also clarified a few API code comments and updated associated html documentation
* Merge pull request #461 from terrelln/docsYann Collet2018-02-021-2/+4
|\ | | | | Clarify the requirements of the LZ4 streaming API
| * Clarify the requirements of the LZ4 streaming APINick Terrell2018-02-021-2/+4
|/
* Merge pull request #458 from lz4/ff161Yann Collet2018-02-011-4/+12
|\ | | | | Minor change to LZ4 Frame format specification
| * fix typos as suggested by @psteinbYann Collet2018-01-311-2/+2
| |
| * proposed a minor change to LZ4 Frame format specificationYann Collet2018-01-311-4/+12
| | | | | | | | add new terms "LZ4 Frame Header" and "LZ4 Frame Footer"
* | Merge pull request #460 from lz4/frameCompressYann Collet2018-02-017-220/+308
|\ \ | | | | | | refactored frameCompress.c example
| * | modified decompression part of frameCompress.cYann Collet2018-02-011-99/+138
| | | | | | | | | | | | using same logic as prior modifications for compression part.
| * | refactored ressource allocation to avoid gotoYann Collet2018-02-011-23/+12
| | |
| * | examples/Makefile : changed dependency orderYann Collet2018-02-012-10/+10
| | | | | | | | | | | | static library *.a must come after source files *.c on linux
| * | Merge branch 'dev' into frameCompressYann Collet2018-02-014-47/+42
| |\ \ | |/ / |/| |
* | | travisci : ensure "clean" betweeb 2 testsYann Collet2018-02-011-1/+1
| | |
* | | modified gpptest recipeYann Collet2018-02-011-11/+8
| | |
* | | Merge pull request #459 from Tyilo/clang-stdc++14Yann Collet2018-02-012-35/+33
|\ \ \ | | | | | | | | Ensure LZ4_DEPRECATED("...") is before LZ4LIB_API
| * | | Always prefer c++14 attributes if availableAsger Hautop Drewsen2018-01-311-4/+2
| | | |
| * | | Ensure LZ4_DEPRECATED("...") is before LZ4LIB_APIAsger Hautop Drewsen2018-01-312-31/+31
|/ / / | | | | | | | | | | | | | | | When using clang++ with std c++14 or c++17 you would get the error "an attribute list cannot appear here" when including "lz4.h" as the visibility attribute is before the c++ attribute. This ensures that the [[deprecated]] c++ attribute is before everything else in the function declarations.
| * | refactored frameCompress.c example codeYann Collet2018-02-011-51/+81
| | | | | | | | | | | | | | | | | | compression function returns a struct. Also : nested structure ressources->computation to make it easier to manage multiple exit points.
| * | fixed read size, as noticed by @terrellnYann Collet2018-02-011-1/+1
| | |
| * | ensure proper dependencies are built for /examplesYann Collet2018-02-011-19/+25
| | | | | | | | | | | | also : use liblz4.a static lib to share compilation time
| * | refactored frameCompress exampleYann Collet2018-01-316-96/+120
|/ / | | | | | | to better reflect LZ4F API usage.
* | Merge pull request #455 from terrelln/hc-defaultYann Collet2018-01-221-1/+1
|\ \ | |/ |/| [lz4hc] level == 0 means default, not level 1
| * [lz4hc] level == 0 means default, not level 1Nick Terrell2018-01-221-1/+1
|/