]> git.ipfire.org Git - thirdparty/zstd.git/log
thirdparty/zstd.git
2 years agoEasy: Print Mode as Octal in `chmod()` Trace 3432/head
W. Felix Handte [Wed, 18 Jan 2023 19:15:53 +0000 (11:15 -0800)] 
Easy: Print Mode as Octal in `chmod()` Trace

2 years agoMimic gzip chown(gid), chmod(), chown(uid) Behavior
W. Felix Handte [Wed, 18 Jan 2023 00:37:30 +0000 (16:37 -0800)] 
Mimic gzip chown(gid), chmod(), chown(uid) Behavior

Avoids a race condition in which we unintentionally open up permissions to
the wrong group.

2 years agoCopy Permissions from Source File
W. Felix Handte [Tue, 17 Jan 2023 23:08:15 +0000 (15:08 -0800)] 
Copy Permissions from Source File

2 years agoRe-Use `stat_t` in `FIO_compressFilename_srcFile()`
W. Felix Handte [Tue, 17 Jan 2023 22:50:31 +0000 (14:50 -0800)] 
Re-Use `stat_t` in `FIO_compressFilename_srcFile()`

2 years agoUse Existing Src File Stat in `*_dstFile()` Funcs
W. Felix Handte [Tue, 17 Jan 2023 22:08:22 +0000 (14:08 -0800)] 
Use Existing Src File Stat in `*_dstFile()` Funcs

One fewer `stat()` call to make per operation!

2 years agoPass `stat_t` into `*_dstFile()` Functions
W. Felix Handte [Tue, 17 Jan 2023 22:05:15 +0000 (14:05 -0800)] 
Pass `stat_t` into `*_dstFile()` Functions

2 years ago`FIO_openSrcFile()` Returns File Stat
W. Felix Handte [Tue, 17 Jan 2023 22:01:06 +0000 (14:01 -0800)] 
`FIO_openSrcFile()` Returns File Stat

2 years agoMerge pull request #3424 from felixhandte/disable-asan-msan-poison-mingw
Felix Handte [Tue, 17 Jan 2023 17:41:41 +0000 (12:41 -0500)] 
Merge pull request #3424 from felixhandte/disable-asan-msan-poison-mingw

Disable Custom ASAN/MSAN Poisoning on MinGW Builds

