platform/upstream/lz4.git
5 years agoMerge pull request #698 from lz4/tidy
Yann Collet [Wed, 24 Apr 2019 18:50:50 +0000 (11:50 -0700)]
Merge pull request #698 from lz4/tidy

several minor style changes recommended by clang-tidy

5 years agoseveral minor style changes recommended by clang-tidy
Yann Collet [Wed, 24 Apr 2019 17:03:02 +0000 (10:03 -0700)]
several minor style changes recommended by clang-tidy

5 years agoMerge pull request #697 from ldv-alt/fixes/test-amalgamation
Yann Collet [Wed, 24 Apr 2019 00:20:03 +0000 (17:20 -0700)]
Merge pull request #697 from ldv-alt/fixes/test-amalgamation

Fix test-amalgamation

5 years agoMerge pull request #696 from lz4/mactest
Yann Collet [Tue, 23 Apr 2019 22:08:46 +0000 (15:08 -0700)]
Merge pull request #696 from lz4/mactest

Fix dynamic library compilation on Mac OS-X

5 years agotest-amalgamation: split the rule
Dmitry V. Levin [Tue, 23 Apr 2019 21:18:11 +0000 (21:18 +0000)]
test-amalgamation: split the rule

Change test-amalgamation to follow each-rule-makes-a-single-target idiom.

Fixes: a7e8d394 ("[amalgamation] add test")

5 years agotest-amalgamation: fix compilation options
Dmitry V. Levin [Tue, 23 Apr 2019 21:18:11 +0000 (21:18 +0000)]
test-amalgamation: fix compilation options

Use the same compilation options to compile lz4_all.c and other object files.

Fixes: a7e8d394 ("[amalgamation] add test")

5 years agotest-amalgamation: use a single cat command
Dmitry V. Levin [Tue, 23 Apr 2019 21:18:11 +0000 (21:18 +0000)]
test-amalgamation: use a single cat command

Use the list of prerequisites instead of listing those files manually,
this way they will never fall out of sync.

Also update the amalgamation example to use a single cat command.

Fixes: a7e8d394 ("[amalgamation] add test")
Fixes: b192c86b ("[amalgamation] lz4frame.c")

5 years agotest-amalgamation: fix the list of prerequisites
Dmitry V. Levin [Tue, 23 Apr 2019 21:18:11 +0000 (21:18 +0000)]
test-amalgamation: fix the list of prerequisites

Add $(LZ4DIR)/lz4frame.c to the list of prerequisites as the rule uses
that file.

Fixes: b192c86b ("[amalgamation] lz4frame.c")

5 years agoMerge pull request #695 from lembacon/makefile-os
Yann Collet [Tue, 23 Apr 2019 21:09:40 +0000 (14:09 -0700)]
Merge pull request #695 from lembacon/makefile-os

lib/Makefile: Fix detection of `Darwin`.

5 years agoadded library build test on Mac OS-X
Yann Collet [Tue, 23 Apr 2019 19:29:39 +0000 (12:29 -0700)]
added library build test on Mac OS-X

5 years agolib/Makefile: Fix detection of `Darwin`.
Chongyu Zhu [Tue, 23 Apr 2019 19:13:19 +0000 (03:13 +0800)]
lib/Makefile: Fix detection of `Darwin`.

5 years agoMerge pull request #693 from JPeterMugaas/master
Yann Collet [Tue, 23 Apr 2019 16:20:41 +0000 (09:20 -0700)]
Merge pull request #693 from JPeterMugaas/master

More build imrpvements

5 years agoMore build imrpvements
JPeterMugaas [Tue, 23 Apr 2019 11:44:00 +0000 (07:44 -0400)]
More build imrpvements
Moved a few other tests to Makefiles.inc.  Other things might need to go there.
Made a test for symlink appropriateness.  Windows can NOT handle them the same way Unix-like operating systems do (if at all).  This is mostly the same as the Visual C projects.
embed version info into .dll and .exes that are redistributed.

5 years agoMerge branch 'dev' of github.com:Cyan4973/lz4 into dev
Yann Collet [Tue, 23 Apr 2019 00:45:40 +0000 (17:45 -0700)]
Merge branch 'dev' of github.com:Cyan4973/lz4 into dev

