Commit Graph

1387 Commits

Author SHA1 Message Date
Yann Collet
4531637ecd support dictionary compression with independent blocks 2017-08-10 12:12:53 -07:00
Yann Collet
8d597d62d5 fixed gcc prototype warning 2017-08-10 10:28:52 -07:00
Yann Collet
d8aafe2c52 dictionary compression correctly uses compression level
Not obvious : copying the state was copying cdict's compression level
2017-08-10 00:48:19 -07:00
Yann Collet
ca2fb166ab fixed C++ conversion warnings 2017-08-09 18:22:26 -07:00
Yann Collet
bf8daa2fd5 fixed uninitialization error in lz4frame 2017-08-09 18:00:48 -07:00
Yann Collet
31f2cdf4d2 implemented dictionary compression in lz4frame
note : only compression API is implemented and tested
still to do : decompression API
2017-08-09 16:51:19 -07:00
Yann Collet
1d1737aaf2 fixed frameCompress example 2017-08-09 12:29:38 -07:00
Yann Collet
a82dadfbae added dictID inside LZ4F_frameInfo_t
Compressor can set dictID on LZ4F_compressBegin()
Decompressor can retrieve it using LZ4F_getFrameInfo()
2017-08-08 17:43:11 -07:00
Yann Collet
e98a528576 updated Frame specification
Restored DictID field in Frame header
Bumped specification version to v1.6.0
2017-08-08 11:59:57 -07:00
Alex Deymo
76ef6d0ab0 Allow to predefine FORCE_INLINE macro.
FORCE_INLINE macro is defined based on the compiler used. When using
gcc, it will include "__attribute__((always_inline))" forcing gcc to
always inline all the functions marked as FORCE_INLINE. However, this
can cause a performance degradation of about 15%.

This patch allows to set the FORCE_INLINE macro from the compiler
command line to either "static" or "static inline" giving allowing it
to inline functions as needed when performing optimizations.
2017-08-07 10:34:33 +02:00
Yann Collet
9a967030d7 Merge branch 'dev' of github.com:Cyan4973/lz4 into dev 2017-08-06 21:06:14 -07:00
Yann Collet
c5a015bc3f Merge pull request #376 from ido/patch-1
Fix typos preventing installation of static lib.
2017-08-06 21:05:57 -07:00
Yann Collet
4891f909e1 Merge branch 'dev' of github.com:Cyan4973/lz4 into dev 2017-08-06 21:04:54 -07:00
Yann Collet
dba4d70a1d updated man page 2017-08-06 21:04:46 -07:00
Ido Rosen
8aeaf6bb3a Fix typos preventing installation of static lib. 2017-08-01 00:48:58 -04:00
Yann Collet
ac5ed8e4bb Merge pull request #374 from ferdnyc/patch-2
Generate updated man page from Markdown source
2017-07-08 23:01:22 -07:00
FeRD (Frank Dana)
63d5005681 Generate updated man page from Markdown source 2017-07-08 11:56:55 -04:00
Yann Collet
ef06555100 Merge pull request #373 from ferdnyc/patch-2
Fix formatting of concatenation example
2017-07-08 04:48:32 -07:00
FeRD (Frank Dana)
872f767fec Fix formatting of concatenation example
The "Concatenation of .lz4 files" section contains example commands
that are run together on one line, making them invalid. Wrap them
in a code block and clean up surrounding formatting.
2017-07-08 07:43:51 -04:00
Yann Collet
6ad3a983db fix #369
The bug would make the bt search read one byte in an invalid memory region,
and make a branch decision based on its value.
Impact was small (missed compression opportunity).
It only happens in -BD mode, with extDict-prefix overlapping matches.

The bt match search is supposed to work also in extDict mode.
In which case, the match ptr can point into Dict.
When the match was overlapping Dict<->Prefix,
match[matchLength] would end up outside of Dict, in an invalid memory area.
The correction ensures that in such a case,
match[matchLength] ends up at intended location, inside prefix.
2017-06-26 11:29:05 -07:00
Yann Collet
2ef4afeebe Merge pull request #371 from jku/tests-LIBDIR
tests/Makefile: don't use LIBDIR as variable
2017-06-26 05:14:26 -07:00
Jussi Kukkonen
e14b4c5a3e tests/Makefile: don't use LIBDIR as variable
LIBDIR may be overriden with a environment variable: In this case make
clean breaks in tests/. Use another variable name.
2017-06-26 13:32:40 +03:00
Yann Collet
1525fd1f52 Merge pull request #367 from Chocobo1/fallthrough
Fix gcc7 Wimplicit-fallthrough warnings
2017-06-18 23:55:45 -07:00
Yann Collet
7982a905e2 Merge pull request #368 from Chocobo1/readme
Update README.md
2017-06-18 23:53:58 -07:00
Chocobo1
9d453a1885 Update README.md
Update appveyor badge URL
Remove empty line
2017-06-19 14:17:24 +08:00
Chocobo1
a4ec7fa7b7 Fix gcc7 Wimplicit-fallthrough warnings
For the default Wimplicit-fallthrough=3 level,
the comment should start with "fall*"
2017-06-19 13:57:35 +08:00
Yann Collet
89b9f026c9 made level 10 a bit faster
at the expense of a little bit of compression ratio.