2 years agofix msys2 symlink breakage in CI (#3429)
Elliot Gorokhovsky [Tue, 17 Jan 2023 17:10:15 +0000 (12:10 -0500)] 
fix msys2 symlink breakage in CI (#3429)

2 years agoBump github/codeql-action from 2.1.37 to 2.1.38 (#3428)
dependabot[bot] [Mon, 16 Jan 2023 22:22:19 +0000 (17:22 -0500)] 
Bump github/codeql-action from 2.1.37 to 2.1.38 (#3428)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.1.37 to 2.1.38.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/959cbb7472c4d4ad70cdfe6f4976053fe48ab394...515828d97454b8354517688ddc5b48402b723750)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoDeprecate advanced streaming functions (#3408)
Elliot Gorokhovsky [Fri, 13 Jan 2023 19:51:47 +0000 (14:51 -0500)] 
Deprecate advanced streaming functions (#3408)

* deprecate advanced streaming functions

* remove internal usage of the deprecated functions

* nit

* suppress warnings in tests/zstreamtest.c

* purge ZSTD_initDStream_usingDict

* nits

* c90 compat

* zstreamtest.c already disables deprecation warnings!

* fix initDStream() return value

* fix typo

* wasn't able to import private symbol properly, this commit works around that

* new strategy for zbuff

* undo zbuff deprecation warning changes

* move ZSTD_DISABLE_DEPRECATE_WARNINGS from .h to .c

2 years agoDon't Even Declare Poisoning Functions if Poisoning is Disabled 3424/head
W. Felix Handte [Fri, 13 Jan 2023 16:56:48 +0000 (11:56 -0500)] 
Don't Even Declare Poisoning Functions if Poisoning is Disabled

This guarantees that we won't accidentally forget to check the macro somewhere
where we use these functions.

2 years agoDisable Custom ASAN/MSAN Poisoning on MinGW Builds
W. Felix Handte [Fri, 13 Jan 2023 16:51:59 +0000 (11:51 -0500)] 
Disable Custom ASAN/MSAN Poisoning on MinGW Builds

Addresses #3240.

2 years agoMerge pull request #3419 from facebook/fix3416
Yann Collet [Fri, 13 Jan 2023 08:21:08 +0000 (00:21 -0800)] 
Merge pull request #3419 from facebook/fix3416

fix root cause of #3416

2 years agoAdd support for in-place decompression
Nick Terrell [Thu, 12 Jan 2023 02:14:40 +0000 (18:14 -0800)] 
Add support for in-place decompression

* Add a function and macro ZSTD_decompressionMargin() that computes the
  decompression margin for in-place decompression. The function computes
  a tight margin that works in all cases, and the macro computes an upper
  bound that will only work if flush isn't used.
* When doing in-place decompression, make sure that our output buffer
  doesn't overlap with the input buffer. This ensures that we don't
  decide to use the portion of the output buffer that overlaps the input
  buffer for temporary memory, like for literals.
* Add a simple unit test.
* Add in-place decompression to the simple_round_trip and
  stream_round_trip fuzzers. This should help verify that our margin stays
  correct.

2 years agoadd explanation about new test 3419/head
Yann Collet [Thu, 12 Jan 2023 23:49:01 +0000 (15:49 -0800)] 
add explanation about new test

as requested by @terrelln

2 years agofix root cause of #3416
Yann Collet [Wed, 11 Jan 2023 23:11:51 +0000 (15:11 -0800)] 
fix root cause of #3416

A minor change in 5434de0 changed a `<=` into a `<`,
and as an indirect consequence allowed compression attempt of literals when there are only 6 literals to compress
(previous limit was effectively 7 literals).

This is not in itself a problem, as the threshold is merely an heuristic,
but it emerged a bug that has always been there, and was just never triggered so far due to the previous limit.
This bug would make the literal compressor believes that all literals are the same symbol,
but for the exact case where nbLiterals==6, plus a pretty wild combination of other limit conditions,
this outcome could be false, resulting in data corruption.

Replaced the blind heuristic by an actual test for all limit cases,
so that even if the threshold is changed again in the future,
the detection of RLE mode will remain reliable.

2 years agoMerge pull request #3413 from facebook/timefn
Yann Collet [Thu, 12 Jan 2023 23:34:00 +0000 (15:34 -0800)] 
Merge pull request #3413 from facebook/timefn

minor refactoring for timefn

2 years agoMerge pull request #3402 from facebook/dependabot/github_actions/ossf/scorecard-actio...
Felix Handte [Thu, 12 Jan 2023 18:28:04 +0000 (13:28 -0500)] 
Merge pull request #3402 from facebook/dependabot/github_actions/ossf/scorecard-action-2.1.2

Bump ossf/scorecard-action from 2.1.0 to 2.1.2

2 years agoCompletely overhaul Windows CI (#3410)
Elliot Gorokhovsky [Wed, 11 Jan 2023 21:29:23 +0000 (16:29 -0500)] 
Completely overhaul Windows CI (#3410)

* Overhaul windows CI

* upgrade setup-msbuild from v1.1.3 to v1.3

* remove cmake 2019 test

* fix 32-bit gcc mingw test

* merge conflict

2 years agoMake the producer use the same amount of entropy
Daniel Kutenin [Tue, 10 Jan 2023 20:30:03 +0000 (20:30 +0000)] 
Make the producer use the same amount of entropy

2 years agoFix fuzzing with ZSTD_MULTITHREAD
Daniel Kutenin [Tue, 10 Jan 2023 15:33:50 +0000 (15:33 +0000)] 
Fix fuzzing with ZSTD_MULTITHREAD

At Google we fuzz zstd without ZSTD_MULTITHREAD but we want inputs to be as much as reproducible. It allows us to test new fuzzing methods for our fuzz team internally and have more horsepower to find bugs

2 years agoMerge pull request #3414 from facebook/dependabot/github_actions/actions/checkout...
Yann Collet [Mon, 9 Jan 2023 19:33:29 +0000 (11:33 -0800)] 
Merge pull request #3414 from facebook/dependabot/github_actions/actions/checkout-3.3.0

Bump actions/checkout from 3.2.0 to 3.3.0

2 years agoBump actions/checkout from 3.2.0 to 3.3.0 3414/head
dependabot[bot] [Mon, 9 Jan 2023 05:10:46 +0000 (05:10 +0000)] 
Bump actions/checkout from 3.2.0 to 3.3.0

Bumps [actions/checkout](https://github.com/actions/checkout) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/755da8c3cf115ac066823e79a1e1788f8940201b...ac593985615ec2ede58e132d2e21d2b1cbd6127c)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2 years agominor simplification refactoring for timefn 3413/head
Yann Collet [Fri, 6 Jan 2023 23:25:36 +0000 (15:25 -0800)] 
minor simplification refactoring for timefn

`UTIL_getSpanTimeMicro()` can be factored in a generic way,
reducing OS-dependent code.

2 years agominor: fix conversion warnings
Yann Collet [Thu, 5 Jan 2023 04:00:04 +0000 (20:00 -0800)] 
minor: fix conversion warnings

2 years agoMerge pull request #3391 from facebook/fix3228
Yann Collet [Wed, 4 Jan 2023 00:01:52 +0000 (16:01 -0800)] 
Merge pull request #3391 from facebook/fix3228

improve compression ratio of small alphabets

2 years agoupdate levels.sh test 3391/head
Yann Collet [Thu, 22 Dec 2022 00:21:29 +0000 (16:21 -0800)] 
update levels.sh test

comparing level 19 to level 22 and expecting a stricter better result from level 22
is not that guaranteed,
because level 19 and 22 are very close to each other,
especially for small files,
so any noise in the final compression result
result in failing this test.

Level 22 could be compared to something much lower, like level 15,
But level 19 is required anyway, because there is a clamping test which depends on it.

Removed level 22, kept level 19

2 years agoupdate regression results
Yann Collet [Tue, 3 Jan 2023 22:04:23 +0000 (14:04 -0800)] 
update regression results

2 years agoimprove compression ratio of small alphabets
Yann Collet [Wed, 21 Dec 2022 22:58:53 +0000 (14:58 -0800)] 
improve compression ratio of small alphabets

fix #3328

In situations where the alphabet size is very small,
the evaluation of literal costs from the Optimal Parser is initially incorrect.
It takes some time to converge, during which compression is less efficient.
This is especially important for small files,
because there will not be enough data to converge,
so most of the parsing is selected based on incorrect metrics.

After this patch, the scenario ##3328 gets fixed,
delivering the expected 29 bytes compressed size (smallest known compressed size).

2 years agoMerge pull request #3302 from daniellerozenblit/optimal-huff-depth-speed
daniellerozenblit [Tue, 3 Jan 2023 17:51:51 +0000 (12:51 -0500)] 
Merge pull request #3302 from daniellerozenblit/optimal-huff-depth-speed

Optimal huff depth speed improvements

2 years agoupdate regression results.csv 3302/head
Danielle Rozenblit [Tue, 3 Jan 2023 16:41:40 +0000 (08:41 -0800)] 
update regression results.csv

2 years agoimplement suggestions
Danielle Rozenblit [Tue, 3 Jan 2023 15:20:21 +0000 (07:20 -0800)] 
implement suggestions

2 years agoMerge pull request #3248 from facebook/opt_comments1
Yann Collet [Thu, 29 Dec 2022 02:03:57 +0000 (18:03 -0800)] 
Merge pull request #3248 from facebook/opt_comments1

[easy] add a few comments to the optimal parser code base for improved clarity

2 years agofixed incorrect assert 3248/head
Yann Collet [Thu, 29 Dec 2022 01:23:40 +0000 (17:23 -0800)] 
fixed incorrect assert

commented Fweight instead

2 years agojust add some comments to zstd_opt for improved clarity
Yann Collet [Fri, 19 Aug 2022 23:04:28 +0000 (16:04 -0700)] 
just add some comments to zstd_opt for improved clarity

2 years agoMerge pull request #3400 from danlark1/dev
Yann Collet [Wed, 28 Dec 2022 23:50:26 +0000 (15:50 -0800)] 
Merge pull request #3400 from danlark1/dev

Move deprecated annotation before static to allow C++ compilation for clang

2 years agoMerge pull request #3395 from terrelln/2022-12-21-deprecated-test
Yann Collet [Wed, 28 Dec 2022 23:49:50 +0000 (15:49 -0800)] 
Merge pull request #3395 from terrelln/2022-12-21-deprecated-test

[tests] Remove deprecated function from longmatch.c test

2 years agoupdate ZSTD_CCts_setCParams() inline documentation
Yann Collet [Wed, 28 Dec 2022 23:08:18 +0000 (15:08 -0800)] 
update ZSTD_CCts_setCParams() inline documentation

specify behavior when changing compression parameters during MT compression,
reported by @embg

2 years agoMerge pull request #3403 from facebook/setCParams
Yann Collet [Wed, 28 Dec 2022 22:07:13 +0000 (14:07 -0800)] 
Merge pull request #3403 from facebook/setCParams

ZSTD_CCtx_setCParams

2 years agoExternal matchfinder API (#3333)
Elliot Gorokhovsky [Wed, 28 Dec 2022 21:45:14 +0000 (16:45 -0500)] 
External matchfinder API (#3333)

* First building commit with sample matchfinder

* Set up ZSTD_externalMatchCtx struct

* move seqBuffer to ZSTD_Sequence*

* support non-contiguous dictionary

* clean up parens

* add clearExternalMatchfinder, handle allocation errors

* Add useExternalMatchfinder cParam

* validate useExternalMatchfinder cParam

* Disable LDM + external matchfinder

* Check for static CCtx

* Validate mState and mStateDestructor

* Improve LDM check to cover both branches

* Error API with optional fallback

* handle RLE properly for external matchfinder

* nit

* Move to a CDict-like model for resource ownership

* Add hidden useExternalMatchfinder bool to CCtx_params_s

* Eliminate malloc, move to cwksp allocation

* Handle CCtx reset properly

* Ensure seqStore has enough space for external sequences

* fix capitalization

* Add DEBUGLOG statements

* Add compressionLevel param to matchfinder API

* fix c99 issues and add a param combination error code

* nits

* Test external matchfinder API

* C90 compat for simpleExternalMatchFinder

* Fix some @nocommits and an ASAN bug

* nit

* nit

* nits

* forward declare copySequencesToSeqStore functions in zstd_compress_internal.h

* nit

* nit

* nits

* Update copyright headers

* Fix CMake zstreamtest build

* Fix copyright headers (again)

* typo

* Add externalMatchfinder demo program to make contrib

* Reduce memory consumption for small blockSize

* ZSTD_postProcessExternalMatchFinderResult nits

* test sum(matchlen) + sum(litlen) == srcSize in debug builds

* refExternalMatchFinder -> registerExternalMatchFinder

* C90 nit

* zstreamtest nits

* contrib nits

* contrib nits

* allow block splitter + external matchfinder, refactor

* add windowSize param

* add contrib/externalMatchfinder/README.md

* docs

* go back to old RLE heuristic because of the first block issue

* fix initializer element is not a constant expression

* ref contrib from zstd.h

* extremely pedantic compiler warning fix, meson fix, typo fix

* Additional docs on API limitations

* minor nits

* Refactor maxNbSeq calculation into a helper function

* Fix copyright

2 years agoSignal parameter change during MT compression 3403/head
Yann Collet [Wed, 28 Dec 2022 21:14:58 +0000 (13:14 -0800)] 
Signal parameter change during MT compression

2 years agoNew xp library symbol : ZSTD_CCtx_setCParams()
Yann Collet [Wed, 28 Dec 2022 07:40:34 +0000 (23:40 -0800)] 
New xp library symbol : ZSTD_CCtx_setCParams()

Inspired by #3395,
offer a new capability to set all parameters defined in a ZSTD_compressionParameters structure
with a single symbol invocation
to improve user code brevity.

2 years agoMerge pull request #3394 from terrelln/issue-3010
Yann Collet [Wed, 28 Dec 2022 00:20:05 +0000 (16:20 -0800)] 
Merge pull request #3394 from terrelln/issue-3010

[cli-tests] Test file stat read/write

2 years agoBump ossf/scorecard-action from 2.1.0 to 2.1.2 3402/head
dependabot[bot] [Mon, 26 Dec 2022 05:08:53 +0000 (05:08 +0000)] 
Bump ossf/scorecard-action from 2.1.0 to 2.1.2

Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.1.0 to 2.1.2.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](https://github.com/ossf/scorecard-action/compare/937ffa90d79c7d720498178154ad4c7ba1e4ad8c...e38b1902ae4f44df626f11ba0734b14fb91f8f86)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2 years agocmake build: fix nit
Yann Collet [Fri, 23 Dec 2022 22:18:11 +0000 (14:18 -0800)] 
cmake build: fix nit

reported by @jaimeMF in https://github.com/facebook/zstd/pull/3392#discussion_r1056643794

2 years agoMove deprecated annotation before static to allow C++ compilation for clang 3400/head
Daniel Kutenin [Fri, 23 Dec 2022 12:07:31 +0000 (12:07 +0000)] 
Move deprecated annotation before static to allow C++ compilation for clang

This fixes last 2 instances of https://github.com/facebook/zstd/issues/3250

2 years agoMerge pull request #3398 from facebook/fix3316
Yann Collet [Fri, 23 Dec 2022 00:57:05 +0000 (16:57 -0800)] 
Merge pull request #3398 from facebook/fix3316

spec update : require minimum nb of literals for 4-streams mode

2 years agospec update : require minimum nb of literals for 4-streams mode 3398/head
Yann Collet [Thu, 22 Dec 2022 19:30:15 +0000 (11:30 -0800)] 
spec update : require minimum nb of literals for 4-streams mode

Reported by @shulib :
the specification for 4-streams mode
doesn't work when the amount of literals to compress is 5 bytes.
Extending it, it also doesn't work for sizes 1 or 2.

This patch updates the specification and the implementation
to require a minimum of 6 literals to trigger or accept the 4-streams mode.

The impact is expected to be a no-op :
the 4-streams mode is never triggered for such small quantity of literals anyway,
since it would be wasteful (it costs ~7.3 bytes more than single-stream mode).
An informal lower limit is set at ~256 bytes,
so the technical minimum is very far from this limit.

This is just meant for completeness of the specification.

2 years agoMerge pull request #3399 from facebook/fix2577
Yann Collet [Thu, 22 Dec 2022 22:05:36 +0000 (14:05 -0800)] 
Merge pull request #3399 from facebook/fix2577

Support decompression of compressed blocks of size ZSTD_BLOCKSIZE_MAX

2 years agoSupport decompression of compressed blocks of size ZSTD_BLOCKSIZE_MAX exactly 3399/head
Yann Collet [Thu, 22 Dec 2022 20:40:27 +0000 (12:40 -0800)] 
Support decompression of compressed blocks of size ZSTD_BLOCKSIZE_MAX exactly

2 years agoMerge pull request #3397 from felixhandte/man-page-tweaks
Felix Handte [Thu, 22 Dec 2022 19:49:59 +0000 (14:49 -0500)] 
Merge pull request #3397 from felixhandte/man-page-tweaks

Man Page Tweaks, Edits, Formatting Fixes

2 years ago`make man` 3397/head
W. Felix Handte [Thu, 22 Dec 2022 19:13:24 +0000 (14:13 -0500)] 
`make man`

2 years agoMan Page Tweaks, Edits, Formatting Fixes
W. Felix Handte [Thu, 22 Dec 2022 19:04:36 +0000 (14:04 -0500)] 
Man Page Tweaks, Edits, Formatting Fixes

This started as an application of the edits suggested in #3201 and expanded
from there.

2 years ago[cli-tests] Add tests that use --trace-file-stat 3394/head
Nick Terrell [Thu, 22 Dec 2022 01:36:27 +0000 (17:36 -0800)] 
[cli-tests] Add tests that use --trace-file-stat

Basic tests for (de)compressing in the following modes:
* file to file
* file to stdout
* stdin to file
* stdin to stdout

These are basic tests, and aren't testing more advanced scenarios, but
it adds the groundwork for more complex tests as needed.

Fixes #3010.

2 years ago[tests] Remove deprecated function from longmatch.c test 3395/head
Nick Terrell [Thu, 22 Dec 2022 01:48:24 +0000 (17:48 -0800)] 
[tests] Remove deprecated function from longmatch.c test

Thanks to @eli-schwartz for pointing it out!

We should maybe consider adding a helper function for applying
`ZSTD_parameters` and `ZSTD_compressionParameters` to a context.
That would aid the transition to the new API in situations like this.

2 years agoFix `make clangbuild` & add CI
Nick Terrell [Thu, 22 Dec 2022 00:09:25 +0000 (16:09 -0800)] 
Fix `make clangbuild` & add CI

Fix the errors for:
* `-Wdocumentation`
* `-Wconversion` except `-Wsign-conversion`

2 years ago[cmake] Add noexecstack to compiler/linker flags
Nick Terrell [Wed, 21 Dec 2022 23:02:27 +0000 (15:02 -0800)] 
[cmake] Add noexecstack to compiler/linker flags

2 years ago[cli-tests] Add --set-exact-output to update the expected output
Nick Terrell [Thu, 22 Dec 2022 01:21:09 +0000 (17:21 -0800)] 
[cli-tests] Add --set-exact-output to update the expected output

`./run.py --set-exact-output` will update `stdout.expect` and
`stderr.expect` to match the expected output. This doesn't apply to
outputs which use `.glob` or `.ignore`.

2 years ago[util] Add traces enabled by --trace-file-stat
Nick Terrell [Thu, 22 Dec 2022 01:00:44 +0000 (17:00 -0800)] 
[util] Add traces enabled by --trace-file-stat

Print traces to stderr when --trace-file-stat is passed.
We trace all functions that read and write file metadata.

2 years agoMerge pull request #3385 from jonpalmisc/improve_help
Yann Collet [Wed, 21 Dec 2022 18:56:09 +0000 (10:56 -0800)] 
Merge pull request #3385 from jonpalmisc/improve_help

Improve help/usage (`-h`, `-H`) formatting

2 years agoMerge pull request #3386 from felixhandte/pin-other-action-commit-hashes
Felix Handte [Wed, 21 Dec 2022 16:24:23 +0000 (11:24 -0500)] 
Merge pull request #3386 from felixhandte/pin-other-action-commit-hashes

Pin Remaining Action Dependencies (Except OSS-Fuzz)

2 years agoUpdate tests to expect new CLI help output 3385/head
Jon Palmisciano [Wed, 21 Dec 2022 01:11:37 +0000 (20:11 -0500)] 
Update tests to expect new CLI help output

2 years agoClean up welcome message
Jon Palmisciano [Wed, 21 Dec 2022 01:11:23 +0000 (20:11 -0500)] 
Clean up welcome message

2 years agoRewrite help output to improve readability
Jon Palmisciano [Tue, 20 Dec 2022 20:34:02 +0000 (15:34 -0500)] 
Rewrite help output to improve readability

2 years agoPin Remaining Action Dependencies (Except OSS-Fuzz) 3386/head
W. Felix Handte [Tue, 20 Dec 2022 22:10:01 +0000 (17:10 -0500)] 
Pin Remaining Action Dependencies (Except OSS-Fuzz)

The one that isn't pinned is the OSS-Fuzz builder and runner. They don't
offer tagged releases. I could pin to the current master commit, but I'm not
sure how desirable that is.

2 years agoMerge pull request #3384 from felixhandte/pin-checkout-action-commit-hash
Felix Handte [Tue, 20 Dec 2022 21:08:03 +0000 (16:08 -0500)] 
Merge pull request #3384 from felixhandte/pin-checkout-action-commit-hash

Pin actions/checkout Dependency to Specific Commit Hash

2 years ago[build][cmake] Fix cmake with custom assembler
Nick Terrell [Tue, 20 Dec 2022 02:54:22 +0000 (18:54 -0800)] 
[build][cmake] Fix cmake with custom assembler

Tell CMake to explicitly compile our assembly as C code, because we
require it is compiled by a C compiler, and it is only enabled for
clang/gcc.

Fixes #3193.

2 years agofix CI errors
Danielle Rozenblit [Tue, 20 Dec 2022 20:43:46 +0000 (12:43 -0800)] 
fix CI errors

2 years agoMerge branch 'optimal-huff-depth-speed' of github.com:daniellerozenblit/zstd into...
Danielle Rozenblit [Tue, 20 Dec 2022 20:28:07 +0000 (12:28 -0800)] 
Merge branch 'optimal-huff-depth-speed' of github.com:daniellerozenblit/zstd into optimal-huff-depth-speed

2 years agohuf log speed optimization: unidirectional scan of logs + break when regressing
Danielle Rozenblit [Tue, 20 Dec 2022 20:27:38 +0000 (12:27 -0800)] 
huf log speed optimization: unidirectional scan of logs + break when regressing

2 years agoPin actions/checkout Dependency to Specific Commit Hash 3384/head
W. Felix Handte [Tue, 20 Dec 2022 19:17:59 +0000 (14:17 -0500)] 
Pin actions/checkout Dependency to Specific Commit Hash

It's a bit silly, because if we can't trust GitHub, what are we doing here?
But OSSF complains about it, so let's fix it.

2 years agoMerge pull request #3378 from facebook/dependabot/github_actions/github/codeql-action...
Felix Handte [Tue, 20 Dec 2022 19:17:33 +0000 (14:17 -0500)] 
Merge pull request #3378 from facebook/dependabot/github_actions/github/codeql-action-2.1.37

Bump github/codeql-action from 1.0.26 to 2.1.37

2 years agoMerge pull request #3377 from facebook/dependabot/github_actions/ossf/scorecard-actio...
Felix Handte [Tue, 20 Dec 2022 19:16:10 +0000 (14:16 -0500)] 
Merge pull request #3377 from facebook/dependabot/github_actions/ossf/scorecard-action-2.1.0

Bump ossf/scorecard-action from 2.0.6 to 2.1.0

2 years agoMerge pull request #3340 from facebook/dependabot/github_actions/actions/upload-artif...
Felix Handte [Tue, 20 Dec 2022 19:15:43 +0000 (14:15 -0500)] 
Merge pull request #3340 from facebook/dependabot/github_actions/actions/upload-artifact-3

Bump actions/upload-artifact from 1 to 3

2 years ago[docs] Clarify dictionary loading documentation
Nick Terrell [Tue, 20 Dec 2022 02:08:35 +0000 (18:08 -0800)] 
[docs] Clarify dictionary loading documentation

Reinforce that loading a new dictionary clears the current dictionary.
Except for the multiple-ddict mode.

2 years agoMerge pull request #3173 from felixhandte/update-copyright-company
Felix Handte [Tue, 20 Dec 2022 18:51:01 +0000 (13:51 -0500)] 
Merge pull request #3173 from felixhandte/update-copyright-company

Update Copyright Comments

2 years agoCoalesce Almost All Copyright Notices to Standard Phrasing 3173/head
W. Felix Handte [Tue, 20 Dec 2022 17:49:47 +0000 (12:49 -0500)] 
Coalesce Almost All Copyright Notices to Standard Phrasing

```
for f in $(find . \( -path ./.git -o -path ./tests/fuzz/corpora -o -path ./tests/regression/data-cache -o -path ./tests/regression/cache \) -prune -o -type f); do sed -i '/Copyright .* \(Yann Collet\)\|\(Meta Platforms\)/ s/Copyright .*/Copyright (c) Meta Platforms, Inc. and affiliates./' $f; done

git checkout HEAD -- build/VS2010/libzstd-dll/libzstd-dll.rc build/VS2010/zstd/zstd.rc tests/test-license.py contrib/linux-kernel/test/include/linux/xxhash.h examples/streaming_compression_thread_pool.c lib/legacy/zstd_v0*.c lib/legacy/zstd_v0*.h
nano ./programs/windres/zstd.rc
nano ./build/VS2010/zstd/zstd.rc
nano ./build/VS2010/libzstd-dll/libzstd-dll.rc
```

2 years agoRewrite Copyright Date Ranges from `-present` to `-2022`
W. Felix Handte [Tue, 20 Dec 2022 17:44:56 +0000 (12:44 -0500)] 
Rewrite Copyright Date Ranges from `-present` to `-2022`

Apparently it's better. Somehow.

```
for f in $(find . \( -path ./.git -o -path ./tests/fuzz/corpora -o -path ./tests/regression/data-cache -o -path ./tests/regression/cache \) -prune -o -type f); do echo $f; sed -i 's/\-present/-2022/' $f; done

g co HEAD -- build/meson/
```

2 years agoUpdate test-license.py
W. Felix Handte [Tue, 21 Jun 2022 16:11:22 +0000 (12:11 -0400)] 
Update test-license.py

2 years agoUpdate Copyright Year ('2021' -> 'present')
W. Felix Handte [Tue, 20 Dec 2022 17:42:50 +0000 (12:42 -0500)] 
Update Copyright Year ('2021' -> 'present')

```
for f in $(find . \( -path ./.git -o -path ./tests/fuzz/corpora -o -path ./tests/regression/data-cache -o -path ./tests/regression/cache \) -prune -o -type f);
do
  sed -i 's/\-2021/-present/' $f;
done

g co HEAD -- .github/workflows/dev-short-tests.yml # fix bad match
```

2 years agoUpdate Copyright Headers 'Facebook' -> 'Meta Platforms'
W. Felix Handte [Tue, 20 Dec 2022 17:37:57 +0000 (12:37 -0500)] 
Update Copyright Headers 'Facebook' -> 'Meta Platforms'

```
for f in $(find . \( -path ./.git -o -path ./tests/fuzz/corpora \) -prune -o -type f);
do
  sed -i 's/Facebook, Inc\./Meta Platforms, Inc. and affiliates./' $f;
done
```

2 years agoManually Update VS Code Copyright Definitions
W. Felix Handte [Tue, 21 Jun 2022 15:54:13 +0000 (11:54 -0400)] 
Manually Update VS Code Copyright Definitions

2 years agoMerge pull request #3289 from nmoinvaz/cmake/playtest-win
Yann Collet [Tue, 20 Dec 2022 00:39:38 +0000 (16:39 -0800)] 
Merge pull request #3289 from nmoinvaz/cmake/playtest-win

Don't attempt playTests.sh cmake test if running on Windows.

2 years agoMerge pull request #3364 from yoniko/fix-windows-mt-thread-resize-bug
Yonatan Komornik [Mon, 19 Dec 2022 23:54:01 +0000 (15:54 -0800)] 
Merge pull request #3364 from yoniko/fix-windows-mt-thread-resize-bug

Windows MT layer bug fixes

2 years agoCR fixes 3364/head
Yonatan Komornik [Mon, 19 Dec 2022 21:22:34 +0000 (13:22 -0800)] 
CR fixes

2 years ago[pzstd] Fixes for Windows build
Nick Terrell [Mon, 19 Dec 2022 20:23:29 +0000 (12:23 -0800)] 
[pzstd] Fixes for Windows build

* Add `Portability.h` to fix min/max issues.
* Fix conversion warnings
* Assert that windowLog <= 23, which is currently always the case.
  This could be loosened, but we aren't looking to add new functionality.

Fixes on top of PR #3375 by @eli-schwartz, which added Windows CI for contrib & programs.

2 years agoCI: build contrib directory on meson-windows
Eli Schwartz [Sun, 18 Dec 2022 02:24:31 +0000 (21:24 -0500)] 
CI: build contrib directory on meson-windows

2 years agoCI: build programs on meson-windows too
Eli Schwartz [Sun, 18 Dec 2022 02:09:48 +0000 (21:09 -0500)] 
CI: build programs on meson-windows too

2 years agoMerge pull request #3376 from facebook/split2
Yann Collet [Mon, 19 Dec 2022 21:00:27 +0000 (13:00 -0800)] 
Merge pull request #3376 from facebook/split2

Block splitter : minor reformatting

2 years agoBump github/codeql-action from 1.0.26 to 2.1.37 3378/head
dependabot[bot] [Mon, 19 Dec 2022 05:07:15 +0000 (05:07 +0000)] 
Bump github/codeql-action from 1.0.26 to 2.1.37

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1.0.26 to 2.1.37.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/5f532563584d71fdef14ee64d17bafb34f751ce5...959cbb7472c4d4ad70cdfe6f4976053fe48ab394)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2 years agoBump ossf/scorecard-action from 2.0.6 to 2.1.0 3377/head
dependabot[bot] [Mon, 19 Dec 2022 05:07:09 +0000 (05:07 +0000)] 
Bump ossf/scorecard-action from 2.0.6 to 2.1.0

Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.0.6 to 2.1.0.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](https://github.com/ossf/scorecard-action/compare/99c53751e09b9529366343771cc321ec74e9bd3d...937ffa90d79c7d720498178154ad4c7ba1e4ad8c)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2 years agominor reformatting 3376/head
Yann Collet [Sun, 18 Dec 2022 12:12:32 +0000 (04:12 -0800)] 
minor reformatting

and minor reliability and maintenance changes

2 years agomeson: zstreamtests should now pass on Windows
Yonatan Komornik [Sat, 17 Dec 2022 02:33:49 +0000 (18:33 -0800)] 
meson: zstreamtests should now pass on Windows

2 years agoFix race condition in the Windows thread / pthread translation layer
Yonatan Komornik [Sat, 17 Dec 2022 02:24:02 +0000 (18:24 -0800)] 
Fix race condition in the Windows thread / pthread translation layer

When spawning a Windows thread we have small worker wrapper function that translates
between the interfaces of Windows and POSIX threads.
This wrapper is given a pointer that might get stale before the worker starts running,
resulting in UB and crashes.
This commit adds synchronization so that we know the wrapper has finished reading the data
it needs before we allow the main thread to resume execution.

2 years agoFixes two bugs in the Windows thread / pthread translation layer
Yonatan Komornik [Fri, 16 Dec 2022 00:11:56 +0000 (16:11 -0800)] 
Fixes two bugs in the Windows thread / pthread translation layer

1. If threads are resized the threads' `ZSTD_pthread_t` might move
while the worker still holds a pointer into it (see more details in #3120).
2. The join operation was waiting for a thread and then return its `thread.arg`
as a return value, but since the `ZSTD_pthread_t thread` was passed by value it
would have a stale `arg` that wouldn't match the thread's actual return value.

This fix changes the `ZSTD_pthread_join` API and removes support for returning
a value. This means that we are diverging from the `pthread_join` API and this
is no longer just an alias.
In the future, if needed, we could return a Windows thread's return value using
`GetExitCodeThread`, but as this path wouldn't be excised in any case, it's
preferable to not add it right now.

2 years agoMerge pull request #3374 from yoniko/fix-meson-ci-dependancy
Yonatan Komornik [Sat, 17 Dec 2022 21:36:56 +0000 (13:36 -0800)] 
Merge pull request #3374 from yoniko/fix-meson-ci-dependancy

Fix Meson-Windows CI test by pulling a more recent version msvc-dev-cmd

2 years agomeson: Fix Windows CI test by pulling a more recent version msvc-dev-cmd 3374/head
Yonatan Komornik [Sat, 17 Dec 2022 18:33:49 +0000 (10:33 -0800)] 
meson: Fix Windows CI test by pulling a more recent version msvc-dev-cmd

2 years agoMerge pull request #3120 from eli-schwartz/meson-fixup
Yonatan Komornik [Sat, 17 Dec 2022 02:28:54 +0000 (18:28 -0800)] 
Merge pull request #3120 from eli-schwartz/meson-fixup

Meson test fixups

2 years agoMerge pull request #3373 from facebook/decompressBound
Yann Collet [Sat, 17 Dec 2022 00:55:30 +0000 (16:55 -0800)] 
Merge pull request #3373 from facebook/decompressBound

decompressBound tests and fix