5 years agoupdated NEWS for v1.9.1
Yann Collet [Tue, 23 Apr 2019 00:45:24 +0000 (17:45 -0700)]
updated NEWS for v1.9.1

5 years agoMerge pull request #691 from lz4/list
Yann Collet [Tue, 23 Apr 2019 00:43:01 +0000 (17:43 -0700)]
Merge pull request #691 from lz4/list

--list

5 years agofix: no leak when LZ4F_dctx creation fails
Yann Collet [Mon, 22 Apr 2019 23:06:22 +0000 (16:06 -0700)]
fix: no leak when LZ4F_dctx creation fails

strange, because it previous implementation, it would `exit()`,
so it should not matter ...

5 years agoMerge pull request #689 from JPeterMugaas/jpm-makefile
Yann Collet [Mon, 22 Apr 2019 22:29:50 +0000 (15:29 -0700)]
Merge pull request #689 from JPeterMugaas/jpm-makefile

Jpm makefile - as described in https://github.com/lz4/lz4/issues/688

5 years agoupdated code comments
Yann Collet [Mon, 22 Apr 2019 22:24:44 +0000 (15:24 -0700)]
updated code comments

5 years ago--list gives block type
Yann Collet [Mon, 22 Apr 2019 22:14:53 +0000 (15:14 -0700)]
--list gives block type

5 years ago--list can resume after a failed file
Yann Collet [Mon, 22 Apr 2019 22:01:20 +0000 (15:01 -0700)]
--list can resume after a failed file

5 years agoMake programs/Makefile use the includes.
JPeterMugaas [Mon, 22 Apr 2019 21:38:43 +0000 (17:38 -0400)]
Make programs/Makefile use the includes.

5 years agorefactored --list function
Yann Collet [Mon, 22 Apr 2019 21:01:19 +0000 (14:01 -0700)]
refactored --list function

better handling of special conditions,
better scoping of variables.

Also : updated man page

5 years agoFix a test for mingw
JPeterMugaas [Mon, 22 Apr 2019 20:06:04 +0000 (16:06 -0400)]
Fix a test for mingw

5 years agoTry to put some tests I made in ONE place. I also moved a test for "install" in...
JPeterMugaas [Mon, 22 Apr 2019 19:48:48 +0000 (15:48 -0400)]
Try to put some tests I made in ONE place.  I also moved a test for "install" in one place to try to isolate it.

5 years agofixed C90 compliance
Yann Collet [Mon, 22 Apr 2019 19:27:25 +0000 (12:27 -0700)]
fixed C90 compliance

re-structure code, have everything into a single section of lz4io.c

5 years agoMerge pull request #690 from gabrielstedman/dev
Yann Collet [Mon, 22 Apr 2019 19:19:28 +0000 (12:19 -0700)]
Merge pull request #690 from gabrielstedman/dev

Implement --list

5 years agoInitial commits from diff I submitted earlier
JPeterMugaas [Mon, 22 Apr 2019 17:48:59 +0000 (13:48 -0400)]
Initial commits from diff I submitted earlier

5 years agoFR #598 - Correctly initialize cfinfo & cast malloc res to (char*)
gabrielstedman [Mon, 22 Apr 2019 10:07:08 +0000 (11:07 +0100)]
FR #598 - Correctly initialize cfinfo & cast malloc res to (char*)

5 years agoFR #598 - Make fileSize unsigned long long
gabrielstedman [Mon, 22 Apr 2019 09:35:29 +0000 (10:35 +0100)]
FR #598 - Make fileSize unsigned long long

5 years agoFR #598 - Move LZ4F_compFileInfo_t def to lz4frame.h discard output_file
gabrielstedman [Mon, 22 Apr 2019 08:58:26 +0000 (09:58 +0100)]
FR #598 - Move LZ4F_compFileInfo_t def to lz4frame.h discard output_file
assert if in om_list mode

5 years agoMerge https://github.com/lz4/lz4 into dev
gabrielstedman [Mon, 22 Apr 2019 08:56:51 +0000 (09:56 +0100)]
Merge https://github.com/lz4/lz4 into dev

