]>
git.ipfire.org Git - thirdparty/zstd.git/log
animalize [Sat, 14 Nov 2020 05:16:27 +0000 (13:16 +0800)]
Clamp compression level in ZSTD_getCParams_internal() function
Yann Collet [Fri, 6 Nov 2020 19:38:08 +0000 (11:38 -0800)]
Merge pull request #2388 from facebook/fix2386
fix incorrect assert
sen [Fri, 6 Nov 2020 18:00:31 +0000 (13:00 -0500)]
Merge pull request #2381 from senhuang42/expand_sequence_extraction_api
Add enum to define ZSTD_Sequence type and update sequence extraction API
Yann Collet [Fri, 6 Nov 2020 17:57:05 +0000 (09:57 -0800)]
fix multiple minor conversion warnings
unrelated to #2386, just cleaning up while I'm updating this file ...
Yann Collet [Fri, 6 Nov 2020 17:44:04 +0000 (09:44 -0800)]
fix incorrect assert
fix #2386, reported by @Neumann-A
senhuang42 [Fri, 6 Nov 2020 15:56:56 +0000 (10:56 -0500)]
Update unit tests
senhuang42 [Fri, 6 Nov 2020 15:55:46 +0000 (10:55 -0500)]
Implement mergeGeneratedSequences()
senhuang42 [Fri, 6 Nov 2020 15:53:22 +0000 (10:53 -0500)]
Rename getSequences() to generateSequences()
senhuang42 [Fri, 6 Nov 2020 15:52:34 +0000 (10:52 -0500)]
Add new mergeGeneratedSequences() function
Nick Terrell [Thu, 5 Nov 2020 18:36:13 +0000 (10:36 -0800)]
Merge pull request #2385 from LuAPi/add-ZSTD_getDictID_fromCDict-single-commit
Add ZSTD_getDictID_fromCDict function to experimental section
Luke Pitt [Wed, 4 Nov 2020 11:37:37 +0000 (11:37 +0000)]
Add ZSTD_getDictID_fromCDict function to experimental section
senhuang42 [Mon, 2 Nov 2020 21:59:16 +0000 (16:59 -0500)]
Change block delimiter removing to linear time approach
senhuang42 [Mon, 2 Nov 2020 16:53:04 +0000 (11:53 -0500)]
Remove trailing comma
senhuang42 [Mon, 2 Nov 2020 16:43:19 +0000 (11:43 -0500)]
Use ZSTD_memmove() instead of memmove()
senhuang42 [Mon, 2 Nov 2020 16:35:27 +0000 (11:35 -0500)]
Revert compressibility change
senhuang42 [Mon, 2 Nov 2020 16:32:56 +0000 (11:32 -0500)]
Update name of enum, clarify documentation
senhuang42 [Mon, 2 Nov 2020 16:30:31 +0000 (11:30 -0500)]
Update unit test
senhuang42 [Mon, 2 Nov 2020 15:59:06 +0000 (10:59 -0500)]
Revert unnecessary seqCollector adjustment
senhuang42 [Mon, 2 Nov 2020 15:58:18 +0000 (10:58 -0500)]
Fix incorrect index increment in merge algorithm
senhuang42 [Mon, 2 Nov 2020 15:46:52 +0000 (10:46 -0500)]
Add algorithm to remove all delimiters
senhuang42 [Mon, 2 Nov 2020 15:19:26 +0000 (10:19 -0500)]
Update seqCollector definition
senhuang42 [Mon, 2 Nov 2020 15:17:59 +0000 (10:17 -0500)]
Update ZSTD_getSequences function signature
senhuang42 [Mon, 2 Nov 2020 15:15:53 +0000 (10:15 -0500)]
Add new enum for different sequence formats for ingestion/extraction
sen [Mon, 2 Nov 2020 01:33:25 +0000 (20:33 -0500)]
Merge pull request #2378 from senhuang42/free_cress_ptr
[minor] Pass cRess_t by const ptr instead of by value
Nick Terrell [Fri, 30 Oct 2020 22:09:38 +0000 (15:09 -0700)]
Merge pull request #2379 from terrelln/regression-test
[regression] Updates results.csv & add README
Nick Terrell [Fri, 30 Oct 2020 22:06:56 +0000 (15:06 -0700)]
Merge pull request #2354 from terrelln/stable-buffer
Add ZSTD_c_stable{In,Out}Buffer and optimize when set
Nick Terrell [Fri, 30 Oct 2020 20:55:52 +0000 (13:55 -0700)]
[regression] Add README explaining the test
Nick Terrell [Fri, 30 Oct 2020 20:54:30 +0000 (13:54 -0700)]
[regression] Update results.csv
https://github.com/facebook/zstd/pull/2339 removes the single-pass zstdmt API.
This changes the compressed size, because we no longer take the # of threads into
account when deciding the job size.
sen [Fri, 30 Oct 2020 19:47:25 +0000 (15:47 -0400)]
Merge pull request #2376 from senhuang42/clarify_sequence_extraction_api
Refine external ZSTD_Sequence API
Nick Terrell [Tue, 13 Oct 2020 01:40:14 +0000 (18:40 -0700)]
[test] Add unit tests for ZSTD_c_stable{In,Out}Buffer
Nick Terrell [Mon, 12 Oct 2020 21:47:55 +0000 (14:47 -0700)]
[lib] Avoid allocating the input buffer when ZSTD_c_stableInBuffer is set
We don't use it when we have a stable input buffer, so don't allocate
it. I had to slightly modify `ZSTD_copyCCtx()` by storing the
`ZSTD_buffered_policy_e` in the `ZSTD_CCtx`, since `inBuffSize > 0` is
no longer the correct signal for the buffered mode.
Nick Terrell [Mon, 12 Oct 2020 21:36:30 +0000 (14:36 -0700)]
[lib] Skip the input window buffer when ZSTD_c_stableInBuffer is set
Compress directly from the `ZSTD_inBuffer`. We still allocate the input
buffer. A following commit will remove that allocation.
Nick Terrell [Mon, 12 Oct 2020 21:19:04 +0000 (14:19 -0700)]
[cwksp] Return NULL when 0 bytes are requested
This ensures that the buffer is never used.
Nick Terrell [Mon, 12 Oct 2020 21:17:22 +0000 (14:17 -0700)]
[lib] Avoid allocating output buffer when ZSTD_c_stableOutBuffer is set
We compress directly to the `ZSTD_outBuffer` so we don't need to
allocate it.
Nick Terrell [Mon, 12 Oct 2020 21:12:23 +0000 (14:12 -0700)]
[lib] Compress directly into output when ZSTD_c_stableOutBuffer is set
When we have a stable output buffer always compress directly into the
`ZSTD_outBuffer`. We are allowed to return `dstSizeTooSmall`.
Nick Terrell [Mon, 12 Oct 2020 21:09:12 +0000 (14:09 -0700)]
[lib] Take the shortcut when ZSTD_c_stableOutBuffer is set
When we have a stable output buffer take the single-pass shortcut.
It is okay to return `dstSizeTooSmall` if the output buffer isn't
big enough, because we know it will never grow.
Nick Terrell [Mon, 12 Oct 2020 20:51:35 +0000 (13:51 -0700)]
[lib] Set ZSTD_c_stable{In,Out}Buffer in ZSTD_compress2()
Sets these parameters in ZSTD_compress2() then resets them to their
orignal values after the compression call.
An alternative design could be to add a flush mode `ZSTD_e_singlePass`
which implies `ZSTD_c_stable{In,Out}Buffer` but only for a single
compression call, by directly setting the applied parameters. I've opted
for the smaller change, but this is open for discussion.
Nick Terrell [Mon, 12 Oct 2020 20:45:33 +0000 (13:45 -0700)]
[lib] Validate buffers when ZSTD_c_stable{In,Out}Buffer is set
Adds the validation of the input/output buffers only. They are still
unused.
Nick Terrell [Mon, 12 Oct 2020 20:15:39 +0000 (13:15 -0700)]
[API] Add ZSTD_c_stable{In,Out}Buffer parameters
This commit adds the parameters and sets the value in the CCtxParams
but it does not do anything with the value.
Nick Terrell [Tue, 13 Oct 2020 02:30:23 +0000 (19:30 -0700)]
[lib] Set appliedParams in zstdmt mode
Previously only `nbWorkers` was set. Set all parameters, because that is
what is expected. This is needed for the `ZSTD_c_stable{In,Out}Buffer`
parameters.
senhuang42 [Fri, 30 Oct 2020 16:30:50 +0000 (12:30 -0400)]
Specify that getSequences() will always emit block boundary sequences
senhuang42 [Fri, 30 Oct 2020 16:13:19 +0000 (12:13 -0400)]
Sequence extractor should update CBlockState
senhuang42 [Thu, 29 Oct 2020 20:41:17 +0000 (16:41 -0400)]
Emit last literals of 0 size as well, to indicate block boundary
senhuang42 [Thu, 29 Oct 2020 18:49:37 +0000 (14:49 -0400)]
Correct literalsRead calculation to include longLength
sen [Thu, 29 Oct 2020 13:32:05 +0000 (09:32 -0400)]
Merge pull request #2375 from senhuang42/ldm_oss_fuzz_testcase
Add a test case for LDM + opt parser with small uncompressible block
senhuang42 [Wed, 28 Oct 2020 21:49:54 +0000 (17:49 -0400)]
Un-mix declarations and code
senhuang42 [Wed, 28 Oct 2020 20:25:09 +0000 (16:25 -0400)]
Remove implicit typecast to appease appVeyor windows build
senhuang42 [Wed, 28 Oct 2020 20:22:22 +0000 (16:22 -0400)]
Add check for allocation
Yann Collet [Wed, 28 Oct 2020 18:57:08 +0000 (11:57 -0700)]
Merge pull request #2373 from facebook/libzstd_autoconf_full
Automatic detection of configuration changes
Yann Collet [Wed, 28 Oct 2020 17:53:08 +0000 (10:53 -0700)]
Merge branch 'dev' into libzstd_autoconf_full
Yann Collet [Wed, 28 Oct 2020 17:25:55 +0000 (10:25 -0700)]
Merge branch 'libzstd_autoconf_full' of github.com:facebook/zstd into libzstd_autoconf_full
Yann Collet [Wed, 28 Oct 2020 16:39:15 +0000 (09:39 -0700)]
minor Makefile refactor
hopefully improving readability
senhuang42 [Tue, 27 Oct 2020 21:45:23 +0000 (17:45 -0400)]
Clarify comments in zstd.h some more
Nick Terrell [Wed, 28 Oct 2020 02:43:13 +0000 (19:43 -0700)]
Merge pull request #2339 from terrelln/zstdmt-stability
Fix zstdmt stability issues and clean up the zstdmt code
Yann Collet [Tue, 27 Oct 2020 22:45:30 +0000 (15:45 -0700)]
Merge branch 'dev' into libzstd_autoconf_full
Yann Collet [Tue, 27 Oct 2020 21:15:35 +0000 (14:15 -0700)]
Merge pull request #2374 from bket/portability
'head -c BYTES' is non-portable
senhuang42 [Tue, 27 Oct 2020 20:59:43 +0000 (16:59 -0400)]
Move test to appropriate location
senhuang42 [Tue, 27 Oct 2020 20:57:24 +0000 (16:57 -0400)]
Add test to fuzzer.c
sen [Tue, 27 Oct 2020 18:59:28 +0000 (14:59 -0400)]
Merge pull request #2366 from senhuang42/enable_ldm_by_default
Enable LDM by default if window size >= 128MB and strategy uses opt parser
Nick Terrell [Tue, 27 Oct 2020 18:13:03 +0000 (11:13 -0700)]
Merge pull request #2362 from senhuang42/fix_ldm_fuzz_issue
Fix long distance matcher OSS-fuzz issue
senhuang42 [Tue, 27 Oct 2020 16:58:12 +0000 (12:58 -0400)]
Remove unused variable position
senhuang42 [Tue, 27 Oct 2020 16:28:46 +0000 (12:28 -0400)]
Add test compatibility with last literals in sequences
Björn Ketelaars [Tue, 27 Oct 2020 15:51:24 +0000 (16:51 +0100)]
'head -c BYTES' is non-portable
senhuang42 [Tue, 27 Oct 2020 15:19:48 +0000 (11:19 -0400)]
Add support for representing last literals in the extracted seqs
senhuang42 [Tue, 27 Oct 2020 14:43:37 +0000 (10:43 -0400)]
Improve documentation of seqStore_t
senhuang42 [Tue, 27 Oct 2020 14:36:06 +0000 (10:36 -0400)]
Improve documentation regarding various operations in copyBlockSequences
senhuang42 [Tue, 27 Oct 2020 14:07:26 +0000 (10:07 -0400)]
Modify ZSTD_copyBlockSequences to agree with new API
senhuang42 [Tue, 27 Oct 2020 13:41:32 +0000 (09:41 -0400)]
Clarify and modify ZSTD_Sequence definition
Yann Collet [Mon, 26 Oct 2020 22:17:39 +0000 (15:17 -0700)]
Merge branch 'dev' into libzstd_autoconf_full
Yann Collet [Mon, 26 Oct 2020 22:16:04 +0000 (15:16 -0700)]
Merge pull request #2370 from facebook/libzstd_autoconf
Automatic configuration detection
Yann Collet [Fri, 23 Oct 2020 23:46:49 +0000 (16:46 -0700)]
make install only rebuild binaries if they don't exist
Now `make` followed by `make install` doesn't rebuild binaries
also : only generated target directories if they don't already exist
Yann Collet [Fri, 23 Oct 2020 23:08:21 +0000 (16:08 -0700)]
make zstd is now differentiated from zstd-nomt
avoids mixing object files using different flags
Yann Collet [Fri, 23 Oct 2020 17:41:17 +0000 (10:41 -0700)]
simplified silent mode maintenance
Yann Collet [Fri, 23 Oct 2020 17:27:12 +0000 (10:27 -0700)]
fix partial lib test
Yann Collet [Fri, 23 Oct 2020 17:22:52 +0000 (10:22 -0700)]
simplified silent mode
Yann Collet [Fri, 23 Oct 2020 17:14:04 +0000 (10:14 -0700)]
fixed building libzstd with manual BUILD_DIR
and when HASH is not found
Yann Collet [Fri, 23 Oct 2020 02:53:01 +0000 (19:53 -0700)]
fix partial-build test
sometimes, the scope difference is solely determined by the list of source files,
not by the flags.
Yann Collet [Fri, 23 Oct 2020 01:55:30 +0000 (18:55 -0700)]
Merge branch 'dev' into libzstd_autoconf
Yann Collet [Fri, 23 Oct 2020 01:48:06 +0000 (18:48 -0700)]
can integrate later dynamic flags changes
for example `libzstd-mt` is `differentiated from `libzstd`
Yann Collet [Fri, 23 Oct 2020 00:36:56 +0000 (17:36 -0700)]
Merge pull request #2368 from facebook/progressive_libzstd
faster rebuild of libzstd
Yann Collet [Thu, 22 Oct 2020 19:31:23 +0000 (12:31 -0700)]
updated build documentation
Yann Collet [Thu, 22 Oct 2020 18:28:46 +0000 (11:28 -0700)]
fixed libzstd.dll compilation on mingw
and zstd linking
Yann Collet [Thu, 22 Oct 2020 07:20:40 +0000 (00:20 -0700)]
fix DEBUGLEVEL redefinition from tests/
Yann Collet [Thu, 22 Oct 2020 07:15:31 +0000 (00:15 -0700)]
fix directory creation for Windows' libzstd
Yann Collet [Thu, 22 Oct 2020 06:51:13 +0000 (23:51 -0700)]
fix test
DEBUGLEVEL redefinition
Yann Collet [Thu, 22 Oct 2020 06:38:33 +0000 (23:38 -0700)]
programs/zstd also automatically generate object dir per conf
same rules as lib/libzstd
can also be controlled via HASH and BUILD_DIR
Yann Collet [Thu, 22 Oct 2020 06:13:46 +0000 (23:13 -0700)]
zstd in programs/ can also receive a DEBUGLEVEL value
simplify tests : only set DEBUGLEVEL, not the flags directly
Yann Collet [Thu, 22 Oct 2020 05:36:09 +0000 (22:36 -0700)]
Merge branch 'dev' into libzstd_autoconf
Yann Collet [Thu, 22 Oct 2020 02:22:45 +0000 (19:22 -0700)]
automatically detect configuration changes
Makefile now automatically detects modifications of compilation flags,
and produce object files in directories dedicated to this compilation flags.
This makes it possible, for example, to compile libzstd with different DEBUGLEVEL.
Object files sharing the same configration will be generated into their dedicated directories.
Also : new compilation variables
- DEBUGLEVEL : select the debug level (assert & traces) inserted during compilation (default == 0 == release)
- HASH : select a hash function to differentiate configuration (default == md5sum)
- BUILD_DIR : skip the hash stage, store object files into manually specified directory
Yann Collet [Thu, 22 Oct 2020 00:25:07 +0000 (17:25 -0700)]
automatic %.h header dependency tracking
also : BUILD_DIR can be manually specified
Yann Collet [Wed, 21 Oct 2020 22:43:14 +0000 (15:43 -0700)]
Merge pull request #2367 from facebook/progressive_build
faster rebuild of zstd
Yann Collet [Wed, 21 Oct 2020 11:01:01 +0000 (04:01 -0700)]
consolidated vpath
Yann Collet [Wed, 21 Oct 2020 10:44:38 +0000 (03:44 -0700)]
store %.o object files into obj/
both static and dynamic libraries have their own object directory
Yann Collet [Wed, 21 Oct 2020 10:22:27 +0000 (03:22 -0700)]
minor cleaning
Yann Collet [Wed, 21 Oct 2020 05:19:57 +0000 (22:19 -0700)]
build libzstd.so from object files
%.o object files generated for dynamic library
must be different from those generated for static library.
Due to this difference, %.o were so far only generated for the static library.
The dynamic library was rebuilt from %.c source.
This meant that, for every minor change, the entire dynamic library had to be rebuilt.
This is fixed in this PR :
only the modified %.c source get rebuilt.
Yann Collet [Wed, 21 Oct 2020 01:16:11 +0000 (18:16 -0700)]
decouple zstd object files from lib/
That was a subtle one :
VPATH is affecting search for both %.c source and %.o object files.
This meant that, when an object file already exists in lib/,
it's used in programs/,
even though programs/ is supposed to generate its own %.o object files.
With the new vpath directive, this is no longer the case :
the search is only activated for %.c source files.
Now, local programs/%.o are always generated
even if equivalent ones are already created in lib/.
It more clearly guarantees that lib/ and programs/ can use different compilation directives
without mixing resulting %.o object files.
Yann Collet [Tue, 20 Oct 2020 23:32:22 +0000 (16:32 -0700)]
fixed travis tests
senhuang42 [Tue, 20 Oct 2020 17:46:02 +0000 (13:46 -0400)]
Add a function for LDM enable check
senhuang42 [Tue, 20 Oct 2020 17:01:04 +0000 (13:01 -0400)]
Move ldm enable to compressStream2()
Nick Terrell [Tue, 20 Oct 2020 15:34:36 +0000 (11:34 -0400)]
Merge pull request #2365 from senhuang42/move_opt_parser_test_to_long_tests
Move ldm + opt parser no regression test to long tests