Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge pull request #520 from felixhandte/frame-dict-nits | Yann Collet | 2018-04-27 | 1 | -1/+1 |
|\ | | | | | Minor Fixes to Dictionary Preparation in LZ4 Frame | ||||
| * | Avoid Possibly Redundant Table Clears When Loading HC Dict | W. Felix Handte | 2018-04-27 | 1 | -1/+1 |
| | | |||||
* | | ensure favorDecSpeed is properly initialized | Yann Collet | 2018-04-27 | 1 | -5/+5 |
| | | | | | | | | | | | | | | also : - fix a potential malloc error - proper use of ALLOC macro inside lz4hc - update html API doc | ||||
* | | fixed a number of minor cast warnings | Yann Collet | 2018-04-27 | 1 | -5/+4 |
| | | |||||
* | | fasterDecSpeed can be triggered from cli with --favor-decSpeed | Yann Collet | 2018-04-26 | 1 | -1/+1 |
| | | |||||
* | | favorDecSpeed feature can be triggered from lz4frame | Yann Collet | 2018-04-26 | 1 | -2/+6 |
| | | | | | | | | and lz4hc. | ||||
* | | introduced ability to parse for decompression speed | Yann Collet | 2018-04-26 | 1 | -19/+34 |
|/ | | | | | | | triggered through an enum. Now, it's still necessary to properly expose this capability all the way up to the cli. | ||||
* | Remove Debug Log Statements | W. Felix Handte | 2018-04-24 | 1 | -9/+5 |
| | |||||
* | Change vLimit Calculation | W. Felix Handte | 2018-04-21 | 1 | -1/+1 |
| | |||||
* | Remove Redundant Static Assert | W. Felix Handte | 2018-04-21 | 1 | -1/+0 |
| | |||||
* | Simpler loadDict() Reset | W. Felix Handte | 2018-04-20 | 1 | -1/+1 |
| | |||||
* | Tolerate Base Pointer Underflow | W. Felix Handte | 2018-04-20 | 1 | -2/+2 |
| | |||||
* | Don't Segfault on Malloc Failure | W. Felix Handte | 2018-04-20 | 1 | -3/+5 |
| | |||||
* | Sign-Extend -1 to Pointer Width | W. Felix Handte | 2018-04-20 | 1 | -3/+2 |
| | |||||
* | Fix Constant Value | W. Felix Handte | 2018-04-20 | 1 | -1/+1 |
| | |||||
* | Handle Index Underflows Safely | W. Felix Handte | 2018-04-20 | 1 | -8/+7 |
| | |||||
* | Consts and Asserts and Other Minor Nits | W. Felix Handte | 2018-04-20 | 1 | -6/+8 |
| | |||||
* | Add API for Attaching Dictionaries | W. Felix Handte | 2018-04-20 | 1 | -0/+3 |
| | |||||
* | Also Reset the Chain Table | W. Felix Handte | 2018-04-20 | 1 | -1/+1 |
| | |||||
* | Remove inputBuffer from Context, Work Around its Absence | W. Felix Handte | 2018-04-20 | 1 | -6/+7 |
| | |||||
* | Remove Commented Out Support for Match Continuation over Segment Boundary | W. Felix Handte | 2018-04-20 | 1 | -5/+0 |
| | |||||
* | Fix Signedness of Comparison | W. Felix Handte | 2018-04-20 | 1 | -1/+1 |
| | |||||
* | Don't Clear the Dictionary Context Until No Longer Useful | W. Felix Handte | 2018-04-20 | 1 | -2/+5 |
| | |||||
* | Copy DictCtx into Working Context on Inputs Larger than 4 KB | W. Felix Handte | 2018-04-20 | 1 | -1/+12 |
| | |||||
* | Force Inline on HashChain | W. Felix Handte | 2018-04-20 | 1 | -1/+1 |
| | |||||
* | Split DictCtx-using Code Into Separate Inlining Chain | W. Felix Handte | 2018-04-20 | 1 | -20/+74 |
| | |||||
* | Add Fast Reset Paths | W. Felix Handte | 2018-04-20 | 1 | -2/+19 |
| | |||||
* | Remove Match Upper Bounds Check | W. Felix Handte | 2018-04-20 | 1 | -7/+6 |
| | |||||
* | Fix Some Cast/Conversion Warnings | W. Felix Handte | 2018-04-20 | 1 | -9/+11 |
| | |||||
* | Fix Offset Math | W. Felix Handte | 2018-04-20 | 1 | -2/+3 |
| | |||||
* | Reset Stream in LZ4_compress_HC | W. Felix Handte | 2018-04-20 | 1 | -1/+4 |
| | |||||
* | Don't Bother Clearing Chain Table for Working Contexts | W. Felix Handte | 2018-04-20 | 1 | -1/+1 |
| | |||||
* | Push Previous Compression Offsets into the Past | W. Felix Handte | 2018-04-20 | 1 | -11/+21 |
| | |||||
* | Shift Dict Limit Checks out of the Loop | W. Felix Handte | 2018-04-20 | 1 | -2/+2 |
| | |||||
* | Clear Tables on Dict Load | W. Felix Handte | 2018-04-20 | 1 | -0/+7 |
| | |||||
* | Only Perform Dict Lookup if Attempts Remain | W. Felix Handte | 2018-04-20 | 1 | -1/+1 |
| | |||||
* | Avoid Resetting Chain Table | W. Felix Handte | 2018-04-20 | 1 | -1/+0 |
| | |||||
* | Avoid Resetting Hash Table | W. Felix Handte | 2018-04-20 | 1 | -1/+0 |
| | |||||
* | Perform Lookups into the Dictionary Context | W. Felix Handte | 2018-04-20 | 1 | -0/+35 |
| | |||||
* | Set dictCtx Rather than memcpy'ing Ctx | W. Felix Handte | 2018-04-20 | 1 | -0/+1 |
| | |||||
* | Fully Bounds Check Hash Table Reads | W. Felix Handte | 2018-04-20 | 1 | -2/+2 |
| | |||||
* | Add Debug Log Statements to HC | W. Felix Handte | 2018-04-20 | 1 | -2/+16 |
| | |||||
* | modified a few traces for debug | test4973 | 2018-04-12 | 1 | -4/+3 |
| | |||||
* | Merge branch 'dev' into lowAddr | test4973 | 2018-04-04 | 1 | -33/+349 |
|\ | |||||
| * | Replace calloc() Calls With malloc() Where Possible | W. Felix Handte | 2018-03-12 | 1 | -1/+1 |
| | | |||||
| * | merge lz4opt.h into lz4hc.c | Yann Collet | 2018-02-25 | 1 | -4/+327 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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). | ||||
| * | edge case : compress up to end-mflimit (12 bytes) | Yann Collet | 2018-02-24 | 1 | -3/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/) ). | ||||
| * | added one assert() | Yann Collet | 2018-02-20 | 1 | -3/+7 |
| | | | | | | | | suggested by @terrelln | ||||
| * | slight hc speed benefit (~+1%) | Yann Collet | 2018-02-12 | 1 | -21/+10 |
| | | | | | | | | by optimizing countback | ||||
| * | slightly improved hc compression speed (+~1-2%) | Yann Collet | 2018-02-11 | 1 | -1/+1 |
| | | | | | | | | by removing bad candidates faster. |