5 years agoFR #598 - Make LZ4IO_getCompressedFileInfo internal and reword func
gabrielstedman [Mon, 22 Apr 2019 08:00:20 +0000 (09:00 +0100)]
FR #598 - Make LZ4IO_getCompressedFileInfo internal and reword func

5 years agoMerge pull request #686 from lz4/clistdout
Yann Collet [Mon, 22 Apr 2019 03:20:41 +0000 (20:20 -0700)]
Merge pull request #686 from lz4/clistdout

cli: warning for stdout as default output

5 years agoensure tests work when `stdout` is not the console
Yann Collet [Mon, 22 Apr 2019 00:01:03 +0000 (17:01 -0700)]
ensure tests work when `stdout` is not the console

ensure this case is continuously tested on travis.

Update documentation on implicit output,
invite to not rely on implicit output in scripts.

5 years agotests/Makefile : created CMP variable
Yann Collet [Sun, 21 Apr 2019 19:42:13 +0000 (12:42 -0700)]
tests/Makefile : created CMP variable

for potential redirection, if need be.

note : should probably converge all comparison operations onto CMP

5 years agoFR #598 Improve initial design, test mallocs, support C90.
gabrielstedman [Sun, 21 Apr 2019 16:43:57 +0000 (17:43 +0100)]
FR #598 Improve initial design, test mallocs, support C90.

5 years agocorrectly use unisgned int for index
gabrielstedman [Sat, 20 Apr 2019 23:20:38 +0000 (00:20 +0100)]
correctly use unisgned int for index

5 years agoAdd --list option to display compressed file information.
gabrielstedman [Sat, 20 Apr 2019 21:06:10 +0000 (22:06 +0100)]
Add --list option to display compressed file information.

5 years agocli: display a warning whenever default output is stdout while input != stdin
Yann Collet [Sat, 20 Apr 2019 00:08:40 +0000 (17:08 -0700)]
cli: display a warning whenever default output is stdout while input != stdin

This behavior has been preserved for compatibility with existing ecosystem.
But it's problematic, as some environment start `lz4` without identifying stdout as console by default,
leading to a change of behavior for a same line of script.

A more sensible policy would be to default to stdout only when input is stdin.

Soft change for the time being : keep the behavior, just print a warning message.
User should prefer `-c` to explicitly select `stdout`.

Also : updated tests in Makefile to explicitly select `stdout` with `-c`.

5 years agobumped version number
Yann Collet [Fri, 19 Apr 2019 18:54:01 +0000 (11:54 -0700)]
bumped version number

to v1.9.1

5 years agoMerge pull request #684 from lz4/cxxlz4f
Yann Collet [Fri, 19 Apr 2019 18:51:29 +0000 (11:51 -0700)]
Merge pull request #684 from lz4/cxxlz4f

lz4frame: initializers compatibility with C++

5 years agolz4frame: initializers compatibility with C++
Yann Collet [Fri, 19 Apr 2019 17:23:50 +0000 (10:23 -0700)]
lz4frame: initializers compatibility with C++

fix #679, reported by @degski

5 years agoMerge pull request #683 from lz4/fuzasan
Yann Collet [Fri, 19 Apr 2019 03:57:56 +0000 (20:57 -0700)]
Merge pull request #683 from lz4/fuzasan

fixed read-after input in LZ4_decompress_safe()

5 years agoMerge pull request #682 from lz4/visual
Yann Collet [Fri, 19 Apr 2019 01:51:28 +0000 (18:51 -0700)]
Merge pull request #682 from lz4/visual

fix minor Visual warnings

5 years agofixed read-after input in LZ4_decompress_safe()
Yann Collet [Fri, 19 Apr 2019 01:50:51 +0000 (18:50 -0700)]
fixed read-after input in LZ4_decompress_safe()

5 years agoensure list of names is large enough
Yann Collet [Fri, 19 Apr 2019 00:26:01 +0000 (17:26 -0700)]
ensure list of names is large enough

5 years agofuzzer : reduced stack usage
Yann Collet [Fri, 19 Apr 2019 00:12:14 +0000 (17:12 -0700)]
fuzzer : reduced stack usage

