Commit Graph

165 Commits

Author SHA1 Message Date
Yann Collet
2ece0d8380 created LZ4_initStream()
- promoted LZ4_resetStream_fast() to stable
- moved LZ4_resetStream() into deprecate, but without triggering a compiler warning
- update all sources to no longer rely on LZ4_resetStream()

note : LZ4_initStream() proposal is slightly different :
it's able to initialize any buffer, provided that it's large enough.
To this end, it accepts a void*, and returns an LZ4_stream_t*.
2019-04-05 12:56:26 -07:00
Yann Collet
7a39fb8fb6 make _fast*() decoder generate a deprecation warning
updated modification
2019-04-04 12:47:36 -07:00
Yann Collet
ab91300509 moved LZ4_decompress_fast*() into deprecated section 2019-04-04 12:24:46 -07:00
Yann Collet
50f01d881d fixed doc
and bumped version number fo v1.9.0
2019-04-03 14:27:21 -07:00
Yann Collet
1b819bfd63
Merge pull request #593 from felixhandte/lz4hc-publish-static
Extend Macro to Allow Publishing Experimental LZ4HC Functions in Dynamic Libraries
2018-10-16 15:33:58 -07:00
W. Felix Handte
45dc195f84 Change Comment and Make LZ4LIB_STATIC_API Available to LZ4HC 2018-10-15 17:22:37 -07:00
Oleg Khabinov
28eb88d988 Some followups and renamings 2018-10-01 15:19:45 -07:00
Oleg Khabinov
f2ae385c2f Rename initCheck to dirtyContext and use it in LZ4_resetStream_fast() to check if full reset is needed. 2018-09-28 14:55:05 -07:00
Yann Collet
c4c19c74b8 changed LZ4_streamDecode member order
to reduce memory usage on 128-bits systems
2018-09-25 14:43:19 -07:00
Yann Collet
6381d828fd increase size of LZ4 contexts for 128-bit systems 2018-09-17 17:31:57 -07:00
Yann Collet
a803230f67 unpublish static-only function
these functions are now unpublished in dll by default.
One needs to opt-in, using macro LZ4_PUBLISH_STATIC_FUNCTIONS.