Now speed is intermediate on calgary corpus :
25 - 12 - 8 - 3
2017-06-13 17:25:29 -07:00
Yann Collet
a6fd0f9d0b -g compilation flag not by default for lz4 cli 2017-06-13 14:45:48 -07:00
Yann Collet
bfc1806605 clarified lz4frame api comment (#350) 2017-06-13 12:35:00 -07:00
Yann Collet
d18084c655 report where decompression ends (#313)
suggested by @ehem
note : only works for files < 2 GB
2017-06-12 15:47:43 -07:00
Yann Collet
139a387d17 updated NEWS 2017-06-12 10:54:59 -07:00
Yann Collet
0beaa356f2 fixed minor scan-build warning 2017-06-08 15:04:55 -07:00
Yann Collet
775e63ee01 refactored simple_buffer.c example (#363) 2017-06-08 12:51:56 -07:00
Yann Collet
7e15e240ab added a paragraph on overlap matches 2017-06-06 11:20:36 -07:00
Yann Collet
03d8586fca cli accept block sizes with KB / MB prefixes 2017-05-26 14:38:47 -07:00
Yann Collet
8c355d17fb Merge pull request #360 from Chocobo1/md
[Doc] Fix markdown
2017-05-25 19:55:47 +02:00
Chocobo1
1c9d4091da [Doc] Fix markdown 2017-05-26 01:03:05 +08:00
Yann Collet
6614be7cc4 Merge pull request #359 from PierreNav/dev
Add DLL files to the INSTALL target
2017-05-23 19:37:24 +02:00
PierreNav
4e359f5c35 Add DLL files to the INSTALL target 2017-05-23 11:16:15 +02:00
Yann Collet
5c97cdfa0d Merge pull request #352 from lz4/resetDCtx
Reset decompression context
2017-05-11 14:54:00 -07:00
Yann Collet
2600a154be fix (minor) g++ compatibility for frametest 2017-05-10 17:06:31 -07:00
Yann Collet
e60cbb5cac added test for LZ4F_resetDecompressionContext() 2017-05-10 16:28:36 -07:00
Yann Collet
2012e4de9e fixed c_standards tests
and added entry "make list"
2017-05-10 14:51:09 -07:00
Yann Collet
a902127613 bumped version number to 1.8.0
due to addition of prototype
LZ4F_resetDecompressionContext()
2017-05-10 13:27:18 -07:00
Yann Collet
b8575f2d2b updated Makefile
to automatically build manual files with
make all
2017-05-10 13:26:04 -07:00
Yann Collet
fe932c4527 expose LZ4F_resetDecompressionContext() 2017-05-10 12:25:05 -07:00
Yann Collet
1efa48831e minor readability changes 2017-05-02 12:01:13 -07:00
Yann Collet
a8dd86d93e changed macro HEAPMODE into LZ4_HEAPMODE
This macro is susceptible to be triggered from user side
typically through compiler flag (-DLZ4_HEAPMODE=1).
In which case, it makes sense to prefix the macro
since we want to reduce potential side-effect on namespace.
2017-05-01 22:32:21 -07:00
Yann Collet
11bfedb6c3 Merge pull request #349 from svpv/master
clamp hc levels > 12 + minor fixes in comments
2017-04-29 22:33:39 -07:00
Alexey Tourbin
6cf1f7d758 lz4hc.c: clamp compression levels > 12
I noticed that, while 'lz4 -12' works fine, 'lz4 -13' does not compress
at all.

$ cat </etc/passwd |wc -c
2565
$ lz4 -12 </etc/passwd |wc -c
1456
$ lz4 -13 </etc/passwd |wc -c
2584

Perhaps the best way to fix this is to clamp the compression level
in the LZ4HC_compress_generic routine.
2017-04-29 16:33:15 +03:00