5 years agofuzzer: reduce stack usage to please Visual static analyzer
Yann Collet [Thu, 18 Apr 2019 23:41:27 +0000 (16:41 -0700)]
fuzzer: reduce stack usage to please Visual static analyzer

5 years agoaddress a few minor Visual warnings
Yann Collet [Thu, 18 Apr 2019 23:06:02 +0000 (16:06 -0700)]
address a few minor Visual warnings

and created target cxx17build

5 years agoMerge pull request #678 from lz4/decFast
Yann Collet [Thu, 18 Apr 2019 21:29:20 +0000 (14:29 -0700)]
Merge pull request #678 from lz4/decFast

Fix out-of-bound read in LZ4_decompress_fast()

5 years agofix several minor static analyzer warnings
Yann Collet [Thu, 18 Apr 2019 19:05:50 +0000 (12:05 -0700)]
fix several minor static analyzer warnings

5 years agofuzzer: fixed scan-build leak warning
Yann Collet [Thu, 18 Apr 2019 17:38:51 +0000 (10:38 -0700)]
fuzzer: fixed scan-build leak warning

the program exit(),
so there is no need to track and dealloc every buffer.

5 years agofuzzer: fix explicit cast for C++
Yann Collet [Wed, 17 Apr 2019 22:44:14 +0000 (15:44 -0700)]
fuzzer: fix explicit cast for C++

5 years agore-enable FORCE_INLINE
Yann Collet [Wed, 17 Apr 2019 22:33:37 +0000 (15:33 -0700)]
re-enable FORCE_INLINE

was disabled for tests

5 years agofix out-of-bound read within LZ4_decompress_fast()
Yann Collet [Wed, 17 Apr 2019 22:01:53 +0000 (15:01 -0700)]
fix out-of-bound read within LZ4_decompress_fast()

and deprecate LZ4_decompress_fast(),
with deprecation warnings enabled by default.

Note that, as a consequence of the fix,
LZ4_decompress_fast is now __slower__ than LZ4_decompress_safe().
That's because, since it doesn't know the input buffer size,
it must progress more cautiously into the input buffer
to ensure to out-of-bound read.

5 years agofuzzer: added tests to detect LZ4_decompress_fast() out of bound read
Yann Collet [Wed, 17 Apr 2019 20:31:24 +0000 (13:31 -0700)]
fuzzer: added tests to detect LZ4_decompress_fast() out of bound read

5 years agoMerge pull request #674 from nrgiii/dev
Yann Collet [Wed, 17 Apr 2019 17:43:38 +0000 (10:43 -0700)]
Merge pull request #674 from nrgiii/dev

Fix

5 years agoMerge branch 'fuzzerAix' into dev
Norm Green [Wed, 17 Apr 2019 16:35:18 +0000 (09:35 -0700)]
Merge branch 'fuzzerAix' into dev

5 years agoFix AIX errors/warnings
Norm Green [Wed, 17 Apr 2019 16:20:09 +0000 (09:20 -0700)]
Fix AIX errors/warnings

5 years agofixed version number for lz4hc
Yann Collet [Wed, 17 Apr 2019 03:46:04 +0000 (20:46 -0700)]
fixed version number for lz4hc

5 years agoMerge pull request #673 from lz4/dev
Yann Collet [Tue, 16 Apr 2019 20:55:28 +0000 (13:55 -0700)]
Merge pull request #673 from lz4/dev

minor update for v1.9.0

5 years agominor benchmark update
Yann Collet [Tue, 16 Apr 2019 18:52:54 +0000 (11:52 -0700)]
minor benchmark update

was using wrong memory timing

5 years agoensure consistent definition and usage of FREEMEM
Yann Collet [Tue, 16 Apr 2019 18:26:03 +0000 (11:26 -0700)]
ensure consistent definition and usage of FREEMEM

as suggested by @sloutsky in #671

5 years agominor news update
Yann Collet [Tue, 16 Apr 2019 18:20:31 +0000 (11:20 -0700)]
minor news update

for msys2

5 years agoMerge pull request #670 from lz4/dev
Yann Collet [Tue, 16 Apr 2019 17:07:41 +0000 (10:07 -0700)]
Merge pull request #670 from lz4/dev

