From owner-svn-src-all@freebsd.org Sat May 23 20:38:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 59CB22DD632; Sat, 23 May 2020 20:38:31 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 49TwDR22K3z4d66; Sat, 23 May 2020 20:38:31 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 407DC15BAC; Sat, 23 May 2020 20:38:31 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 04NKcVcF046928; Sat, 23 May 2020 20:38:31 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 04NKcUtR046923; Sat, 23 May 2020 20:38:30 GMT (envelope-from cem@FreeBSD.org) Message-Id: <202005232038.04NKcUtR046923@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Sat, 23 May 2020 20:38:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r361424 - in vendor/zstd/1.4.5: . contrib contrib/docker contrib/experimental_dict_builders/benchmarkDictBuilder contrib/experimental_dict_builders/fastCover contrib/experimental_dict_b... X-SVN-Group: vendor X-SVN-Commit-Author: cem X-SVN-Commit-Paths: in vendor/zstd/1.4.5: . contrib contrib/docker contrib/experimental_dict_builders/benchmarkDictBuilder contrib/experimental_dict_builders/fastCover contrib/experimental_dict_builders/randomDictBuilder... X-SVN-Commit-Revision: 361424 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 May 2020 20:38:31 -0000 Author: cem Date: Sat May 23 20:38:30 2020 New Revision: 361424 URL: https://svnweb.freebsd.org/changeset/base/361424 Log: Tag Zstd 1.4.5 Added: vendor/zstd/1.4.5/ - copied from r361422, vendor/zstd/dist/ vendor/zstd/1.4.5/lib/compress/zstd_compress_superblock.c - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_compress_superblock.c vendor/zstd/1.4.5/lib/compress/zstd_compress_superblock.h - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_compress_superblock.h Replaced: vendor/zstd/1.4.5/CHANGELOG - copied unchanged from r361423, vendor/zstd/dist/CHANGELOG vendor/zstd/1.4.5/CONTRIBUTING.md - copied unchanged from r361423, vendor/zstd/dist/CONTRIBUTING.md vendor/zstd/1.4.5/Makefile - copied unchanged from r361423, vendor/zstd/dist/Makefile vendor/zstd/1.4.5/README.md - copied unchanged from r361423, vendor/zstd/dist/README.md vendor/zstd/1.4.5/TESTING.md - copied unchanged from r361423, vendor/zstd/dist/TESTING.md vendor/zstd/1.4.5/appveyor.yml - copied unchanged from r361423, vendor/zstd/dist/appveyor.yml vendor/zstd/1.4.5/doc/educational_decoder/Makefile - copied unchanged from r361423, vendor/zstd/dist/doc/educational_decoder/Makefile vendor/zstd/1.4.5/doc/educational_decoder/README.md - copied unchanged from r361423, vendor/zstd/dist/doc/educational_decoder/README.md vendor/zstd/1.4.5/doc/educational_decoder/harness.c - copied unchanged from r361423, vendor/zstd/dist/doc/educational_decoder/harness.c vendor/zstd/1.4.5/doc/educational_decoder/zstd_decompress.c - copied unchanged from r361423, vendor/zstd/dist/doc/educational_decoder/zstd_decompress.c vendor/zstd/1.4.5/doc/educational_decoder/zstd_decompress.h - copied unchanged from r361423, vendor/zstd/dist/doc/educational_decoder/zstd_decompress.h vendor/zstd/1.4.5/doc/zstd_compression_format.md - copied unchanged from r361423, vendor/zstd/dist/doc/zstd_compression_format.md vendor/zstd/1.4.5/doc/zstd_manual.html - copied unchanged from r361423, vendor/zstd/dist/doc/zstd_manual.html vendor/zstd/1.4.5/examples/Makefile - copied unchanged from r361423, vendor/zstd/dist/examples/Makefile vendor/zstd/1.4.5/examples/common.h - copied unchanged from r361423, vendor/zstd/dist/examples/common.h vendor/zstd/1.4.5/examples/dictionary_compression.c - copied unchanged from r361423, vendor/zstd/dist/examples/dictionary_compression.c vendor/zstd/1.4.5/examples/dictionary_decompression.c - copied unchanged from r361423, vendor/zstd/dist/examples/dictionary_decompression.c vendor/zstd/1.4.5/examples/multiple_simple_compression.c - copied unchanged from r361423, vendor/zstd/dist/examples/multiple_simple_compression.c vendor/zstd/1.4.5/examples/multiple_streaming_compression.c - copied unchanged from r361423, vendor/zstd/dist/examples/multiple_streaming_compression.c vendor/zstd/1.4.5/examples/simple_compression.c - copied unchanged from r361423, vendor/zstd/dist/examples/simple_compression.c vendor/zstd/1.4.5/examples/simple_decompression.c - copied unchanged from r361423, vendor/zstd/dist/examples/simple_decompression.c vendor/zstd/1.4.5/examples/streaming_compression.c - copied unchanged from r361423, vendor/zstd/dist/examples/streaming_compression.c vendor/zstd/1.4.5/examples/streaming_decompression.c - copied unchanged from r361423, vendor/zstd/dist/examples/streaming_decompression.c vendor/zstd/1.4.5/examples/streaming_memory_usage.c - copied unchanged from r361423, vendor/zstd/dist/examples/streaming_memory_usage.c vendor/zstd/1.4.5/lib/Makefile - copied unchanged from r361423, vendor/zstd/dist/lib/Makefile vendor/zstd/1.4.5/lib/README.md - copied unchanged from r361423, vendor/zstd/dist/lib/README.md vendor/zstd/1.4.5/lib/common/bitstream.h - copied unchanged from r361423, vendor/zstd/dist/lib/common/bitstream.h vendor/zstd/1.4.5/lib/common/compiler.h - copied unchanged from r361423, vendor/zstd/dist/lib/common/compiler.h vendor/zstd/1.4.5/lib/common/cpu.h - copied unchanged from r361423, vendor/zstd/dist/lib/common/cpu.h vendor/zstd/1.4.5/lib/common/debug.c - copied unchanged from r361423, vendor/zstd/dist/lib/common/debug.c vendor/zstd/1.4.5/lib/common/debug.h - copied unchanged from r361423, vendor/zstd/dist/lib/common/debug.h vendor/zstd/1.4.5/lib/common/entropy_common.c - copied unchanged from r361423, vendor/zstd/dist/lib/common/entropy_common.c vendor/zstd/1.4.5/lib/common/error_private.c - copied unchanged from r361423, vendor/zstd/dist/lib/common/error_private.c vendor/zstd/1.4.5/lib/common/error_private.h - copied unchanged from r361423, vendor/zstd/dist/lib/common/error_private.h vendor/zstd/1.4.5/lib/common/fse.h - copied unchanged from r361423, vendor/zstd/dist/lib/common/fse.h vendor/zstd/1.4.5/lib/common/fse_decompress.c - copied unchanged from r361423, vendor/zstd/dist/lib/common/fse_decompress.c vendor/zstd/1.4.5/lib/common/huf.h - copied unchanged from r361423, vendor/zstd/dist/lib/common/huf.h vendor/zstd/1.4.5/lib/common/mem.h - copied unchanged from r361423, vendor/zstd/dist/lib/common/mem.h vendor/zstd/1.4.5/lib/common/pool.c - copied unchanged from r361423, vendor/zstd/dist/lib/common/pool.c vendor/zstd/1.4.5/lib/common/pool.h - copied unchanged from r361423, vendor/zstd/dist/lib/common/pool.h vendor/zstd/1.4.5/lib/common/threading.c - copied unchanged from r361423, vendor/zstd/dist/lib/common/threading.c vendor/zstd/1.4.5/lib/common/threading.h - copied unchanged from r361423, vendor/zstd/dist/lib/common/threading.h vendor/zstd/1.4.5/lib/common/xxhash.c - copied unchanged from r361423, vendor/zstd/dist/lib/common/xxhash.c vendor/zstd/1.4.5/lib/common/xxhash.h - copied unchanged from r361423, vendor/zstd/dist/lib/common/xxhash.h vendor/zstd/1.4.5/lib/common/zstd_common.c - copied unchanged from r361423, vendor/zstd/dist/lib/common/zstd_common.c vendor/zstd/1.4.5/lib/common/zstd_errors.h - copied unchanged from r361423, vendor/zstd/dist/lib/common/zstd_errors.h vendor/zstd/1.4.5/lib/common/zstd_internal.h - copied unchanged from r361423, vendor/zstd/dist/lib/common/zstd_internal.h vendor/zstd/1.4.5/lib/compress/fse_compress.c - copied unchanged from r361423, vendor/zstd/dist/lib/compress/fse_compress.c vendor/zstd/1.4.5/lib/compress/hist.c - copied unchanged from r361423, vendor/zstd/dist/lib/compress/hist.c vendor/zstd/1.4.5/lib/compress/hist.h - copied unchanged from r361423, vendor/zstd/dist/lib/compress/hist.h vendor/zstd/1.4.5/lib/compress/huf_compress.c - copied unchanged from r361423, vendor/zstd/dist/lib/compress/huf_compress.c vendor/zstd/1.4.5/lib/compress/zstd_compress.c - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_compress.c vendor/zstd/1.4.5/lib/compress/zstd_compress_internal.h - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_compress_internal.h vendor/zstd/1.4.5/lib/compress/zstd_compress_literals.c - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_compress_literals.c vendor/zstd/1.4.5/lib/compress/zstd_compress_literals.h - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_compress_literals.h vendor/zstd/1.4.5/lib/compress/zstd_compress_sequences.c - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_compress_sequences.c vendor/zstd/1.4.5/lib/compress/zstd_compress_sequences.h - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_compress_sequences.h vendor/zstd/1.4.5/lib/compress/zstd_cwksp.h - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_cwksp.h vendor/zstd/1.4.5/lib/compress/zstd_double_fast.c - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_double_fast.c vendor/zstd/1.4.5/lib/compress/zstd_double_fast.h - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_double_fast.h vendor/zstd/1.4.5/lib/compress/zstd_fast.c - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_fast.c vendor/zstd/1.4.5/lib/compress/zstd_fast.h - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_fast.h vendor/zstd/1.4.5/lib/compress/zstd_lazy.c - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_lazy.c vendor/zstd/1.4.5/lib/compress/zstd_lazy.h - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_lazy.h vendor/zstd/1.4.5/lib/compress/zstd_ldm.c - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_ldm.c vendor/zstd/1.4.5/lib/compress/zstd_ldm.h - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_ldm.h vendor/zstd/1.4.5/lib/compress/zstd_opt.c - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_opt.c vendor/zstd/1.4.5/lib/compress/zstd_opt.h - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstd_opt.h vendor/zstd/1.4.5/lib/compress/zstdmt_compress.c - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstdmt_compress.c vendor/zstd/1.4.5/lib/compress/zstdmt_compress.h - copied unchanged from r361423, vendor/zstd/dist/lib/compress/zstdmt_compress.h vendor/zstd/1.4.5/lib/decompress/huf_decompress.c - copied unchanged from r361423, vendor/zstd/dist/lib/decompress/huf_decompress.c vendor/zstd/1.4.5/lib/decompress/zstd_ddict.c - copied unchanged from r361423, vendor/zstd/dist/lib/decompress/zstd_ddict.c vendor/zstd/1.4.5/lib/decompress/zstd_ddict.h - copied unchanged from r361423, vendor/zstd/dist/lib/decompress/zstd_ddict.h vendor/zstd/1.4.5/lib/decompress/zstd_decompress.c - copied unchanged from r361423, vendor/zstd/dist/lib/decompress/zstd_decompress.c vendor/zstd/1.4.5/lib/decompress/zstd_decompress_block.c - copied unchanged from r361423, vendor/zstd/dist/lib/decompress/zstd_decompress_block.c vendor/zstd/1.4.5/lib/decompress/zstd_decompress_block.h - copied unchanged from r361423, vendor/zstd/dist/lib/decompress/zstd_decompress_block.h vendor/zstd/1.4.5/lib/decompress/zstd_decompress_internal.h - copied unchanged from r361423, vendor/zstd/dist/lib/decompress/zstd_decompress_internal.h vendor/zstd/1.4.5/lib/deprecated/zbuff.h - copied unchanged from r361423, vendor/zstd/dist/lib/deprecated/zbuff.h vendor/zstd/1.4.5/lib/deprecated/zbuff_common.c - copied unchanged from r361423, vendor/zstd/dist/lib/deprecated/zbuff_common.c vendor/zstd/1.4.5/lib/deprecated/zbuff_compress.c - copied unchanged from r361423, vendor/zstd/dist/lib/deprecated/zbuff_compress.c vendor/zstd/1.4.5/lib/deprecated/zbuff_decompress.c - copied unchanged from r361423, vendor/zstd/dist/lib/deprecated/zbuff_decompress.c vendor/zstd/1.4.5/lib/dictBuilder/cover.c - copied unchanged from r361423, vendor/zstd/dist/lib/dictBuilder/cover.c vendor/zstd/1.4.5/lib/dictBuilder/cover.h - copied unchanged from r361423, vendor/zstd/dist/lib/dictBuilder/cover.h vendor/zstd/1.4.5/lib/dictBuilder/fastcover.c - copied unchanged from r361423, vendor/zstd/dist/lib/dictBuilder/fastcover.c vendor/zstd/1.4.5/lib/dictBuilder/zdict.c - copied unchanged from r361423, vendor/zstd/dist/lib/dictBuilder/zdict.c vendor/zstd/1.4.5/lib/dictBuilder/zdict.h - copied unchanged from r361423, vendor/zstd/dist/lib/dictBuilder/zdict.h vendor/zstd/1.4.5/lib/legacy/zstd_legacy.h - copied unchanged from r361423, vendor/zstd/dist/lib/legacy/zstd_legacy.h vendor/zstd/1.4.5/lib/legacy/zstd_v01.c - copied unchanged from r361423, vendor/zstd/dist/lib/legacy/zstd_v01.c vendor/zstd/1.4.5/lib/legacy/zstd_v01.h - copied unchanged from r361423, vendor/zstd/dist/lib/legacy/zstd_v01.h vendor/zstd/1.4.5/lib/legacy/zstd_v02.c - copied unchanged from r361423, vendor/zstd/dist/lib/legacy/zstd_v02.c vendor/zstd/1.4.5/lib/legacy/zstd_v02.h - copied unchanged from r361423, vendor/zstd/dist/lib/legacy/zstd_v02.h vendor/zstd/1.4.5/lib/legacy/zstd_v03.c - copied unchanged from r361423, vendor/zstd/dist/lib/legacy/zstd_v03.c vendor/zstd/1.4.5/lib/legacy/zstd_v03.h - copied unchanged from r361423, vendor/zstd/dist/lib/legacy/zstd_v03.h vendor/zstd/1.4.5/lib/legacy/zstd_v04.c - copied unchanged from r361423, vendor/zstd/dist/lib/legacy/zstd_v04.c vendor/zstd/1.4.5/lib/legacy/zstd_v04.h - copied unchanged from r361423, vendor/zstd/dist/lib/legacy/zstd_v04.h vendor/zstd/1.4.5/lib/legacy/zstd_v05.c - copied unchanged from r361423, vendor/zstd/dist/lib/legacy/zstd_v05.c vendor/zstd/1.4.5/lib/legacy/zstd_v05.h - copied unchanged from r361423, vendor/zstd/dist/lib/legacy/zstd_v05.h vendor/zstd/1.4.5/lib/legacy/zstd_v06.c - copied unchanged from r361423, vendor/zstd/dist/lib/legacy/zstd_v06.c vendor/zstd/1.4.5/lib/legacy/zstd_v06.h - copied unchanged from r361423, vendor/zstd/dist/lib/legacy/zstd_v06.h vendor/zstd/1.4.5/lib/legacy/zstd_v07.c - copied unchanged from r361423, vendor/zstd/dist/lib/legacy/zstd_v07.c vendor/zstd/1.4.5/lib/legacy/zstd_v07.h - copied unchanged from r361423, vendor/zstd/dist/lib/legacy/zstd_v07.h vendor/zstd/1.4.5/lib/libzstd.pc.in - copied unchanged from r361423, vendor/zstd/dist/lib/libzstd.pc.in vendor/zstd/1.4.5/lib/zstd.h - copied unchanged from r361423, vendor/zstd/dist/lib/zstd.h vendor/zstd/1.4.5/programs/Makefile - copied unchanged from r361423, vendor/zstd/dist/programs/Makefile vendor/zstd/1.4.5/programs/README.md - copied unchanged from r361423, vendor/zstd/dist/programs/README.md vendor/zstd/1.4.5/programs/benchfn.c - copied unchanged from r361423, vendor/zstd/dist/programs/benchfn.c vendor/zstd/1.4.5/programs/benchfn.h - copied unchanged from r361423, vendor/zstd/dist/programs/benchfn.h vendor/zstd/1.4.5/programs/benchzstd.c - copied unchanged from r361423, vendor/zstd/dist/programs/benchzstd.c vendor/zstd/1.4.5/programs/benchzstd.h - copied unchanged from r361423, vendor/zstd/dist/programs/benchzstd.h vendor/zstd/1.4.5/programs/datagen.c - copied unchanged from r361423, vendor/zstd/dist/programs/datagen.c vendor/zstd/1.4.5/programs/datagen.h - copied unchanged from r361423, vendor/zstd/dist/programs/datagen.h vendor/zstd/1.4.5/programs/dibio.c - copied unchanged from r361423, vendor/zstd/dist/programs/dibio.c vendor/zstd/1.4.5/programs/dibio.h - copied unchanged from r361423, vendor/zstd/dist/programs/dibio.h vendor/zstd/1.4.5/programs/fileio.c - copied unchanged from r361423, vendor/zstd/dist/programs/fileio.c vendor/zstd/1.4.5/programs/fileio.h - copied unchanged from r361423, vendor/zstd/dist/programs/fileio.h vendor/zstd/1.4.5/programs/platform.h - copied unchanged from r361423, vendor/zstd/dist/programs/platform.h vendor/zstd/1.4.5/programs/timefn.c - copied unchanged from r361423, vendor/zstd/dist/programs/timefn.c vendor/zstd/1.4.5/programs/timefn.h - copied unchanged from r361423, vendor/zstd/dist/programs/timefn.h vendor/zstd/1.4.5/programs/util.c - copied unchanged from r361423, vendor/zstd/dist/programs/util.c vendor/zstd/1.4.5/programs/util.h - copied unchanged from r361423, vendor/zstd/dist/programs/util.h vendor/zstd/1.4.5/programs/zstd.1 - copied unchanged from r361423, vendor/zstd/dist/programs/zstd.1 vendor/zstd/1.4.5/programs/zstd.1.md - copied unchanged from r361423, vendor/zstd/dist/programs/zstd.1.md vendor/zstd/1.4.5/programs/zstdcli.c - copied unchanged from r361423, vendor/zstd/dist/programs/zstdcli.c vendor/zstd/1.4.5/programs/zstdgrep - copied unchanged from r361423, vendor/zstd/dist/programs/zstdgrep vendor/zstd/1.4.5/programs/zstdgrep.1 - copied unchanged from r361423, vendor/zstd/dist/programs/zstdgrep.1 vendor/zstd/1.4.5/programs/zstdless.1 - copied unchanged from r361423, vendor/zstd/dist/programs/zstdless.1 vendor/zstd/1.4.5/zlibWrapper/Makefile - copied unchanged from r361423, vendor/zstd/dist/zlibWrapper/Makefile vendor/zstd/1.4.5/zlibWrapper/examples/zwrapbench.c - copied unchanged from r361423, vendor/zstd/dist/zlibWrapper/examples/zwrapbench.c vendor/zstd/1.4.5/zlibWrapper/gzcompatibility.h - copied unchanged from r361423, vendor/zstd/dist/zlibWrapper/gzcompatibility.h vendor/zstd/1.4.5/zlibWrapper/zstd_zlibwrapper.c - copied unchanged from r361423, vendor/zstd/dist/zlibWrapper/zstd_zlibwrapper.c vendor/zstd/1.4.5/zlibWrapper/zstd_zlibwrapper.h - copied unchanged from r361423, vendor/zstd/dist/zlibWrapper/zstd_zlibwrapper.h Deleted: vendor/zstd/1.4.5/contrib/cleanTabs vendor/zstd/1.4.5/contrib/docker/Dockerfile vendor/zstd/1.4.5/contrib/docker/README.md vendor/zstd/1.4.5/contrib/experimental_dict_builders/benchmarkDictBuilder/Makefile vendor/zstd/1.4.5/contrib/experimental_dict_builders/benchmarkDictBuilder/README.md vendor/zstd/1.4.5/contrib/experimental_dict_builders/benchmarkDictBuilder/benchmark.c vendor/zstd/1.4.5/contrib/experimental_dict_builders/benchmarkDictBuilder/dictBuilder.h vendor/zstd/1.4.5/contrib/experimental_dict_builders/benchmarkDictBuilder/test.sh vendor/zstd/1.4.5/contrib/experimental_dict_builders/fastCover/Makefile vendor/zstd/1.4.5/contrib/experimental_dict_builders/fastCover/README.md vendor/zstd/1.4.5/contrib/experimental_dict_builders/fastCover/fastCover.c vendor/zstd/1.4.5/contrib/experimental_dict_builders/fastCover/fastCover.h vendor/zstd/1.4.5/contrib/experimental_dict_builders/fastCover/main.c vendor/zstd/1.4.5/contrib/experimental_dict_builders/fastCover/test.sh vendor/zstd/1.4.5/contrib/experimental_dict_builders/randomDictBuilder/Makefile vendor/zstd/1.4.5/contrib/experimental_dict_builders/randomDictBuilder/README.md vendor/zstd/1.4.5/contrib/experimental_dict_builders/randomDictBuilder/io.c vendor/zstd/1.4.5/contrib/experimental_dict_builders/randomDictBuilder/io.h vendor/zstd/1.4.5/contrib/experimental_dict_builders/randomDictBuilder/main.c vendor/zstd/1.4.5/contrib/experimental_dict_builders/randomDictBuilder/random.c vendor/zstd/1.4.5/contrib/experimental_dict_builders/randomDictBuilder/random.h vendor/zstd/1.4.5/contrib/experimental_dict_builders/randomDictBuilder/test.sh vendor/zstd/1.4.5/contrib/gen_html/Makefile vendor/zstd/1.4.5/contrib/gen_html/README.md vendor/zstd/1.4.5/contrib/gen_html/gen-zstd-manual.sh vendor/zstd/1.4.5/contrib/gen_html/gen_html.cpp vendor/zstd/1.4.5/contrib/largeNbDicts/Makefile vendor/zstd/1.4.5/contrib/largeNbDicts/README.md vendor/zstd/1.4.5/contrib/largeNbDicts/largeNbDicts.c vendor/zstd/1.4.5/contrib/premake/premake4.lua vendor/zstd/1.4.5/contrib/premake/zstd.lua vendor/zstd/1.4.5/contrib/pzstd/BUCK vendor/zstd/1.4.5/contrib/pzstd/ErrorHolder.h vendor/zstd/1.4.5/contrib/pzstd/Logging.h vendor/zstd/1.4.5/contrib/pzstd/Makefile vendor/zstd/1.4.5/contrib/pzstd/Options.cpp vendor/zstd/1.4.5/contrib/pzstd/Options.h vendor/zstd/1.4.5/contrib/pzstd/Pzstd.cpp vendor/zstd/1.4.5/contrib/pzstd/Pzstd.h vendor/zstd/1.4.5/contrib/pzstd/README.md vendor/zstd/1.4.5/contrib/pzstd/SkippableFrame.cpp vendor/zstd/1.4.5/contrib/pzstd/SkippableFrame.h vendor/zstd/1.4.5/contrib/pzstd/images/Cspeed.png vendor/zstd/1.4.5/contrib/pzstd/images/Dspeed.png vendor/zstd/1.4.5/contrib/pzstd/main.cpp vendor/zstd/1.4.5/contrib/pzstd/test/BUCK vendor/zstd/1.4.5/contrib/pzstd/test/OptionsTest.cpp vendor/zstd/1.4.5/contrib/pzstd/test/PzstdTest.cpp vendor/zstd/1.4.5/contrib/pzstd/test/RoundTrip.h vendor/zstd/1.4.5/contrib/pzstd/test/RoundTripTest.cpp vendor/zstd/1.4.5/contrib/pzstd/utils/BUCK vendor/zstd/1.4.5/contrib/pzstd/utils/Buffer.h vendor/zstd/1.4.5/contrib/pzstd/utils/FileSystem.h vendor/zstd/1.4.5/contrib/pzstd/utils/Likely.h vendor/zstd/1.4.5/contrib/pzstd/utils/Range.h vendor/zstd/1.4.5/contrib/pzstd/utils/ResourcePool.h vendor/zstd/1.4.5/contrib/pzstd/utils/ScopeGuard.h vendor/zstd/1.4.5/contrib/pzstd/utils/ThreadPool.h vendor/zstd/1.4.5/contrib/pzstd/utils/WorkQueue.h vendor/zstd/1.4.5/contrib/pzstd/utils/test/BUCK vendor/zstd/1.4.5/contrib/pzstd/utils/test/BufferTest.cpp vendor/zstd/1.4.5/contrib/pzstd/utils/test/RangeTest.cpp vendor/zstd/1.4.5/contrib/pzstd/utils/test/ResourcePoolTest.cpp vendor/zstd/1.4.5/contrib/pzstd/utils/test/ScopeGuardTest.cpp vendor/zstd/1.4.5/contrib/pzstd/utils/test/ThreadPoolTest.cpp vendor/zstd/1.4.5/contrib/pzstd/utils/test/WorkQueueTest.cpp vendor/zstd/1.4.5/contrib/seekable_format/examples/Makefile vendor/zstd/1.4.5/contrib/seekable_format/examples/parallel_compression.c vendor/zstd/1.4.5/contrib/seekable_format/examples/parallel_processing.c vendor/zstd/1.4.5/contrib/seekable_format/examples/seekable_compression.c vendor/zstd/1.4.5/contrib/seekable_format/examples/seekable_decompression.c vendor/zstd/1.4.5/contrib/seekable_format/examples/seekable_decompression_mem.c vendor/zstd/1.4.5/contrib/seekable_format/zstd_seekable.h vendor/zstd/1.4.5/contrib/seekable_format/zstd_seekable_compression_format.md vendor/zstd/1.4.5/contrib/seekable_format/zstdseek_compress.c vendor/zstd/1.4.5/contrib/seekable_format/zstdseek_decompress.c vendor/zstd/1.4.5/contrib/snap/snapcraft.yaml vendor/zstd/1.4.5/tests/Makefile vendor/zstd/1.4.5/tests/README.md vendor/zstd/1.4.5/tests/bigdict.c vendor/zstd/1.4.5/tests/checkTag.c vendor/zstd/1.4.5/tests/datagencli.c vendor/zstd/1.4.5/tests/decodecorpus.c vendor/zstd/1.4.5/tests/fullbench.c vendor/zstd/1.4.5/tests/fuzz/Makefile vendor/zstd/1.4.5/tests/fuzz/README.md vendor/zstd/1.4.5/tests/fuzz/block_decompress.c vendor/zstd/1.4.5/tests/fuzz/block_round_trip.c vendor/zstd/1.4.5/tests/fuzz/dictionary_decompress.c vendor/zstd/1.4.5/tests/fuzz/dictionary_loader.c vendor/zstd/1.4.5/tests/fuzz/dictionary_round_trip.c vendor/zstd/1.4.5/tests/fuzz/fuzz.h vendor/zstd/1.4.5/tests/fuzz/fuzz.py vendor/zstd/1.4.5/tests/fuzz/fuzz_data_producer.c vendor/zstd/1.4.5/tests/fuzz/fuzz_data_producer.h vendor/zstd/1.4.5/tests/fuzz/fuzz_helpers.h vendor/zstd/1.4.5/tests/fuzz/regression_driver.c vendor/zstd/1.4.5/tests/fuzz/simple_compress.c vendor/zstd/1.4.5/tests/fuzz/simple_decompress.c vendor/zstd/1.4.5/tests/fuzz/simple_round_trip.c vendor/zstd/1.4.5/tests/fuzz/stream_decompress.c vendor/zstd/1.4.5/tests/fuzz/stream_round_trip.c vendor/zstd/1.4.5/tests/fuzz/zstd_frame_info.c vendor/zstd/1.4.5/tests/fuzz/zstd_helpers.c vendor/zstd/1.4.5/tests/fuzz/zstd_helpers.h vendor/zstd/1.4.5/tests/fuzzer.c vendor/zstd/1.4.5/tests/golden-compression/huffman-compressed-larger vendor/zstd/1.4.5/tests/golden-decompression/rle-first-block.zst vendor/zstd/1.4.5/tests/gzip/Makefile vendor/zstd/1.4.5/tests/gzip/gzip-env.sh vendor/zstd/1.4.5/tests/gzip/helin-segv.sh vendor/zstd/1.4.5/tests/gzip/help-version.sh vendor/zstd/1.4.5/tests/gzip/hufts-segv.gz vendor/zstd/1.4.5/tests/gzip/hufts.sh vendor/zstd/1.4.5/tests/gzip/init.cfg vendor/zstd/1.4.5/tests/gzip/init.sh vendor/zstd/1.4.5/tests/gzip/keep.sh vendor/zstd/1.4.5/tests/gzip/list.sh vendor/zstd/1.4.5/tests/gzip/memcpy-abuse.sh vendor/zstd/1.4.5/tests/gzip/mixed.sh vendor/zstd/1.4.5/tests/gzip/null-suffix-clobber.sh vendor/zstd/1.4.5/tests/gzip/stdin.sh vendor/zstd/1.4.5/tests/gzip/test-driver.sh vendor/zstd/1.4.5/tests/gzip/trailing-nul.sh vendor/zstd/1.4.5/tests/gzip/unpack-invalid.sh vendor/zstd/1.4.5/tests/gzip/z-suffix.sh vendor/zstd/1.4.5/tests/gzip/zdiff.sh vendor/zstd/1.4.5/tests/gzip/zgrep-context.sh vendor/zstd/1.4.5/tests/gzip/zgrep-f.sh vendor/zstd/1.4.5/tests/gzip/zgrep-signal.sh vendor/zstd/1.4.5/tests/gzip/znew-k.sh vendor/zstd/1.4.5/tests/invalidDictionaries.c vendor/zstd/1.4.5/tests/legacy.c vendor/zstd/1.4.5/tests/libzstd_partial_builds.sh vendor/zstd/1.4.5/tests/longmatch.c vendor/zstd/1.4.5/tests/paramgrill.c vendor/zstd/1.4.5/tests/playTests.sh vendor/zstd/1.4.5/tests/poolTests.c vendor/zstd/1.4.5/tests/rateLimiter.py vendor/zstd/1.4.5/tests/regression/Makefile vendor/zstd/1.4.5/tests/regression/config.c vendor/zstd/1.4.5/tests/regression/config.h vendor/zstd/1.4.5/tests/regression/data.c vendor/zstd/1.4.5/tests/regression/data.h vendor/zstd/1.4.5/tests/regression/levels.h vendor/zstd/1.4.5/tests/regression/method.c vendor/zstd/1.4.5/tests/regression/method.h vendor/zstd/1.4.5/tests/regression/result.c vendor/zstd/1.4.5/tests/regression/result.h vendor/zstd/1.4.5/tests/regression/results.csv vendor/zstd/1.4.5/tests/regression/test.c vendor/zstd/1.4.5/tests/roundTripCrash.c vendor/zstd/1.4.5/tests/seqgen.c vendor/zstd/1.4.5/tests/seqgen.h vendor/zstd/1.4.5/tests/symbols.c vendor/zstd/1.4.5/tests/test-zstd-speed.py vendor/zstd/1.4.5/tests/test-zstd-versions.py vendor/zstd/1.4.5/tests/zbufftest.c vendor/zstd/1.4.5/tests/zstreamtest.c Copied: vendor/zstd/1.4.5/CHANGELOG (from r361423, vendor/zstd/dist/CHANGELOG) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/zstd/1.4.5/CHANGELOG Sat May 23 20:38:30 2020 (r361424, copy of r361423, vendor/zstd/dist/CHANGELOG) @@ -0,0 +1,555 @@ +v1.4.5 +fix : Compression ratio regression on huge files (> 3 GB) using high levels (--ultra) and multithreading, by @terrelln +perf: Improved decompression speed: x64 : +10% (clang) / +5% (gcc); ARM : from +15% to +50%, depending on SoC, by @terrelln +perf: Automatically downsizes ZSTD_DCtx when too large for too long (#2069, by @bimbashreshta) +perf: Improved fast compression speed on aarch64 (#2040, ~+3%, by @caoyzh) +perf: Small level 1 compression speed gains (depending on compiler) +cli : New --patch-from command, create and apply patches from files, by @bimbashreshta +cli : New --filelist= : Provide a list of files to operate upon from a file +cli : -b -d command can now benchmark decompression on multiple files +cli : New --no-content-size command +cli : New --show-default-cparams information command +api : ZDICT_finalizeDictionary() is promoted to stable (#2111) +api : new experimental parameter ZSTD_d_stableOutBuffer (#2094) +build: Generate a single-file libzstd library (#2065, by @cwoffenden) +build: Relative includes no longer require -I compiler flags for zstd lib subdirs (#2103, by @felixhandte) +build: zstd now compiles cleanly under -pedantic (#2099) +build: zstd now compiles with make-4.3 +build: Support mingw cross-compilation from Linux, by @Ericson2314 +build: Meson multi-thread build fix on windows +build: Some misc icc fixes backed by new ci test on travis +misc: bitflip analyzer tool, by @felixhandte +misc: Extend largeNbDicts benchmark to compression +misc: Edit-distance match finder in contrib/ +doc : Improved beginner CONTRIBUTING.md docs +doc : New issue templates for zstd + +v1.4.4 +perf: Improved decompression speed, by > 10%, by @terrelln +perf: Better compression speed when re-using a context, by @felixhandte +perf: Fix compression ratio when compressing large files with small dictionary, by @senhuang42 +perf: zstd reference encoder can generate RLE blocks, by @bimbashrestha +perf: minor generic speed optimization, by @davidbolvansky +api: new ability to extract sequences from the parser for analysis, by @bimbashrestha +api: fixed decoding of magic-less frames, by @terrelln +api: fixed ZSTD_initCStream_advanced() performance with fast modes, reported by @QrczakMK +cli: Named pipes support, by @bimbashrestha +cli: short tar's extension support, by @stokito +cli: command --output-dir-flat= , generates target files into requested directory, by @senhuang42 +cli: commands --stream-size=# and --size-hint=#, by @nmagerko +cli: command --exclude-compressed, by @shashank0791 +cli: faster `-t` test mode +cli: improved some error messages, by @vangyzen +cli: fix command `-D dictionary` on Windows, reported by @artyompetrov +cli: fix rare deadlock condition within dictionary builder, by @terrelln +build: single-file decoder with emscripten compilation script, by @cwoffenden +build: fixed zlibWrapper compilation on Visual Studio, reported by @bluenlive +build: fixed deprecation warning for certain gcc version, reported by @jasonma163 +build: fix compilation on old gcc versions, by @cemeyer +build: improved installation directories for cmake script, by Dmitri Shubin +pack: modified pkgconfig, for better integration into openwrt, requested by @neheb +misc: Improved documentation : ZSTD_CLEVEL, DYNAMIC_BMI2, ZSTD_CDict, function deprecation, zstd format +misc: fixed educational decoder : accept larger literals section, and removed UNALIGNED() macro + +v1.4.3 +bug: Fix Dictionary Compression Ratio Regression by @cyan4973 (#1709) +bug: Fix Buffer Overflow in legacy v0.3 decompression by @felixhandte (#1722) +build: Add support for IAR C/C++ Compiler for Arm by @joseph0918 (#1705) + +v1.4.2 +bug: Fix bug in zstd-0.5 decoder by @terrelln (#1696) +bug: Fix seekable decompression in-memory API by @iburinoc (#1695) +misc: Validate blocks are smaller than size limit by @vivekmg (#1685) +misc: Restructure source files by @ephiepark (#1679) + +v1.4.1 +bug: Fix data corruption in niche use cases by @terrelln (#1659) +bug: Fuzz legacy modes, fix uncovered bugs by @terrelln (#1593, #1594, #1595) +bug: Fix out of bounds read by @terrelln (#1590) +perf: Improve decode speed by ~7% @mgrice (#1668) +perf: Slightly improved compression ratio of level 3 and 4 (ZSTD_dfast) by @cyan4973 (#1681) +perf: Slightly faster compression speed when re-using a context by @cyan4973 (#1658) +perf: Improve compression ratio for small windowLog by @cyan4973 (#1624) +perf: Faster compression speed in high compression mode for repetitive data by @terrelln (#1635) +api: Add parameter to generate smaller dictionaries by @tyler-tran (#1656) +cli: Recognize symlinks when built in C99 mode by @felixhandte (#1640) +cli: Expose cpu load indicator for each file on -vv mode by @ephiepark (#1631) +cli: Restrict read permissions on destination files by @chungy (#1644) +cli: zstdgrep: handle -f flag by @felixhandte (#1618) +cli: zstdcat: follow symlinks by @vejnar (#1604) +doc: Remove extra size limit on compressed blocks by @felixhandte (#1689) +doc: Fix typo by @yk-tanigawa (#1633) +doc: Improve documentation on streaming buffer sizes by @cyan4973 (#1629) +build: CMake: support building with LZ4 @leeyoung624 (#1626) +build: CMake: install zstdless and zstdgrep by @leeyoung624 (#1647) +build: CMake: respect existing uninstall target by @j301scott (#1619) +build: Make: skip multithread tests when built without support by @michaelforney (#1620) +build: Make: Fix examples/ test target by @sjnam (#1603) +build: Meson: rename options out of deprecated namespace by @lzutao (#1665) +build: Meson: fix build by @lzutao (#1602) +build: Visual Studio: don't export symbols in static lib by @scharan (#1650) +build: Visual Studio: fix linking by @absotively (#1639) +build: Fix MinGW-W64 build by @myzhang1029 (#1600) +misc: Expand decodecorpus coverage by @ephiepark (#1664) + +v1.4.0 +perf: Improve level 1 compression speed in most scenarios by 6% by @gbtucker and @terrelln +api: Move the advanced API, including all functions in the staging section, to the stable section +api: Make ZSTD_e_flush and ZSTD_e_end block for maximum forward progress +api: Rename ZSTD_CCtxParam_getParameter to ZSTD_CCtxParams_getParameter +api: Rename ZSTD_CCtxParam_setParameter to ZSTD_CCtxParams_setParameter +api: Don't export ZSTDMT functions from the shared library by default +api: Require ZSTD_MULTITHREAD to be defined to use ZSTDMT +api: Add ZSTD_decompressBound() to provide an upper bound on decompressed size by @shakeelrao +api: Fix ZSTD_decompressDCtx() corner cases with a dictionary +api: Move ZSTD_getDictID_*() functions to the stable section +api: Add ZSTD_c_literalCompressionMode flag to enable or disable literal compression by @terrelln +api: Allow compression parameters to be set when a dictionary is used +api: Allow setting parameters before or after ZSTD_CCtx_loadDictionary() is called +api: Fix ZSTD_estimateCStreamSize_usingCCtxParams() +api: Setting ZSTD_d_maxWindowLog to 0 means use the default +cli: Ensure that a dictionary is not used to compress itself by @shakeelrao +cli: Add --[no-]compress-literals flag to enable or disable literal compression +doc: Update the examples to use the advanced API +doc: Explain how to transition from old streaming functions to the advanced API in the header +build: Improve the Windows release packages +build: Improve CMake build by @hjmjohnson +build: Build fixes for FreeBSD by @lwhsu +build: Remove redundant warnings by @thatsafunnyname +build: Fix tests on OpenBSD by @bket +build: Extend fuzzer build system to work with the new clang engine +build: CMake now creates the libzstd.so.1 symlink +build: Improve Menson build by @lzutao +misc: Fix symbolic link detection on FreeBSD +misc: Use physical core count for -T0 on FreeBSD by @cemeyer +misc: Fix zstd --list on truncated files by @kostmo +misc: Improve logging in debug mode by @felixhandte +misc: Add CirrusCI tests by @lwhsu +misc: Optimize dictionary memory usage in corner cases +misc: Improve the dictionary builder on small or homogeneous data +misc: Fix spelling across the repo by @jsoref + +v1.3.8 +perf: better decompression speed on large files (+7%) and cold dictionaries (+15%) +perf: slightly better compression ratio at high compression modes +api : finalized advanced API, last stage before "stable" status +api : new --rsyncable mode, by @terrelln +api : support decompression of empty frames into NULL (used to be an error) (#1385) +build: new set of macros to build a minimal size decoder, by @felixhandte +build: fix compilation on MIPS32, reported by @clbr (#1441) +build: fix compilation with multiple -arch flags, by @ryandesign +build: highly upgraded meson build, by @lzutao +build: improved buck support, by @obelisk +build: fix cmake script : can create debug build, by @pitrou +build: Makefile : grep works on both colored consoles and systems without color support +build: fixed zstd-pgo, by @bmwiedemann +cli : support ZSTD_CLEVEL environment variable, by @yijinfb (#1423) +cli : --no-progress flag, preserving final summary (#1371), by @terrelln +cli : ensure destination file is not source file (#1422) +cli : clearer error messages, especially when input file not present +doc : clarified zstd_compression_format.md, by @ulikunitz +misc: fixed zstdgrep, returns 1 on failure, by @lzutao +misc: NEWS renamed as CHANGELOG, in accordance with fboss + +v1.3.7 +perf: slightly better decompression speed on clang (depending on hardware target) +fix : performance of dictionary compression for small input < 4 KB at levels 9 and 10 +build: no longer build backtrace by default in release mode; restrict further automatic mode +build: control backtrace support through build macro BACKTRACE +misc: added man pages for zstdless and zstdgrep, by @samrussell + +v1.3.6 +perf: much faster dictionary builder, by @jenniferliu +perf: faster dictionary compression on small data when using multiple contexts, by @felixhandte +perf: faster dictionary decompression when using a very large number of dictionaries simultaneously +cli : fix : does no longer overwrite destination when source does not exist (#1082) +cli : new command --adapt, for automatic compression level adaptation +api : fix : block api can be streamed with > 4 GB, reported by @catid +api : reduced ZSTD_DDict size by 2 KB +api : minimum negative compression level is defined, and can be queried using ZSTD_minCLevel(). +build: support Haiku target, by @korli +build: Read Legacy format is limited to v0.5+ by default. Can be changed at compile time with macro ZSTD_LEGACY_SUPPORT. +doc : zstd_compression_format.md updated to match wording in IETF RFC 8478 +misc: tests/paramgrill, a parameter optimizer, by @GeorgeLu97 + +v1.3.5 +perf: much faster dictionary compression, by @felixhandte +perf: small quality improvement for dictionary generation, by @terrelln +perf: slightly improved high compression levels (notably level 19) +mem : automatic memory release for long duration contexts +cli : fix : overlapLog can be manually set +cli : fix : decoding invalid lz4 frames +api : fix : performance degradation for dictionary compression when using advanced API, by @terrelln +api : change : clarify ZSTD_CCtx_reset() vs ZSTD_CCtx_resetParameters(), by @terrelln +build: select custom libzstd scope through control macros, by @GeorgeLu97 +build: OpenBSD patch, by @bket +build: make and make all are compatible with -j +doc : clarify zstd_compression_format.md, updated for IETF RFC process +misc: pzstd compatible with reproducible compilation, by @lamby + +v1.3.4 +perf: faster speed (especially decoding speed) on recent cpus (haswell+) +perf: much better performance associating --long with multi-threading, by @terrelln +perf: better compression at levels 13-15 +cli : asynchronous compression by default, for faster experience (use --single-thread for former behavior) +cli : smoother status report in multi-threading mode +cli : added command --fast=#, for faster compression modes +cli : fix crash when not overwriting existing files, by Pádraig Brady (@pixelb) +api : `nbThreads` becomes `nbWorkers` : 1 triggers asynchronous mode +api : compression levels can be negative, for even more speed +api : ZSTD_getFrameProgression() : get precise progress status of ZSTDMT anytime +api : ZSTDMT can accept new compression parameters during compression +api : implemented all advanced dictionary decompression prototypes +build: improved meson recipe, by Shawn Landden (@shawnl) +build: VS2017 scripts, by @HaydnTrigg +misc: all /contrib projects fixed +misc: added /contrib/docker script by @gyscos + +v1.3.3 +perf: faster zstd_opt strategy (levels 16-19) +fix : bug #944 : multithreading with shared ditionary and large data, reported by @gsliepen +cli : fix : content size written in header by default +cli : fix : improved LZ4 format support, by @felixhandte +cli : new : hidden command `-S`, to benchmark multiple files while generating one result per file +api : fix : support large skippable frames, by @terrelln +api : fix : streaming interface was adding a useless 3-bytes null block to small frames +api : change : when setting `pledgedSrcSize`, use `ZSTD_CONTENTSIZE_UNKNOWN` macro value to mean "unknown" +build: fix : compilation under rhel6 and centos6, reported by @pixelb +build: added `check` target + +v1.3.2 +new : long range mode, using --long command, by Stella Lau (@stellamplau) +new : ability to generate and decode magicless frames (#591) +changed : maximum nb of threads reduced to 200, to avoid address space exhaustion in 32-bits mode +fix : multi-threading compression works with custom allocators +fix : ZSTD_sizeof_CStream() was over-evaluating memory usage +fix : a rare compression bug when compression generates very large distances and bunch of other conditions (only possible at --ultra -22) +fix : 32-bits build can now decode large offsets (levels 21+) +cli : added LZ4 frame support by default, by Felix Handte (@felixhandte) +cli : improved --list output +cli : new : can split input file for dictionary training, using command -B# +cli : new : clean operation artefact on Ctrl-C interruption +cli : fix : do not change /dev/null permissions when using command -t with root access, reported by @mike155 (#851) +cli : fix : write file size in header in multiple-files mode +api : added macro ZSTD_COMPRESSBOUND() for static allocation +api : experimental : new advanced decompression API +api : fix : sizeof_CCtx() used to over-estimate +build: fix : no-multithread variant compiles without pool.c dependency, reported by Mitchell Blank Jr (@mitchblank) (#819) +build: better compatibility with reproducible builds, by Bernhard M. Wiedemann (@bmwiedemann) (#818) +example : added streaming_memory_usage +license : changed /examples license to BSD + GPLv2 +license : fix a few header files to reflect new license (#825) + +v1.3.1 +New license : BSD + GPLv2 +perf: substantially decreased memory usage in Multi-threading mode, thanks to reports by Tino Reichardt (@mcmilk) +perf: Multi-threading supports up to 256 threads. Cap at 256 when more are requested (#760) +cli : improved and fixed --list command, by @ib (#772) +cli : command -vV to list supported formats, by @ib (#771) +build : fixed binary variants, reported by @svenha (#788) +build : fix Visual compilation for non x86/x64 targets, reported by Greg Slazinski (@GregSlazinski) (#718) +API exp : breaking change : ZSTD_getframeHeader() provides more information +API exp : breaking change : pinned down values of error codes +doc : fixed huffman example, by Ulrich Kunitz (@ulikunitz) +new : contrib/adaptive-compression, I/O driven compression strength, by Paul Cruz (@paulcruz74) +new : contrib/long_distance_matching, statistics by Stella Lau (@stellamplau) +updated : contrib/linux-kernel, by Nick Terrell (@terrelln) + +v1.3.0 +cli : new : `--list` command, by Paul Cruz +cli : changed : xz/lzma support enabled by default +cli : changed : `-t *` continue processing list after a decompression error +API : added : ZSTD_versionString() +API : promoted to stable status : ZSTD_getFrameContentSize(), by Sean Purcell +API exp : new advanced API : ZSTD_compress_generic(), ZSTD_CCtx_setParameter() +API exp : new : API for static or external allocation : ZSTD_initStatic?Ctx() +API exp : added : ZSTD_decompressBegin_usingDDict(), requested by Guy Riddle (#700) +API exp : clarified memory estimation / measurement functions. +API exp : changed : strongest strategy renamed ZSTD_btultra, fastest strategy ZSTD_fast set to 1 +tools : decodecorpus can generate random dictionary-compressed samples, by Paul Cruz +new : contrib/seekable_format, demo and API, by Sean Purcell +changed : contrib/linux-kernel, updated version and license, by Nick Terrell + +v1.2.0 +cli : changed : Multithreading enabled by default (use target zstd-nomt or HAVE_THREAD=0 to disable) +cli : new : command -T0 means "detect and use nb of cores", by Sean Purcell +cli : new : zstdmt symlink hardwired to `zstd -T0` +cli : new : command --threads=# (#671) +cli : changed : cover dictionary builder by default, for improved quality, by Nick Terrell +cli : new : commands --train-cover and --train-legacy, to select dictionary algorithm and parameters +cli : experimental targets `zstd4` and `xzstd4`, with support for lz4 format, by Sean Purcell +cli : fix : does not output compressed data on console +cli : fix : ignore symbolic links unless --force specified, +API : breaking change : ZSTD_createCDict_advanced(), only use compressionParameters as argument +API : added : prototypes ZSTD_*_usingCDict_advanced(), for direct control over frameParameters. +API : improved: ZSTDMT_compressCCtx() reduced memory usage +API : fix : ZSTDMT_compressCCtx() now provides srcSize in header (#634) +API : fix : src size stored in frame header is controlled at end of frame +API : fix : enforced consistent rules for pledgedSrcSize==0 (#641) +API : fix : error code "GENERIC" replaced by "dstSizeTooSmall" when appropriate +build: improved cmake script, by @Majlen +build: enabled Multi-threading support for *BSD, by Baptiste Daroussin +tools: updated Paramgrill. Command -O# provides best parameters for sample and speed target. +new : contrib/linux-kernel version, by Nick Terrell + +v1.1.4 +cli : new : can compress in *.gz format, using --format=gzip command, by Przemyslaw Skibinski +cli : new : advanced benchmark command --priority=rt +cli : fix : write on sparse-enabled file systems in 32-bits mode, by @ds77 +cli : fix : --rm remains silent when input is stdin +cli : experimental : xzstd, with support for xz/lzma decoding, by Przemyslaw Skibinski +speed : improved decompression speed in streaming mode for single shot scenarios (+5%) +memory: DDict (decompression dictionary) memory usage down from 150 KB to 20 KB +arch: 32-bits variant able to generate and decode very long matches (>32 MB), by Sean Purcell +API : new : ZSTD_findFrameCompressedSize(), ZSTD_getFrameContentSize(), ZSTD_findDecompressedSize() +API : changed : dropped support of legacy versions <= v0.3 (can be changed by modifying ZSTD_LEGACY_SUPPORT value) +build : new: meson build system in contrib/meson, by Dima Krasner +build : improved cmake script, by @Majlen +build : added -Wformat-security flag, as recommended by Padraig Brady +doc : new : educational decoder, by Sean Purcell + +v1.1.3 +cli : zstd can decompress .gz files (can be disabled with `make zstd-nogz` or `make HAVE_ZLIB=0`) +cli : new : experimental target `make zstdmt`, with multi-threading support +cli : new : improved dictionary builder "cover" (experimental), by Nick Terrell, based on prior work by Giuseppe Ottaviano. +cli : new : advanced commands for detailed parameters, by Przemyslaw Skibinski +cli : fix zstdless on Mac OS-X, by Andrew Janke +cli : fix #232 "compress non-files" +dictBuilder : improved dictionary generation quality, thanks to Nick Terrell +API : new : lib/compress/ZSTDMT_compress.h multithreading API (experimental) +API : new : ZSTD_create?Dict_byReference(), requested by Bartosz Taudul +API : new : ZDICT_finalizeDictionary() +API : fix : ZSTD_initCStream_usingCDict() properly writes dictID into frame header, by Gregory Szorc (#511) +API : fix : all symbols properly exposed in libzstd, by Nick Terrell +build : support for Solaris target, by Przemyslaw Skibinski +doc : clarified specification, by Sean Purcell + +v1.1.2 +API : streaming : decompression : changed : automatic implicit reset when chain-decoding new frames without init +API : experimental : added : dictID retrieval functions, and ZSTD_initCStream_srcSize() +API : zbuff : changed : prototypes now generate deprecation warnings +lib : improved : faster decompression speed at ultra compression settings and 32-bits mode +lib : changed : only public ZSTD_ symbols are now exposed +lib : changed : reduced usage of stack memory +lib : fixed : several corner case bugs, by Nick Terrell +cli : new : gzstd, experimental version able to decode .gz files, by Przemyslaw Skibinski +cli : new : preserve file attributes +cli : new : added zstdless and zstdgrep tools +cli : fixed : status displays total amount decoded, even for file consisting of multiple frames (like pzstd) +cli : fixed : zstdcat +zlib_wrapper : added support for gz* functions, by Przemyslaw Skibinski +install : better compatibility with FreeBSD, by Dimitry Andric +source tree : changed : zbuff source files moved to lib/deprecated + +v1.1.1 +New : command -M#, --memory=, --memlimit=, --memlimit-decompress= to limit allowed memory consumption +New : doc/zstd_manual.html, by Przemyslaw Skibinski +Improved : slightly better compression ratio at --ultra levels (>= 20) +Improved : better memory usage when using streaming compression API, thanks to @Rogier-5 report +Added : API : ZSTD_initCStream_usingCDict(), ZSTD_initDStream_usingDDict() (experimental section) +Added : example/multiple_streaming_compression.c +Changed : zstd_errors.h is now installed within /include (and replaces errors_public.h) +Updated man page +Fixed : zstd-small, zstd-compress and zstd-decompress compilation targets + +v1.1.0 +New : contrib/pzstd, parallel version of zstd, by Nick Terrell +added : NetBSD install target (#338) +Improved : speed for batches of small files +Improved : speed of zlib wrapper, by Przemyslaw Skibinski +Changed : libzstd on Windows supports legacy formats, by Christophe Chevalier +Fixed : CLI -d output to stdout by default when input is stdin (#322) +Fixed : CLI correctly detects console on Mac OS-X +Fixed : CLI supports recursive mode `-r` on Mac OS-X +Fixed : Legacy decoders use unified error codes, reported by benrg (#341), fixed by Przemyslaw Skibinski +Fixed : compatibility with OpenBSD, reported by Juan Francisco Cantero Hurtado (#319) +Fixed : compatibility with Hurd, by Przemyslaw Skibinski (#365) +Fixed : zstd-pgo, reported by octoploid (#329) + +v1.0.0 +Change Licensing, all project is now BSD, Copyright Facebook +Small decompression speed improvement +API : Streaming API supports legacy format +API : ZDICT_getDictID(), ZSTD_sizeof_{CCtx, DCtx, CStream, DStream}(), ZSTD_setDStreamParameter() +CLI supports legacy formats v0.4+ +Fixed : compression fails on certain huge files, reported by Jesse McGrew +Enhanced documentation, by Przemyslaw Skibinski + +v0.8.1 +New streaming API +Changed : --ultra now enables levels beyond 19 +Changed : -i# now selects benchmark time in second +Fixed : ZSTD_compress* can now compress > 4 GB in a single pass, reported by Nick Terrell +Fixed : speed regression on specific patterns (#272) +Fixed : support for Z_SYNC_FLUSH, by Dmitry Krot (#291) +Fixed : ICC compilation, by Przemyslaw Skibinski + +v0.8.0 +Improved : better speed on clang and gcc -O2, thanks to Eric Biggers +New : Build on FreeBSD and DragonFly, thanks to JrMarino +Changed : modified API : ZSTD_compressEnd() +Fixed : legacy mode with ZSTD_HEAPMODE=0, by Christopher Bergqvist +Fixed : premature end of frame when zero-sized raw block, reported by Eric Biggers +Fixed : large dictionaries (> 384 KB), reported by Ilona Papava +Fixed : checksum correctly checked in single-pass mode +Fixed : combined --test amd --rm, reported by Andreas M. Nilsson +Modified : minor compression level adaptations +Updated : compression format specification to v0.2.0 +changed : zstd.h moved to /lib directory + +v0.7.5 +Transition version, supporting decoding of v0.8.x + +v0.7.4 +Added : homebrew for Mac, by Daniel Cade +Added : more examples +Fixed : segfault when using small dictionaries, reported by Felix Handte +Modified : default compression level for CLI is now 3 +Updated : specification, to v0.1.1 + +v0.7.3 +New : compression format specification +New : `--` separator, stating that all following arguments are file names. Suggested by Chip Turner. +New : `ZSTD_getDecompressedSize()` +New : OpenBSD target, by Juan Francisco Cantero Hurtado +New : `examples` directory +fixed : dictBuilder using HC levels, reported by Bartosz Taudul +fixed : legacy support from ZSTD_decompress_usingDDict(), reported by Felix Handte +fixed : multi-blocks decoding with intermediate uncompressed blocks, reported by Greg Slazinski +modified : removed "mem.h" and "error_public.h" dependencies from "zstd.h" (experimental section) +modified : legacy functions no longer need magic number + +v0.7.2 +fixed : ZSTD_decompressBlock() using multiple consecutive blocks. Reported by Greg Slazinski. +fixed : potential segfault on very large files (many gigabytes). Reported by Chip Turner. +fixed : CLI displays system error message when destination file cannot be created (#231). Reported by Chip Turner. + +v0.7.1 +fixed : ZBUFF_compressEnd() called multiple times with too small `dst` buffer, reported by Christophe Chevalier +fixed : dictBuilder fails if first sample is too small, reported by Руслан Ковалёв +fixed : corruption issue, reported by cj +modified : checksum enabled by default in command line mode + +v0.7.0 +New : Support for directory compression, using `-r`, thanks to Przemyslaw Skibinski +New : Command `--rm`, to remove source file after successful de/compression +New : Visual build scripts, by Christophe Chevalier +New : Support for Sparse File-systems (do not use space for zero-filled sectors) +New : Frame checksum support +New : Support pass-through mode (when using `-df`) +API : more efficient Dictionary API : `ZSTD_compress_usingCDict()`, `ZSTD_decompress_usingDDict()` +API : create dictionary files from custom content, by Giuseppe Ottaviano +API : support for custom malloc/free functions +New : controllable Dictionary ID +New : Support for skippable frames + +v0.6.1 +New : zlib wrapper API, thanks to Przemyslaw Skibinski +New : Ability to compile compressor / decompressor separately +Changed : new lib directory structure +Fixed : Legacy codec v0.5 compatible with dictionary decompression +Fixed : Decoder corruption error (#173) +Fixed : null-string roundtrip (#176) +New : benchmark mode can select directory as input +Experimental : midipix support, VMS support + +v0.6.0 +Stronger high compression modes, thanks to Przemyslaw Skibinski +API : ZSTD_getFrameParams() provides size of decompressed content +New : highest compression modes require `--ultra` command to fully unleash their capacity +Fixed : zstd cli return error code > 0 and removes dst file artifact when decompression fails, thanks to Chip Turner + +v0.5.1 +New : Optimal parsing => Very high compression modes, thanks to Przemyslaw Skibinski +Changed : Dictionary builder integrated into libzstd and zstd cli +Changed (!) : zstd cli now uses "multiple input files" as default mode. See `zstd -h`. +Fix : high compression modes for big-endian platforms +New : zstd cli : `-t` | `--test` command + +v0.5.0 +New : dictionary builder utility +Changed : streaming & dictionary API +Improved : better compression of small data + +v0.4.7 +Improved : small compression speed improvement in HC mode +Changed : `zstd_decompress.c` has ZSTD_LEGACY_SUPPORT to 0 by default +fix : bt search bug + +v0.4.6 +fix : fast compression mode on Windows +New : cmake configuration file, thanks to Artyom Dymchenko +Improved : high compression mode on repetitive data +New : block-level API +New : ZSTD_duplicateCCtx() + +v0.4.5 +new : -m/--multiple : compress/decompress multiple files + +v0.4.4 +Fixed : high compression modes for Windows 32 bits +new : external dictionary API extended to buffered mode and accessible through command line +new : windows DLL project, thanks to Christophe Chevalier + +v0.4.3 : +new : external dictionary API +new : zstd-frugal + +v0.4.2 : +Generic minor improvements for small blocks +Fixed : big-endian compatibility, by Peter Harris (#85) + +v0.4.1 +Fixed : ZSTD_LEGACY_SUPPORT=0 build mode (reported by Luben) +removed `zstd.c` + +v0.4.0 +Command line utility compatible with high compression levels +Removed zstdhc => merged into zstd +Added : ZBUFF API (see zstd_buffered.h) +Rolling buffer support + +v0.3.6 +small blocks params + +v0.3.5 +minor generic compression improvements + +v0.3.4 +Faster fast cLevels + +v0.3.3 +Small compression ratio improvement + +v0.3.2 +Fixed Visual Studio + +v0.3.1 : +Small compression ratio improvement + +v0.3 +HC mode : compression levels 2-26 + +v0.2.2 +Fix : Visual Studio 2013 & 2015 release compilation, by Christophe Chevalier + +v0.2.1 +Fix : Read errors, advanced fuzzer tests, by Hanno Böck + +v0.2.0 +**Breaking format change** +Faster decompression speed +Can still decode v0.1 format + +v0.1.3 +fix uninitialization warning, reported by Evan Nemerson + +v0.1.2 +frame concatenation support + +v0.1.1 +fix compression bug +detects write-flush errors + +v0.1.0 +first release Copied: vendor/zstd/1.4.5/CONTRIBUTING.md (from r361423, vendor/zstd/dist/CONTRIBUTING.md) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/zstd/1.4.5/CONTRIBUTING.md Sat May 23 20:38:30 2020 (r361424, copy of r361423, vendor/zstd/dist/CONTRIBUTING.md) @@ -0,0 +1,392 @@ +# Contributing to Zstandard +We want to make contributing to this project as easy and transparent as +possible. + +## Our Development Process +New versions are being developed in the "dev" branch, +or in their own feature branch. +When they are deemed ready for a release, they are merged into "master". + +As a consequences, all contributions must stage first through "dev" +or their own feature branch. + +## Pull Requests +We actively welcome your pull requests. + +1. Fork the repo and create your branch from `dev`. +2. If you've added code that should be tested, add tests. +3. If you've changed APIs, update the documentation. +4. Ensure the test suite passes. +5. Make sure your code lints. +6. If you haven't already, complete the Contributor License Agreement ("CLA"). + +## Contributor License Agreement ("CLA") +In order to accept your pull request, we need you to submit a CLA. You only need +to do this once to work on any of Facebook's open source projects. + +Complete your CLA here: + +## Workflow +Zstd uses a branch-based workflow for making changes to the codebase. Typically, zstd +will use a new branch per sizable topic. For smaller changes, it is okay to lump multiple +related changes into a branch. + +Our contribution process works in three main stages: +1. Local development + * Update: + * Checkout your fork of zstd if you have not already + ``` + git checkout https://github.com//zstd + cd zstd + ``` + * Update your local dev branch + ``` + git pull https://github.com/facebook/zstd dev + git push origin dev + ``` + * Topic and development: + * Make a new branch on your fork about the topic you're developing for + ``` + # branch names should be consise but sufficiently informative + git checkout -b + git push origin + ``` + * Make commits and push + ``` + # make some changes = + git add -u && git commit -m + git push origin + ``` + * Note: run local tests to ensure that your changes didn't break existing functionality + * Quick check + ``` + make shortest + ``` + * Longer check + ``` + make test + ``` +2. Code Review and CI tests + * Ensure CI tests pass: + * Before sharing anything to the community, make sure that all CI tests pass on your local fork. + See our section on setting up your CI environment for more information on how to do this. + * Ensure that static analysis passes on your development machine. See the Static Analysis section + below to see how to do this. + * Create a pull request: + * When you are ready to share you changes to the community, create a pull request from your branch + to facebook:dev. You can do this very easily by clicking 'Create Pull Request' on your fork's home + page. + * From there, select the branch where you made changes as your source branch and facebook:dev + as the destination. + * Examine the diff presented between the two branches to make sure there is nothing unexpected. + * Write a good pull request description: + * While there is no strict template that our contributors follow, we would like them to + sufficiently summarize and motivate the changes they are proposing. We recommend all pull requests, + at least indirectly, address the following points. + * Is this pull request important and why? + * Is it addressing an issue? If so, what issue? (provide links for convenience please) + * Is this a new feature? If so, why is it useful and/or necessary? + * Are there background references and documents that reviewers should be aware of to properly assess this change? + * Note: make sure to point out any design and architectural decisions that you made and the rationale behind them. + * Note: if you have been working with a specific user and would like them to review your work, make sure you mention them using (@) + * Submit the pull request and iterate with feedback. +3. Merge and Release + * Getting approval: + * You will have to iterate on your changes with feedback from other collaborators to reach a point + where your pull request can be safely merged. + * To avoid too many comments on style and convention, make sure that you have a + look at our style section below before creating a pull request. + * Eventually, someone from the zstd team will approve your pull request and not long after merge it into + the dev branch. + * Housekeeping: + * Most PRs are linked with one or more Github issues. If this is the case for your PR, make sure + the corresponding issue is mentioned. If your change 'fixes' or completely addresses the + issue at hand, then please indicate this by requesting that an issue be closed by commenting. + * Just because your changes have been merged does not mean the topic or larger issue is complete. Remember + that the change must make it to an official zstd release for it to be meaningful. We recommend + that contributers track the activity on their pull request and corresponding issue(s) page(s) until + their change makes it to the next release of zstd. Users will often discover bugs in your code or + suggest ways to refine and improve your initial changes even after the pull request is merged. + +## Static Analysis +Static analysis is a process for examining the correctness or validity of a program without actually +executing it. It usually helps us find many simple bugs. Zstd uses clang's `scan-build` tool for +static analysis. You can install it by following the instructions for your OS on https://clang-analyzer.llvm.org/scan-build. + +Once installed, you can ensure that our static analysis tests pass on your local development machine +by running: +``` +make staticAnalyze +``` + +In general, you can use `scan-build` to static analyze any build script. For example, to static analyze +just `contrib/largeNbDicts` and nothing else, you can run: + +``` +scan-build make -C contrib/largeNbDicts largeNbDicts +``` + +## Performance +Performance is extremely important for zstd and we only merge pull requests whose performance +landscape and corresponding trade-offs have been adequately analyzed, reproduced, and presented. +This high bar for performance means that every PR which has the potential to +impact performance takes a very long time for us to properly review. That being said, we +always welcome contributions to improve performance (or worsen performance for the trade-off of +something else). Please keep the following in mind before submitting a performance related PR: + +1. Zstd isn't as old as gzip but it has been around for time now and its evolution is +very well documented via past Github issues and pull requests. It may be the case that your +particular performance optimization has already been considered in the past. Please take some +time to search through old issues and pull requests using keywords specific to your +would-be PR. Of course, just because a topic has already been discussed (and perhaps rejected +on some grounds) in the past, doesn't mean it isn't worth bringing up again. But even in that case, +it will be helpful for you to have context from that topic's history before contributing. +2. The distinction between noise and actual performance gains can unfortunately be very subtle +especially when microbenchmarking extremely small wins or losses. The only remedy to getting +something subtle merged is extensive benchmarking. You will be doing us a great favor if you +take the time to run extensive, long-duration, and potentially cross-(os, platform, process, etc) +benchmarks on your end before submitting a PR. Of course, you will not be able to benchmark +your changes on every single processor and os out there (and neither will we) but do that best +you can:) We've adding some things to think about when benchmarking below in the Benchmarking +Performance section which might be helpful for you. +3. Optimizing performance for a certain OS, processor vendor, compiler, or network system is a perfectly +legitimate thing to do as long as it does not harm the overall performance health of Zstd. +This is a hard balance to strike but please keep in mind other aspects of Zstd when +submitting changes that are clang-specific, windows-specific, etc. + +## Benchmarking Performance +Performance microbenchmarking is a tricky subject but also essential for Zstd. We value empirical +testing over theoretical speculation. This guide it not perfect but for most scenarios, it +is a good place to start. + +### Stability +Unfortunately, the most important aspect in being able to benchmark reliably is to have a stable +benchmarking machine. A virtual machine, a machine with shared resources, or your laptop +will typically not be stable enough to obtain reliable benchmark results. If you can get your +hands on a desktop, this is usually a better scenario. + +Of course, benchmarking can be done on non-hyper-stable machines as well. You will just have to +do a little more work to ensure that you are in fact measuring the changes you've made not and +noise. Here are some things you can do to make your benchmarks more stable: + +1. The most simple thing you can do to drastically improve the stability of your benchmark is +to run it multiple times and then aggregate the results of those runs. As a general rule of +thumb, the smaller the change you are trying to measure, the more samples of benchmark runs +you will have to aggregate over to get reliable results. Here are some additional things to keep in +mind when running multiple trials: + * How you aggregate your samples are important. You might be tempted to use the mean of your + results. While this is certainly going to be a more stable number than a raw single sample + benchmark number, you might have more luck by taking the median. The mean is not robust to + outliers whereas the median is. Better still, you could simply take the fastest speed your + benchmark achieved on each run since that is likely the fastest your process will be + capable of running your code. In our experience, this (aggregating by just taking the sample + with the fastest running time) has been the most stable approach. + * The more samples you have, the more stable your benchmarks should be. You can verify + your improved stability by looking at the size of your confidence intervals as you + increase your sample count. These should get smaller and smaller. Eventually hopefully + smaller than the performance win you are expecting. + * Most processors will take some time to get `hot` when running anything. The observations + you collect during that time period will very different from the true performance number. Having + a very large number of sample will help alleviate this problem slightly but you can also + address is directly by simply not including the first `n` iterations of your benchmark in + your aggregations. You can determine `n` by simply looking at the results from each iteration + and then hand picking a good threshold after which the variance in results seems to stabilize. +2. You cannot really get reliable benchmarks if your host machine is simultaneously running +another cpu/memory-intensive application in the background. If you are running benchmarks on your +personal laptop for instance, you should close all applications (including your code editor and +browser) before running your benchmarks. You might also have invisible background applications +running. You can see what these are by looking at either Activity Monitor on Mac or Task Manager +on Windows. You will get more stable benchmark results of you end those processes as well. + * If you have multiple cores, you can even run your benchmark on a reserved core to prevent + pollution from other OS and user processes. There are a number of ways to do this depending + on your OS: + * On linux boxes, you have use https://github.com/lpechacek/cpuset. + * On Windows, you can "Set Processor Affinity" using https://www.thewindowsclub.com/processor-affinity-windows + * On Mac, you can try to use their dedicated affinity API https://developer.apple.com/library/archive/releasenotes/Performance/RN-AffinityAPI/#//apple_ref/doc/uid/TP40006635-CH1-DontLinkElementID_2 +3. To benchmark, you will likely end up writing a separate c/c++ program that will link libzstd. +Dynamically linking your library will introduce some added variation (not a large amount but +definitely some). Statically linking libzstd will be more stable. Static libraries should +be enabled by default when building zstd. +4. Use a profiler with a good high resolution timer. See the section below on profiling for +details on this. +5. Disable frequency scaling, turbo boost and address space randomization (this will vary by OS) +6. Try to avoid storage. On some systems you can use tmpfs. Putting the program, inputs and outputs on +tmpfs avoids touching a real storage system, which can have a pretty big variability. + +Also check our LLVM's guide on benchmarking here: https://llvm.org/docs/Benchmarking.html + +### Zstd benchmark +The fastest signal you can get regarding your performance changes is via the in-build zstd cli +bench option. You can run Zstd as you typically would for your scenario using some set of options +and then additionally also specify the `-b#` option. Doing this will run our benchmarking pipeline +for that options you have just provided. If you want to look at the internals of how this +benchmarking script works, you can check out programs/benchzstd.c + +For example: say you have made a change that you believe improves the speed of zstd level 1. The +very first thing you should use to asses whether you actually achieved any sort of improvement +is `zstd -b`. You might try to do something like this. Note: you can use the `-i` option to +specify a running time for your benchmark in seconds (default is 3 seconds). +Usually, the longer the running time, the more stable your results will be. + +``` +$ git checkout +$ make && cp zstd zstd-old +$ git checkout +$ make && cp zstd zstd-new +$ zstd-old -i5 -b1 + 1 : 8990 -> 3992 (2.252), 302.6 MB/s , 626.4 MB/s +$ zstd-new -i5 -b1 + 1 : 8990 -> 3992 (2.252), 302.8 MB/s , 628.4 MB/s +``` + +Unless your performance win is large enough to be visible despite the intrinsic noise +on your computer, benchzstd alone will likely not be enough to validate the impact of your +changes. For example, the results of the example above indicate that effectively nothing +changed but there could be a small <3% improvement that the noise on the host machine +obscured. So unless you see a large performance win (10-15% consistently) using just +this method of evaluation will not be sufficient. + +### Profiling +There are a number of great profilers out there. We're going to briefly mention how you can +profile your code using `instruments` on mac, `perf` on linux and `visual studio profiler` +on windows. + +Say you have an idea for a change that you think will provide some good performance gains +for level 1 compression on Zstd. Typically this means, you have identified a section of +code that you think can be made to run faster. + +The first thing you will want to do is make sure that the piece of code is actually taking up +a notable amount of time to run. It is usually not worth optimzing something which accounts for less than +0.0001% of the total running time. Luckily, there are tools to help with this. +Profilers will let you see how much time your code spends inside a particular function. +If your target code snippit is only part of a function, it might be worth trying to +isolate that snippit by moving it to its own function (this is usually not necessary but +might be). + +Most profilers (including the profilers dicusssed below) will generate a call graph of +functions for you. Your goal will be to find your function of interest in this call grapch +and then inspect the time spent inside of it. You might also want to to look at the +annotated assembly which most profilers will provide you with. + +#### Instruments +We will once again consider the scenario where you think you've identified a piece of code +whose performance can be improved upon. Follow these steps to profile your code using +Instruments. + +1. Open Instruments +2. Select `Time Profiler` from the list of standard templates +3. Close all other applications except for your instruments window and your terminal +4. Run your benchmarking script from your terminal window + * You will want a benchmark that runs for at least a few seconds (5 seconds will + usually be long enough). This way the profiler will have something to work with + and you will have ample time to attach your profiler to this process:) + * I will just use benchzstd as my bencharmking script for this example: +``` +$ zstd -b1 -i5 # this will run for 5 seconds +``` +5. Once you run your benchmarking script, switch back over to instruments and attach your +process to the time profiler. You can do this by: + * Clicking on the `All Processes` drop down in the top left of the toolbar. + * Selecting your process from the dropdown. In my case, it is just going to be labled + `zstd` + * Hitting the bright red record circle button on the top left of the toolbar +6. You profiler will now start collecting metrics from your bencharking script. Once +you think you have collected enough samples (usually this is the case after 3 seconds of +recording), stop your profiler. +7. Make sure that in toolbar of the bottom window, `profile` is selected. +8. You should be able to see your call graph. + * If you don't see the call graph or an incomplete call graph, make sure you have compiled + zstd and your benchmarking scripg using debug flags. On mac and linux, this just means + you will have to supply the `-g` flag alone with your build script. You might also + have to provide the `-fno-omit-frame-pointer` flag +9. Dig down the graph to find your function call and then inspect it by double clicking +the list item. You will be able to see the annotated source code and the assembly side by +side. + +#### Perf + +This wiki has a pretty detailed tutorial on getting started working with perf so we'll +leave you to check that out of you're getting started: + +https://perf.wiki.kernel.org/index.php/Tutorial + +Some general notes on perf: +* Use `perf stat -r # ` to quickly get some relevant timing and +counter statistics. Perf uses a high resolution timer and this is likely one +of the first things your team will run when assessing your PR. +* Perf has a long list of hardware counters that can be viewed with `perf --list`. +When measuring optimizations, something worth trying is to make sure the handware +counters you expect to be impacted by your change are in fact being so. For example, +if you expect the L1 cache misses to decrease with your change, you can look at the +counter `L1-dcache-load-misses` +* Perf hardware counters will not work on a virtual machine. + +#### Visual Studio + +TODO + + +## Setting up continuous integration (CI) on your fork +Zstd uses a number of different continuous integration (CI) tools to ensure that new changes +are well tested before they make it to an official release. Specifically, we use the platforms +travis-ci, circle-ci, and appveyor. + +Changes cannot be merged into the main dev branch unless they pass all of our CI tests. +The easiest way to run these CI tests on your own before submitting a PR to our dev branch +is to configure your personal fork of zstd with each of the CI platforms. Below, you'll find +instructions for doing this. + +### travis-ci +Follow these steps to link travis-ci with your github fork of zstd + +1. Make sure you are logged into your github account +2. Go to https://travis-ci.org/ +3. Click 'Sign in with Github' on the top right +4. Click 'Authorize travis-ci' +5. Click 'Activate all repositories using Github Apps' +6. Select 'Only select repositories' and select your fork of zstd from the drop down +7. Click 'Approve and Install' +8. Click 'Sign in with Github' again. This time, it will be for travis-pro (which will let you view your tests on the web dashboard) +9. Click 'Authorize travis-pro' +10. You should have travis set up on your fork now. + +### circle-ci +TODO + +### appveyor +Follow these steps to link circle-ci with your girhub fork of zstd + +1. Make sure you are logged into your github account +2. Go to https://www.appveyor.com/ +3. Click 'Sign in' on the top right +4. Select 'Github' on the left panel +5. Click 'Authorize appveyor' +6. You might be asked to select which repositories you want to give appveyor permission to. Select your fork of zstd if you're prompted +7. You should have appveyor set up on your fork now. + +### General notes on CI +CI tests run every time a pull request (PR) is created or updated. The exact tests +that get run will depend on the destination branch you specify. Some tests take +longer to run than others. Currently, our CI is set up to run a short +series of tests when creating a PR to the dev branch and a longer series of tests +when creating a PR to the master branch. You can look in the configuration files +of the respective CI platform for more information on what gets run when. + +Most people will just want to create a PR with the destination set to their local dev +branch of zstd. You can then find the status of the tests on the PR's page. You can also +re-run tests and cancel running tests from the PR page or from the respective CI's dashboard. + +## Issues +We use GitHub issues to track public bugs. Please ensure your description is +clear and has sufficient instructions to be able to reproduce the issue. + +Facebook has a [bounty program](https://www.facebook.com/whitehat/) for the safe +disclosure of security bugs. In those cases, please go through the process +outlined on that page and do not file a public issue. + +## Coding Style +* 4 spaces for indentation rather than tabs + +## License +By contributing to Zstandard, you agree that your contributions will be licensed +under both the [LICENSE](LICENSE) file and the [COPYING](COPYING) file in the root directory of this source tree. Copied: vendor/zstd/1.4.5/Makefile (from r361423, vendor/zstd/dist/Makefile) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/zstd/1.4.5/Makefile Sat May 23 20:38:30 2020 (r361424, copy of r361423, vendor/zstd/dist/Makefile) @@ -0,0 +1,414 @@ +# ################################################################ +# Copyright (c) 2015-2020, Yann Collet, Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# You may select, at your option, one of the above-listed licenses. +# ################################################################ + +PRGDIR = programs +ZSTDDIR = lib +BUILDIR = build +ZWRAPDIR = zlibWrapper +TESTDIR = tests +FUZZDIR = $(TESTDIR)/fuzz + +# Define nul output +VOID = /dev/null + +# When cross-compiling from linux to windows, you might +# need to specify this as "Windows." Fedora build fails +# without it. +# +# Note: mingw-w64 build from linux to windows does not +# fail on other tested distros (ubuntu, debian) even +# without manually specifying the TARGET_SYSTEM. +TARGET_SYSTEM ?= $(OS) + +ifneq (,$(filter Windows%,$(TARGET_SYSTEM))) +EXT =.exe +else +EXT = +endif + +## default: Build lib-release and zstd-release +.PHONY: default +default: lib-release zstd-release + +.PHONY: all +all: allmost examples manual contrib + +.PHONY: allmost +allmost: allzstd zlibwrapper *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***