Max Risuhin
9be9573533
EnableWholeProgramOptimization and UseStaticCRT msbuild custom properties
2017-12-11 14:57:19 +02:00
Yann Collet
6bbe45e1b8
remove register
keyword
...
deprecated in newer C++ versions,
and dubious utility
2017-12-04 17:10:23 -08:00
Yann Collet
de49c5bed9
Merge pull request #426 from aliceatlas/cli_chmod_fix
...
Fix cli sometimes calling UTIL_setFileStat on /dev/null
2017-12-04 14:38:00 -08:00
Alice Atlas
42a31aee50
Fix bug which could sometimes result in the lz4 cli chmodding /dev/null if running as root
2017-12-04 16:07:31 -05:00
Yann Collet
6c94c94d46
minor updates to examples
...
see 810e2ca27b (commitcomment-25810887)
2017-11-24 17:18:46 -08:00
Yann Collet
da8bed4b01
API : changed a few variables' names for clarity
...
updated relevant doc.
This patch has no impact on ABI/API, nor on binary generation.
2017-11-20 10:27:05 -08:00
Yann Collet
b48839b41c
updated NEWS
2017-11-13 15:54:55 -08:00
Yann Collet
dac26084a9
Merge pull request #416 from lz4/newopt
...
Improve Optimal parser
2017-11-09 14:13:30 -08:00
Yann Collet
dc3ed5b6a7
added code comments
2017-11-08 17:56:20 -08:00
Yann Collet
63f6039fb3
added constant TRAILING_LITERALS
...
which is more explicit than its value `3`.
reported by @terrelln
2017-11-08 17:47:24 -08:00
Yann Collet
f93b595718
lz4opt: simplified match finder invocation to LZ4HC_FindLongerMatch()
2017-11-08 17:11:51 -08:00
Yann Collet
fa03a9d3d9
added code comments
2017-11-08 08:42:59 -08:00
Yann Collet
b07d36245a
fixed LZ4HC_reverseCountPattern()
...
for multi-bytes patterns
(which is not useful for the time being)
2017-11-07 17:58:59 -08:00
Yann Collet
897f5e9834
removed the ip++ at the beginning of block
...
The first byte used to be skipped
to avoid a infinite self-comparison.
This is no longer necessary, since init() ensures that index starts at 64K.
The first byte is also useless to search when each block is independent,
but it's no longer the case when blocks are linked.
Removing the first-byte-skip saves
about 10 bytes / MB on files compressed with -BD4 (linked blocks 64Kb),
which feels correct as each MB has 16 blocks of 64KB.
2017-11-07 17:37:31 -08:00
Yann Collet
e6365b1854
Merge pull request #418 from lz4/fasterCount
...
faster LZ4_count()
2017-11-07 12:09:32 -08:00
Yann Collet
71fd08c17d
removed legacy version of LZ4HC_InsertAndFindBestMatch()
2017-11-07 11:33:40 -08:00
Yann Collet
c49f66f2ad
ensure pattern
is a 1-byte repetition
2017-11-07 11:29:28 -08:00
Yann Collet
5512a5f1a9
removed useless (1 && ...)
condition
...
as reported by @terrelln
2017-11-07 11:22:57 -08:00
Yann Collet
7130bfe573
improved LZ4HC_reverseCountPattern() :
...
works for any repetitive pattern of length 1, 2 or 4 (but not 3!)
works for any endianess
2017-11-07 11:05:48 -08:00
Yann Collet
a004c1fbee
fixed LZ4HC_countPattern()
...
- works with byte values other than `0`
- works for any repetitive pattern of length 1, 2 or 4 (but not 3!)
- works for little and big endian systems
- preserve speed of previous implementation
2017-11-07 10:53:29 -08:00
Yann Collet
9221419c6f
added LZ4_FORCEINLINE to counter gcc regression
...
as recommended by @terrelln
2017-11-06 17:29:27 -08:00
Yann Collet
d51f046628
2-stages LZ4_count
...
separate first branch from the rest of the compare loop
to get dedicated prediction.
measured a 3-4% compression speed improvement.
2017-11-06 15:42:50 -08:00
Yann Collet
ce8393e8d7
build: minor : make lz4
doesn't compile liblz4 anymore
...
since it's not needed.
2017-11-06 15:20:08 -08:00
Yann Collet
263e398a52
Merge pull request #417 from sylvestre/dev
...
When building with a C++ compiler, remove the 'register' keyword to silent a warning
2017-11-06 13:56:44 -08:00
Sylvestre Ledru
4fed595dac
Only ignore with C++17
2017-11-06 16:16:02 +01:00
Sylvestre Ledru
cca7618f09
When building with a C++ compiler, remove the 'register' keyword to silent a warning
...
For example, with clang:
lz4.c:XXX:36: error: 'register' storage class specifier is deprecated and incompatible with C++17 [-Werror,-Wdeprecated-register]
static unsigned LZ4_NbCommonBytes (register reg_t val)
^~~~~~~~~
2017-11-05 11:48:03 +01:00
Yann Collet
aa99163752
fixed minor static analyzer warning
...
dead assignment
2017-11-03 12:33:55 -07:00
Yann Collet
89821ac7a1
minor comment edit
2017-11-03 11:49:56 -07:00
Yann Collet
1025546347
unified HC levels
...
LZ4_setCompressionLevel() can be users accross the whole range of HC levels
No more transition issue between Optimal and HC modes
2017-11-03 11:28:28 -07:00
Yann Collet
a1f4a0d983
moved ctx->end handling from parsers
...
responsibility better handled one layer above (LZ4HC_compress_generic())
2017-11-03 10:48:55 -07:00
Yann Collet
c9bbad53ff
removed ctx->searchNum
...
nbSearches now transmitted directly as function parameter
easier to track and debug
2017-11-03 10:30:52 -07:00
Yann Collet
e2eca62046
LZ4_compress_HC_continue_destSize() now compatible with optimal parser
...
levels 11+
2017-11-03 02:03:19 -07:00
Yann Collet
3b222d2d96
removes matches[] table
...
saves stack space
clearer match finder interface (no more table to fill)
2017-11-03 01:37:43 -07:00
Yann Collet
320e1d51ac
removed useless parameter from hash chain matchfinder
...
used to be present for compatibility with binary tree matchfinder
2017-11-03 01:20:30 -07:00
Yann Collet
81667a1e96
removed code and reference to binary tree match finder
...
reduced size of LZ4HC state
2017-11-03 01:18:12 -07:00
Yann Collet
82c1aed419
improved level 11 speed
2017-11-03 00:59:05 -07:00
Yann Collet
890c0553d0
optimized skip strategy for level 12
2017-11-03 00:15:52 -07:00
Yann Collet
05d78eb817
new level 11 uses 512 attempts
2017-11-02 19:50:08 -07:00
Yann Collet
a1c5343d89
more generic skip formula
...
improving speed
2017-11-02 18:54:18 -07:00
Yann Collet
e06cb03c11
small adaptations for intermediate level 11
2017-11-02 16:25:10 -07:00
Yann Collet
4b81885800
partial search, while preserving compression ratio
...
tag interesting places
2017-11-02 15:37:18 -07:00
Yann Collet
bd992f12e4
searching match leading strictly farther does not work
...
sometimes, it's better to re-use same match but start it later,
in order to get shorter matchlength code
2017-11-02 15:05:45 -07:00
Yann Collet
8e16eb0cd1
fixed last lost bytes in maximal mode
...
even gained 2 bytes on calgary.tar...
added conditional traces `g_debuglog_enable`
2017-11-02 14:53:06 -07:00
Yann Collet
0ff4df1b94
changed strategy : opt[] path is complete after each match
...
previous strategy would leave a few "bad choices"
on the ground they would be fixed later,
but that requires passing through each position to make the fix
and cannot give the end position of the last useful match.
2017-11-02 13:44:57 -07:00
Yann Collet
cc4a109b0d
Merge pull request #415 from lz4/fasterDecodingXp
...
Faster decoding xp
2017-11-01 09:58:49 -07:00
Yann Collet
15b0d229c1
Merge branch 'dev' into btopt
2017-10-31 17:55:01 -07:00
Yann Collet
a5731d6b26
minor change, to help store forwarding
...
in a marginal case (offset==4)
2017-10-31 15:51:56 -07:00
Yann Collet
9378f76e41
extended shortcut match length to 18
2017-10-31 14:20:25 -07:00
Yann Collet
07c91d9dba
Merge pull request #408 from terrelln/time
...
[bench] Use higher resolution timer on POSIX
2017-10-31 13:49:29 -07:00
Yann Collet
ace334a4c9
minor : coding style : use ML_MASK constant
2017-10-31 12:22:15 -07:00