v1.9.0

5 years agoupdated NEWS for v1.9.0
Yann Collet [Tue, 16 Apr 2019 00:30:31 +0000 (17:30 -0700)]
updated NEWS for v1.9.0

5 years agoMerge pull request #669 from lz4/fixframe
Yann Collet [Mon, 15 Apr 2019 22:32:03 +0000 (15:32 -0700)]
Merge pull request #669 from lz4/fixframe

Fix lz4frame inefficiency

5 years agosimplified output_directive
Yann Collet [Mon, 15 Apr 2019 21:13:10 +0000 (14:13 -0700)]
simplified output_directive

5 years agofix comma for pedantic
Yann Collet [Mon, 15 Apr 2019 18:22:25 +0000 (11:22 -0700)]
fix comma for pedantic

5 years agoMerge branch 'dev' into fixframe
Yann Collet [Mon, 15 Apr 2019 18:18:33 +0000 (11:18 -0700)]
Merge branch 'dev' into fixframe

5 years agoadded a fake initialization to please an analyzer
Yann Collet [Mon, 15 Apr 2019 18:17:35 +0000 (11:17 -0700)]
added a fake initialization to please an analyzer

which is unable to understand that the variable is necessarily initialized
in spite of an assert just before.

5 years agofix fuzzer tests on dirty context
Yann Collet [Mon, 15 Apr 2019 18:12:54 +0000 (11:12 -0700)]
fix fuzzer tests on dirty context

context is no longer dirty after a failed compressed block.
Actually, all indexes are fine.
It remains compatible with continued streaming, and reset*_fast().

5 years agounified limitedOutput_directive
Yann Collet [Mon, 15 Apr 2019 18:09:56 +0000 (11:09 -0700)]
unified limitedOutput_directive

between lz4.c and lz4hc.c .
was left in a strange state after the "amalgamation" patch.

Now only 3 directives remain,
same name across both implementations,
single definition place.

Might allow some light simplification due to reduced nb of states possible.

5 years agoMerge branch 'dev' into fixframe
Yann Collet [Mon, 15 Apr 2019 17:46:48 +0000 (10:46 -0700)]
Merge branch 'dev' into fixframe

5 years agoadded more margin for canary in frametest
Yann Collet [Mon, 15 Apr 2019 17:44:46 +0000 (10:44 -0700)]
added more margin for canary in frametest

5 years agodecompress*_fast() function do not generate deprecation warnings
Yann Collet [Mon, 15 Apr 2019 17:33:40 +0000 (10:33 -0700)]
decompress*_fast() function do not generate deprecation warnings

they are classified as deprecated in the API documentation (lz4.h)
but do not yet trigger a warning,
to give time to existing applications to move away.

Also, the _fast() variants are still ~5% faster than the _safe() ones
after Dave's patch.

5 years agofixed lz4frame with linked blocks
Yann Collet [Mon, 15 Apr 2019 17:28:36 +0000 (10:28 -0700)]
fixed lz4frame with linked blocks

when one block was not compressible,
it would tag the context as `dirty`,
resulting in compression automatically bailing out of all future blocks,
making the rest of the frame uncompressible.

5 years agoframetest: removed uninitialized warning
Yann Collet [Mon, 15 Apr 2019 17:14:36 +0000 (10:14 -0700)]
frametest: removed uninitialized warning

was a false positive, but better remove it anyway

5 years agoassert() the failed test
Yann Collet [Mon, 15 Apr 2019 09:11:59 +0000 (02:11 -0700)]
assert() the failed test

ensure canary remains within buffer limits

5 years agofixed frametest
Yann Collet [Mon, 15 Apr 2019 08:54:40 +0000 (01:54 -0700)]
fixed frametest

One test could write a canary value out of bound
in exceptional conditions involving multiple flushes
triggered by -s3421 -t462948.

5 years agoMerge branch 'dev' of github.com:Cyan4973/lz4 into dev
Yann Collet [Sat, 13 Apr 2019 22:55:33 +0000 (15:55 -0700)]
Merge branch 'dev' of github.com:Cyan4973/lz4 into dev

