Commit Graph

8590 Commits (029f974ddc6f3fcfaaa51173b09fdc7bd9dffcc1)

Author SHA1 Message Date
Yann Collet 029f974ddc strengthen compilation flags 2021-03-02 15:43:52 -08:00
Yann Collet c7e42e147b fixed const guarantees
read-only objects are properly const-ified in parameters
2021-03-02 15:24:30 -08:00
Yann Collet a80b10f5e6 fix potential leak on exit 2021-03-02 15:03:37 -08:00
Yann Collet ce6d1b9376
Merge pull request #2113 from mdittmer/expose-seek-table
[contrib] Support seek table-only API
2021-03-02 10:50:47 -08:00
Felix Handte 74d65eaa92
Merge pull request #2514 from felixhandte/v1.4.9
Prepare Codebase for v1.4.9 Release
2021-03-02 11:41:55 -05:00
W. Felix Handte 3835957b2d Update CHANGELOG 2021-03-01 18:00:10 -05:00
W. Felix Handte 0f1a52b349 Documentation Rebuild 2021-03-01 17:57:02 -05:00
W. Felix Handte d7db928f72 Bump Library Version 1.4.8 -> 1.4.9 2021-03-01 17:45:30 -05:00
Felix Handte aec1e8c715
Merge pull request #2513 from felixhandte/fix-2493
Avoid Using `stat -c` on NetBSD
2021-02-26 18:02:38 -05:00
Felix Handte 45ee23f6a1
Merge pull request #2512 from felixhandte/fix-2509
Detect `..` in Paths Correctly
2021-02-26 18:02:18 -05:00
W. Felix Handte 221e4659cd Avoid Using `stat -c` on NetBSD
Addresses #2493. I think. I don't have a NetBSD system to test on.
2021-02-26 13:05:39 -05:00
W. Felix Handte 9b7f9d26d5 Cover These Edge Cases in Tests 2021-02-26 13:01:20 -05:00
W. Felix Handte 61db590ad8 Detect `..` in Paths Correctly
This commit addresses #2509.
2021-02-26 12:29:42 -05:00
Nick Terrell aad85f19f0
Merge pull request #2510 from terrelln/regression
[regression] Update results.csv
2021-02-25 10:55:30 -08:00
Nick Terrell 04139c3ff2 [regression] Update results.csv
Fixes the update from PR #2508. I had accidentally forgotten to rebuild
the library, and the regression test suite isn't hooked up to the new
fancy build system yet.

I've double checked that the results are deterministic.
2021-02-24 19:11:38 -08:00
Yann Collet 61b63e9060
Merge pull request #2492 from niacat/dev
Use standard md5 tool on NetBSD.
2021-02-24 16:38:10 -08:00
Yann Collet c03e1305ff
Merge pull request #2489 from concatime/cmake-c-lib-programs
CMake: Enable only C for lib and programs projects
2021-02-24 15:58:33 -08:00
Nick Terrell 390e050b1d
Merge pull request #2508 from terrelln/regression
[regression] Update results.csv
2021-02-23 16:19:33 -08:00
Nick Terrell 59b2c596d7 [regression] Update results.csv
9f327c02fd changed the compression method
for LDM, so the results are slightly different.

I've re-tested LDM on some larger inputs and everything seems fine.
These ratio changes just seem to be noise. There is generally a 0.01%
swing in ratio, sometimes better sometimes worse, but never large.
2021-02-23 15:23:08 -08:00
Yann Collet 99dde00fc9
Merge pull request #2507 from facebook/freebsd12_2
update FreeBSD image to latest 12.2
2021-02-23 14:54:52 -08:00
Yann Collet d1c0ae9e6c
Merge pull request #2504 from skitt/stop-using-resetxstream
Stop using deprecated reset?Stream functions
2021-02-23 13:37:17 -08:00
Yann Collet 3d91ab74a1 disabled icc tests on Github Actions 2021-02-23 13:25:08 -08:00
Stephen Kitt adb54293ab
Stop using deprecated reset?Stream functions
These are replaced by the corresponding context resets. When
converting resetCStream, CCtx_setPledgedSrcSize isn't called if the
source size is "unknown".

This helps reduce the reliance on "static only" symbols, as well as
reducing the use of deprecated functions.

Signed-off-by: Stephen Kitt <steve@sk2.org>
2021-02-23 21:56:01 +01:00
Yann Collet 08fef036ec update FreeBSD image to latest 12.2 2021-02-23 10:40:44 -08:00
Yann Collet c79411a483
Merge pull request #2502 from facebook/ubsanfix
fix ubsan test errors
2021-02-20 11:05:55 -08:00
Yann Collet f2c0312889 removing signed integer overflow exception from ubsan tests 2021-02-19 16:30:06 -08:00
Yann Collet f7cffb5d9d
Merge pull request #2503 from terrelln/fuzz-ubsan
[fuzz] Fix compiler detection & update ubsan flags
2021-02-19 16:19:07 -08:00
Nick Terrell 91e6480458 [fuzz] Fix compiler detection & update ubsan flags
* Fix compiler version regex, which was broken for multi-digit
  versions.
* Fix compiler detection for gcc.
* Disable `pointer-overflow` instead of `integer-overflow` for gcc
  versions newer than 8.0.0.
