Nick Terrell
24f72789e2
[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.
2020-10-30 10:55:34 -07:00
Nick Terrell
6bd6b6f7d3
[cwksp] Return NULL when 0 bytes are requested
...
This ensures that the buffer is never used.
2020-10-30 10:55:34 -07:00
Nick Terrell
fcf81cee5e
[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.
2020-10-30 10:55:34 -07:00
Nick Terrell
6d5dc93d4e
[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`.
2020-10-30 10:55:34 -07:00
Nick Terrell
987cb4ca6a
[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.
2020-10-30 10:55:34 -07:00
Nick Terrell
809b2f2071
[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.
2020-10-30 10:55:34 -07:00
Nick Terrell
c74be3f6de
[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.
2020-10-30 10:55:34 -07:00
Nick Terrell
e3e0775cc8
[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.
2020-10-30 10:54:39 -07:00
Nick Terrell
e2581d9572
[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.
2020-10-30 10:54:38 -07:00
sen
ff93440fc6
Merge pull request #2375 from senhuang42/ldm_oss_fuzz_testcase
...
Add a test case for LDM + opt parser with small uncompressible block
2020-10-29 09:32:05 -04:00
senhuang42
7198ebb213
Un-mix declarations and code
2020-10-28 18:51:03 -04:00
senhuang42
60a52c29e6
Add check for allocation
2020-10-28 16:22:22 -04:00
Yann Collet
bb4ea40e4d
Merge pull request #2373 from facebook/libzstd_autoconf_full
...
Automatic detection of configuration changes
2020-10-28 11:57:08 -07:00
Yann Collet
09e3bb95d2
Merge branch 'dev' into libzstd_autoconf_full
2020-10-28 10:53:08 -07:00
Yann Collet
0adce4631d
Merge branch 'libzstd_autoconf_full' of github.com:facebook/zstd into libzstd_autoconf_full
2020-10-28 10:25:55 -07:00
Yann Collet
f6ecf1568f
minor Makefile refactor
...
hopefully improving readability
2020-10-28 09:39:15 -07:00
Nick Terrell
599ff58e08
Merge pull request #2339 from terrelln/zstdmt-stability
...
Fix zstdmt stability issues and clean up the zstdmt code
2020-10-27 19:43:13 -07:00
Yann Collet
ceccd7ae2d
Merge branch 'dev' into libzstd_autoconf_full
2020-10-27 15:45:30 -07:00
Yann Collet
2d2507b9db
Merge pull request #2374 from bket/portability
...
'head -c BYTES' is non-portable
2020-10-27 14:15:35 -07:00
senhuang42
169fc07aa1
Move test to appropriate location
2020-10-27 16:59:43 -04:00
senhuang42
db0b5d7d1e
Add test to fuzzer.c
2020-10-27 16:57:24 -04:00
sen
17b700d78a
Merge pull request #2366 from senhuang42/enable_ldm_by_default
...
Enable LDM by default if window size >= 128MB and strategy uses opt parser
2020-10-27 14:59:28 -04:00
Nick Terrell
0953645837
Merge pull request #2362 from senhuang42/fix_ldm_fuzz_issue
...
Fix long distance matcher OSS-fuzz issue
2020-10-27 11:13:03 -07:00
Björn Ketelaars
1f661b5f6b
'head -c BYTES' is non-portable
2020-10-27 16:55:23 +01:00
Yann Collet
59ab4dcd32
Merge branch 'dev' into libzstd_autoconf_full
2020-10-26 15:17:39 -07:00
Yann Collet
284d84ecf7
Merge pull request #2370 from facebook/libzstd_autoconf
...
Automatic configuration detection
2020-10-26 15:16:04 -07:00
Yann Collet
456db0c377
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
2020-10-23 16:46:49 -07:00
Yann Collet
a6ee614a44
make zstd is now differentiated from zstd-nomt
...
avoids mixing object files using different flags
2020-10-23 16:08:21 -07:00
Yann Collet
89b961ea46
simplified silent mode maintenance
2020-10-23 10:41:17 -07:00
Yann Collet
ffe8d9e428
fix partial lib test
2020-10-23 10:27:12 -07:00
Yann Collet
b5d4728713
simplified silent mode
2020-10-23 10:22:52 -07:00
Yann Collet
a7ad05bf57
fixed building libzstd with manual BUILD_DIR
...
and when HASH is not found
2020-10-23 10:14:04 -07:00
Yann Collet
d3f1a9b5bd
fix partial-build test
...
sometimes, the scope difference is solely determined by the list of source files,
not by the flags.
2020-10-22 21:36:09 -07:00
Yann Collet
98787a3018
Merge branch 'dev' into libzstd_autoconf
2020-10-22 18:55:30 -07:00
Yann Collet
a912ef0952
can integrate later dynamic flags changes
...
for example `libzstd-mt` is `differentiated from `libzstd`
2020-10-22 18:48:06 -07:00
Yann Collet
f90424da2d
Merge pull request #2368 from facebook/progressive_libzstd
...
faster rebuild of libzstd
2020-10-22 17:36:56 -07:00
Yann Collet
ce6cd07c33
updated build documentation
2020-10-22 12:31:23 -07:00
Yann Collet
e3867fb735
fixed libzstd.dll compilation on mingw
...
and zstd linking
2020-10-22 11:52:19 -07:00
Yann Collet
91a8cb9559
fix DEBUGLEVEL redefinition from tests/
2020-10-22 00:20:40 -07:00
Yann Collet
494f7169ed
fix directory creation for Windows' libzstd
2020-10-22 00:15:31 -07:00
Yann Collet
ca75da8fa3
fix test
...
DEBUGLEVEL redefinition
2020-10-21 23:51:13 -07:00
Yann Collet
dd24496951
programs/zstd also automatically generate object dir per conf
...
same rules as lib/libzstd
can also be controlled via HASH and BUILD_DIR
2020-10-21 23:38:33 -07:00
Yann Collet
01ecad2326
zstd in programs/ can also receive a DEBUGLEVEL value
...
simplify tests : only set DEBUGLEVEL, not the flags directly
2020-10-21 23:13:46 -07:00
Yann Collet
0f8ee5c51e
Merge branch 'dev' into libzstd_autoconf
2020-10-21 22:36:09 -07:00
Yann Collet
d0436b2a45
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
2020-10-21 19:22:45 -07:00
Yann Collet
8a453a34c5
automatic %.h header dependency tracking
...
also : BUILD_DIR can be manually specified
2020-10-21 17:25:07 -07:00
Yann Collet
2224ec33ed
Merge pull request #2367 from facebook/progressive_build
...
faster rebuild of zstd
2020-10-21 15:43:14 -07:00
Yann Collet
2b99bc29bf
consolidated vpath
2020-10-21 04:01:01 -07:00
Yann Collet
e8eb2939fe
store %.o object files into obj/
...
both static and dynamic libraries have their own object directory
2020-10-21 03:44:38 -07:00
Yann Collet
3e519be965
minor cleaning
2020-10-21 03:22:27 -07:00