5 years agofixed incorrect assertion condition
Yann Collet [Sat, 13 Apr 2019 22:55:06 +0000 (15:55 -0700)]
fixed incorrect assertion condition

output can use the full length of output buffer

5 years agoMerge pull request #668 from lz4/visual
Yann Collet [Sat, 13 Apr 2019 21:15:48 +0000 (14:15 -0700)]
Merge pull request #668 from lz4/visual

Fix some Visual conversion warnings

5 years agoupdated benchmark table
Yann Collet [Sat, 13 Apr 2019 01:00:43 +0000 (18:00 -0700)]
updated benchmark table

5 years agoand even more visual conversion warnings
Yann Collet [Sat, 13 Apr 2019 00:40:23 +0000 (17:40 -0700)]
and even more visual conversion warnings

5 years agoMerge pull request #667 from lz4/pipeMultiple
Yann Collet [Sat, 13 Apr 2019 00:29:44 +0000 (17:29 -0700)]
Merge pull request #667 from lz4/pipeMultiple

Fix combination -m -c

5 years agosome more Visual conversion warning
Yann Collet [Sat, 13 Apr 2019 00:06:53 +0000 (17:06 -0700)]
some more Visual conversion warning

5 years agofixed minor Visual conversion warnings
Yann Collet [Sat, 13 Apr 2019 00:03:28 +0000 (17:03 -0700)]
fixed minor Visual conversion warnings

5 years agofix minor visual warning
Yann Collet [Fri, 12 Apr 2019 23:56:22 +0000 (16:56 -0700)]
fix minor visual warning

yet some overly cautious overflow risk flag,
while it's actually impossible, due to previous test just one line above.
Changing the cast position, just to be please the thing.

5 years agofixed minor Visual warnings
Yann Collet [Fri, 12 Apr 2019 23:49:01 +0000 (16:49 -0700)]
fixed minor Visual warnings

since Visual 2017,
worries about potential overflow, which are actually impossible.
Replaced (c * a) by (c ? a : 0).
Will likely replaced a * by a cmov.
Probably harmless for performance.

5 years agoadded tests for -d -m -c
Yann Collet [Fri, 12 Apr 2019 22:55:38 +0000 (15:55 -0700)]
added tests for -d -m -c

seems to work properly

5 years agofixed lz4 -m -c
Yann Collet [Fri, 12 Apr 2019 22:17:48 +0000 (15:17 -0700)]
fixed lz4 -m -c

can compress multiple files into stdout

5 years agoMerge pull request #666 from lz4/blockIndep
Yann Collet [Fri, 12 Apr 2019 21:28:44 +0000 (14:28 -0700)]
Merge pull request #666 from lz4/blockIndep

added command -BI for "Independent Blocks"

5 years agoadded command -BI for "Independent Blocks"
Yann Collet [Fri, 12 Apr 2019 20:27:11 +0000 (13:27 -0700)]
added command -BI for "Independent Blocks"

This is the reverse of `-BD`, and the current default.

This command can be useful to reverse a previous `-BD` command.
It may in the future be more important
if `lz4` switches to generating dependent blocks by default.

5 years agoupdated man page
Yann Collet [Fri, 12 Apr 2019 20:15:05 +0000 (13:15 -0700)]
updated man page

with --favor-decSpeed

5 years agoupdated doc to underline difference between block and frame
Yann Collet [Fri, 12 Apr 2019 18:27:44 +0000 (11:27 -0700)]
updated doc to underline difference between block and frame

as this is a very frequent source of confusion for new users.

5 years agoMerge pull request #665 from lz4/dict
Yann Collet [Thu, 11 Apr 2019 22:43:40 +0000 (15:43 -0700)]
Merge pull request #665 from lz4/dict

Dictionary compression

5 years agoMerge pull request #664 from lz4/maxdist
Yann Collet [Thu, 11 Apr 2019 22:42:54 +0000 (15:42 -0700)]
Merge pull request #664 from lz4/maxdist

introduce LZ4_DISTANCE_MAX build macro

5 years agoimproved documentation for LZ4 dictionary compression
Yann Collet [Thu, 11 Apr 2019 22:19:48 +0000 (15:19 -0700)]
improved documentation for LZ4 dictionary compression