2021-02-19 13:19:18 -08:00
Yann Collet 9b0772177c fix ubsan test errors
allows recovering from pointer overflow
2021-02-19 10:42:05 -08:00
Felix Handte a2adc6df9f
Merge pull request #2495 from felixhandte/umask
Use umask() to Constrain Created File Permissions
2021-02-17 17:03:23 -05:00
W. Felix Handte a774c57973 Use umask() to Constrain Created File Permissions
This commit addresses #2491.

Note that a downside of this solution is that it is global: `umask()` affects
all file creation calls in the process. I believe this is safe since
`fileio.c` functions should only ever be used in the zstd binary, and these
are (almost) the only files ever created by zstd, and AIUI they're only
created in a single thread. So we can get away with messing with global state.

Note that this doesn't change the permissions of files created by `dibio.c`.
I'm not sure what those should be...
2021-02-17 15:27:39 -05:00
Yann Collet b2bff75a7a
Merge pull request #2500 from senhuang42/add_cli_newline
[easy][cli] Add newline to boundary of --help message of --trace and --[no-]check
2021-02-17 10:43:41 -08:00
senhuang42 444c4650a0 Add newline to end of cli help message 2021-02-17 12:30:42 -05:00
Nick Terrell bb6ca68713
Merge pull request #2498 from terrelln/old-api-fix
[bug-fix] Make simple single-pass functions ignore advanced parameters
2021-02-16 10:51:25 -08:00
Nick Terrell 7736549bea [bug-fix] Make simple single-pass functions ignore advanced parameters
The simple compression functions are intended to ignore the advanced
parameters, but they were accidentally using them. All the
`ZSTD_parameters` were set correctly, but any extra parameters were
used as-is. E.g. `ZSTD_c_format`.

This PR makes all the simple single-pass functions listed below ignore
the advanced parameters, as intended.

* `ZSTD_compressCCtx()`
* `ZSTD_compress_usingDict()`
* `ZSTD_compress_usingCDict()`
* `ZSTD_compress_advanced()`
* `ZSTD_compress_usingCDict_advanced()`

It also adds a test case that ensures that each of these functions
ignore the advanced parameters.
2021-02-12 19:11:23 -08:00
Nick Terrell f39178b445
Merge pull request #2497 from terrelln/tracing
[lib] Set appliedParams.compressionLevel correctly
2021-02-12 17:34:07 -08:00
Nick Terrell c62eb05964 [lib] Set appliedParams.compressionLevel correctly
Forward the correct compressionLevel to the appliedParams in all cases.
It was already correct for the advanced API, so only the old single-pass
functions needed to be fixed.

This compression level is unused by the library, but is set so that the
tracing framework can consume it.
2021-02-12 15:00:14 -08:00
Nick Terrell 3ac842d6cc
Merge pull request #2496 from terrelln/tracing
[trace] Minor fixes found during integration
2021-02-12 10:48:30 -08:00
Nick Terrell f520f6dfbe [trace] Minor fixes found during integration
* Mark `ZSTD_CCtx_getParameter()` as const
* Add `extern "C"` guards to `zstd_trace.h`
2021-02-11 16:20:04 -08:00
Yann Collet 8884cb887d
Merge pull request #2483 from mpu/ldmgear
New algorithms for the long distance matcher
2021-02-11 08:38:23 -08:00
nia 74f85818a6 Use standard md5 tool on NetBSD.
This avoids a GNU coreutils dependency.

-n is used to match the output format of coreutils:
http://man.netbsd.org/md5.1
2021-02-11 10:50:11 +01:00
Quentin Carbonneaux 552efcac2d relocate large arrays from the stack to ldmState_t 2021-02-10 16:16:54 +01:00
Nick Terrell a294a19990
Merge pull request #2490 from terrelln/tracing
[trace] Keep track of a uint64_t tracing context
2021-02-09 12:16:17 -08:00
Nick Terrell e59c9459a5 [trace] Keep track of a uint64_t tracing context
The most common information that you want to track between begin() and
end() is the timestamp of the begin function, so you can measure the
duration of the (de)compression call. Allow the tracing library to put
this information inside the `ZSTD_TraceCtx`, so it doesn't need to keep
a global map in this case. If a single uint64_t is not enough, the
tracing library can return a unique identifier (like the context
pointer) instead, and use it as a key in a map.

This keeps the simple case simple.
2021-02-09 11:37:05 -08:00
Quentin Carbonneaux e2ad174d73 fix some compiler warnings 2021-02-08 20:19:16 +01:00
Issam E. Maghni 2636f53619 CMake: Enable only C for lib and programs projects 2021-02-07 19:39:04 -05:00
Nick Terrell 856f38e6c5
Merge pull request #2482 from terrelln/tracing
Add (de)compression tracing functionality
2021-02-05 19:19:01 -08:00
Nick Terrell 54a4998a80 Add basic tracing functionality 2021-02-05 16:28:52 -08:00
Nick Terrell e926e9c4c3
Merge pull request #2488 from terrelln/continuity
[zstd] Fix NULL pointer addition in ZSTD_checkContinuity()
2021-02-05 16:08:02 -08:00
Nick Terrell f9b1e711ba [zstd] Fix NULL pointer addition in ZSTD_checkContinuity()
Don't start a new section when `dstSize == 0` to avoid NULL
pointer addition.
2021-02-05 12:18:06 -08:00