used this opportunity to update a bunch of api comments in lz4.h
2018-09-13 16:02:11 -07:00
Yann Collet
b87a8e9e62 fixed minor warning in fuzzer.c
added a few more comments and assert()
2018-09-10 16:48:41 -07:00
Yann Collet
eaed9ea4a1 updated function interface documentation 2018-09-07 16:21:31 -07:00
Yann Collet
bf614d3c51 first sketch for a byte-accurate partial decoder 2018-09-07 15:44:19 -07:00
Yann Collet
e32766cc34 updated API documentation 2018-09-07 11:30:15 -07:00
Yann Collet
0fea528e3a updated documentation regarding dictionary compression
following suggestion from @stbrumme (#558)

Also : bumped version number, regenerated man page and html doc
2018-09-05 14:05:08 -07:00
Jack Luo
2e52f03a12 fixed spelling mistake in lz4.h 2018-07-28 22:21:57 -04:00
Nick Terrell
4eca78b5c3 Fix LZ4_compress_fast_continue() docs
Fixes #549.
2018-07-10 11:44:03 -07:00
Yann Collet
f3e84ffd41
Merge pull request #529 from felixhandte/lz4f-fast-reset-for-streaming-only
LZ4F: Only Reset the LZ4_stream_t when Init'ing a Streaming Block
2018-05-03 15:37:51 -07:00
W. Felix Handte
5406c2e479 Only Reset the LZ4 Stream when Init'ing a Streaming Block 2018-05-03 00:03:20 -04:00
Yann Collet
93cf628a08 introduce LZ4_decoderRingBufferSize()
fuzzer : fix and robustify ring buffer tests
2018-05-02 13:01:04 -07:00
Yann Collet
4c696613a0 clarified streaming decompression function
restrictions for ring buffer
2018-04-30 15:55:33 -07:00
Alexey Tourbin
ab06ef97bb lz4.h: clarify the risks of using LZ4_decompress_fast()
The notes about "security guarantee" and "malicious inputs" seemed
a bit non-technical to me, so I took the liberty to tone them down
and instead describe the actual risks in technical terms.  Namely,
the function never writes past the end of the output buffer, so
a direct hostile takeover (resulting in arbitrary code execution
soon after the return from the function) is not possible.  However,
the application can crash because of reads from unmapped pages.

I also took the liberty to describe what I believe is the only sensible
usage scenario for the function: "This function is only usable if the
originalSize of uncompressed data is known in advance," etc.
2018-04-23 02:13:49 +03:00
W. Felix Handte
3a0c571272 Add a LZ4_STATIC_LINKING_ONLY Macro to Guard Experimental APIs 2018-04-11 18:06:10 -04:00
W. Felix Handte
afa52c9b95 Expose dictCtx Functionality in LZ4 2018-04-11 16:28:56 -04:00
W. Felix Handte
21f0c9700b Rename _extState_noReset -> _extState_fastReset and Edit Comments 2018-04-11 15:13:01 -04:00
W. Felix Handte
59c7d95121 Expose a Faster Stream Reset Function 2018-04-10 13:26:17 -04:00
W. Felix Handte
a3a9b80dff Better Describe Functionality of Obsolete Streaming Functions 2018-03-21 11:39:41 -04:00
W. Felix Handte
b0a18896fe Move LZ4_compress_fast_extState_noReset Declaration to Unstable Section 2018-03-14 15:59:33 -04:00
W. Felix Handte
66b6fbfe6f Restore the Other Old Streaming Functions in a Degraded Fashion 2018-03-14 15:53:10 -04:00
W. Felix Handte
146e676531 Restore LZ4_sizeofStreamState, We Didn't Actually Need to Delete It 2018-03-13 15:42:03 -04:00
W. Felix Handte
f9fef255a1 Renames and Comment Fixes 2018-03-12 18:34:41 -04:00
W. Felix Handte
73cc39327e Lookup Matches in Separate Dictionary Context 2018-03-12 14:58:43 -04:00
W. Felix Handte
d6a3024dbb Add LZ4_compress_fast_safeExtState Function 2018-03-12 14:58:43 -04:00
W. Felix Handte
5709891de6 Add a Table Type Field to LZ4_stream_t 2018-03-12 14:58:43 -04:00
W. Felix Handte
6933f5ad9c Remove Obsolete Stream Functions to Free Space in LZ4_stream_t 2018-03-12 14:58:43 -04:00
Yann Collet
39fda9a447 bumped version number to v1.8.2
updated NEWS was current progresses
2018-02-26 13:50:04 -08:00
Yann Collet
ba115386fa update code comment on LZ4 streaming interface
notably regarding LZ4_saveDict() speed advantage,
answering #477.
2018-02-26 13:31:18 -08:00
Yann Collet
d74f079748 update API doc regarding double-buffer strategy
answering question #473
2018-02-18 11:00:33 -08:00
Yann Collet
ea25250c99 fixed code comment as detected in #466
Also clarified a few API code comments
and updated associated html documentation
2018-02-07 02:21:25 -08:00
Nick Terrell
e832a3d87a Clarify the requirements of the LZ4 streaming API 2018-02-01 16:08:59 -08:00
Asger Hautop Drewsen
c129f480e7 Always prefer c++14 attributes if available 2018-01-31 20:24:44 +01:00
Asger Hautop Drewsen
865bd83e13 Ensure LZ4_DEPRECATED("...") is before LZ4LIB_API
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.
2018-01-31 13:33:07 +01:00
Po-Chuan Hsieh
75b81bbbf0 Change file format back to ASCII (from UTF-8)
- Replace U+00A0 by space
- Fix build failure of archivers/py-borgbackup in FreeBSD

Reference: https://bugs.FreeBSD.org/225235
2018-01-18 03:13:05 +08:00
Po-Chuan Hsieh
47bf1a9f01 Fix lz4 version 2018-01-14 06:38:03 +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
mikir
63a7f34fee
Separated visibility from LZ4LIB_API macro. 2017-10-30 13:44:24 +01:00
Yann Collet
3d260f3522 complementary information for #394 2017-08-30 16:09:10 -07:00
Yann Collet
e3c71584ff clarified documentation of streaming decompression functions
(synchronous bufferless mode)
answering questions by @jtbandes (#394)
2017-08-30 15:42:04 -07:00
Nick Terrell
252ce14fd2 Don't use C++11 deprecation attribute with clang
Clang doesn't accept a C++11 attribute following `LZ4LIB_API`.
Use the GNU attribute instead.
2017-08-24 14:06:34 -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
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
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
e2c9b19122 lz4frame : Added negative compression levels 2017-04-09 01:41:36 -07:00
Yann Collet
0d073d4d28 added extern C for lz4.h static section
should make the file more compatible with C++ compiler, such as Visual or g++
2017-03-17 15:11:09 -07:00
Yann Collet
cd35f0d98c LZ4_compress_HC_destSize() uses LZ4HC_compress_generic() code path
Limits compression level to 10,
to remain compatible with Hash Chain.
2017-03-16 15:10:38 -07:00
Yann Collet
6b2a1b3606 updated lz4 version number 2017-03-16 02:24:46 -07:00
Yann Collet
e945a27f9c fix #333 : expose obsolete decoding functions
with deprecation warning.
notified by Chen Yufei
2017-03-14 21:21:54 -07:00
Dmitry V. Levin
25b2435885 Export deprecated symbols
Deprecated symbols are still a part of ABI and have to be exported,
so mark them with LZ4LIB_API attribute.
2017-03-10 23:35:30 +00:00
Dmitry V. Levin
7aeecbff71 Explicitly set visibility of public API functions when gcc is used
Windows builds already limit exporting of functions to those marked
with LZ4LIB_API tag.  The same behaviour could be achieved on other
platforms when a relatively fresh gcc is used.

This change assigns public visibility to all symbols marked with
LZ4LIB_API tag.  When the library is built in -fvisibility=hidden
mode, only these marked symbols will be exported.
2017-03-10 23:35:30 +00:00
Przemyslaw Skibinski
f9f48f8ed9 lz4.h: improved manual generation 2017-01-23 16:02:51 +01:00
Yann Collet
9683a1ae87 LZ4_MEMORY_USAGE can be modified from compilation command line 2017-01-05 16:50:37 +01:00
Yann Collet
a9a8dbf7c1 fixed minor display error when using -r 2016-11-28 04:01:02 -08:00
Takayuki MATSUOKA
b4db9d7e35 Add C++14 standard [[deprecated]] attribute
See also
For __cplusplus predefined macro, https://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html
For [[deprecated]] attribute, https://isocpp.org/wiki/faq/cpp14-language#deprecated-attribute
2016-11-19 22:08:48 +09:00
Yann Collet
19df3029e2 fixed #272 (compilation fails on gcc 4.4), reported by @totaam 2016-11-18 17:56:56 -08:00
Yann Collet
1abecbc33c fix 32-bits mode.
Large File support for Mac OS-X in 32-bits mode
Fixed potential undefined behavior
Changed makefile for 32-bits mode
2016-11-17 13:02:06 -08:00
Yann Collet
923cf4447f bump version number 2016-11-14 18:09:31 -08:00
Yann Collet
fa158b4118 fixed nameless union warnings 2016-11-14 10:02:01 -08:00
Yann Collet
1b24cc1155 fixed conversion warnings 2016-11-14 07:10:31 -08:00
Yann Collet
bb97e8a6fd fixed __GNUC__ macro 2016-11-12 13:30:02 -08:00
Yann Collet
3580d96980 enabled deprecation warnings on remaining obsolete functions 2016-11-12 08:48:42 -08:00
Yann Collet
874f3e095b update code comments 2016-11-12 07:29:54 -08:00
Nick Terrell
85aeb0e4bb Expose internal types to remove strict aliasing 2016-11-11 13:00:02 -08:00
Przemyslaw Skibinski
2ecce6f151 lz4.h: added Introduction section 2016-11-10 17:22:59 +01:00
Przemyslaw Skibinski
67fd5dffd9 updated appveyor.yml 2016-11-09 14:05:44 +01:00
Przemyslaw Skibinski
7df658ec1b removed LZ4_DLL_EXPORT=1 (2) 2016-11-09 12:52:27 +01:00
Przemyslaw Skibinski
84cedb4632 updated links to LZ4 repository 2016-11-03 15:12:57 +01:00
Przemyslaw Skibinski
88cef262ec documentation moved to doc/ 2016-11-03 13:25:20 +01:00
Yann Collet
7e112cfa5c fixes static compilation under Windows (#246) 2016-10-21 09:49:30 -07:00
Kouhei Sutou
012c66536c Add LZ4LIB_API
It's based on Zstandard's ZSTDLIB_API.

See also: https://github.com/Cyan4973/lz4/issues/216#issuecomment-226245432

Deprecated functions aren't LZ4LIB_API targets. Because we don't need to
export deprecated functions from now.

There are same LZ4LIB_API definitions in each header files instead of
including a common header file because LZ4_DEPRECATED is defined so.
2016-09-23 00:39:45 +09:00
Yann Collet
64f556e610 lz4cli version number from lz4.h 2016-09-02 19:32:06 -07:00
Yann Collet
63d22e7a19 minor comments clarifications 2016-08-20 23:22:29 +02:00
Yann Collet
19e585cc46 modified : some more deprecated functions from lz4hc.h generate warnings 2016-06-29 18:18:34 +02:00
Yann Collet
6b1600f41e changed : default benchmark LZ4_decompress_safe() 2016-06-29 17:48:28 +02:00
John Zhuge
cf6652f9b9 lz4cli: print library version 2016-04-01 07:07:25 -07:00
Yann Collet
ff3324b8d5 Fix : compiler-independent macro to remove deprecation warnings 2015-10-21 12:58:06 +01:00
Yann Collet
00eedb37d1 minor refactor 2015-07-16 09:38:10 +01:00
Yann Collet
192ee724a3 Added namespace ability to xxhash 2015-06-27 12:43:28 -08:00
Yann Collet
05c3f66bb8 Updated a few comments 2015-05-12 10:10:20 +01:00
Yann Collet
672bfdebd0 Updated comments 2015-05-06 20:23:06 +01:00
Yann Collet
efbebd2a99 Added : LZ4_compress_destSize() 2015-05-06 02:29:04 +01:00
Yann Collet
1c3e633c48 Added compilation flag -Wcast-qual 2015-05-06 01:58:24 +01:00
Yann Collet
1b17bf2ab8 New lz4 API, using LZ4_compress_fast() 2015-05-03 17:57:46 +01:00
Yann Collet
d6dc0a410d streaming API : Improved ring buffer management 2015-04-24 10:15:12 +01:00
Yann Collet
9c6fb8b160 Added LZ4_compress_fast_extState() 2015-04-23 07:46:35 +01:00
Yann Collet
f11afafe23 Removed LZ4_compress() (obsolete) from lz4 2015-04-21 18:31:35 +01:00
Takayuki MATSUOKA
e1283c7991 Fix LZ4_DEPRECATED() for older/non-gcc/clang/MSVC compilers 2015-04-15 06:39:05 +09:00
Takayuki MATSUOKA
d7298d2059 Replace GCC_VERSION with LZ4_GCC_VERSION 2015-04-15 06:39:04 +09:00
Takayuki MATSUOKA
ad86910b1b Add LZ4 prefix to deprecation macros
Replace the following macros:

 - "_DEPRECATE_WARNING_DEFBLOCK" to "LZ4_DEPRECATE_WARNING_DEFBLOCK"
 - "DEPRECATED" to "LZ4_DEPRECATED"
2015-04-12 17:28:53 +09:00
Yann Collet
9443f3d924 Extended obsolete warning messages to lz4hc 2015-04-11 19:12:03 +01:00