zstd-native-ruby 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CLAUDE.md +101 -0
- data/LICENSE +19 -0
- data/README.md +47 -0
- data/ext/zstd_ruby/extconf.rb +35 -0
- data/ext/zstd_ruby/zstd_ruby.c +221 -0
- data/lib/zstd_ruby.rb +68 -0
- data/vendor/zstd/CHANGELOG +863 -0
- data/vendor/zstd/CMakeLists.txt +11 -0
- data/vendor/zstd/CODE_OF_CONDUCT.md +5 -0
- data/vendor/zstd/CONTRIBUTING.md +494 -0
- data/vendor/zstd/COPYING +339 -0
- data/vendor/zstd/LICENSE +30 -0
- data/vendor/zstd/Makefile +470 -0
- data/vendor/zstd/Package.swift +36 -0
- data/vendor/zstd/README.md +244 -0
- data/vendor/zstd/SECURITY.md +15 -0
- data/vendor/zstd/TESTING.md +43 -0
- data/vendor/zstd/build/LICENSE +0 -0
- data/vendor/zstd/build/README.md +56 -0
- data/vendor/zstd/build/VS2008/fullbench/fullbench.vcproj +549 -0
- data/vendor/zstd/build/VS2008/fuzzer/fuzzer.vcproj +585 -0
- data/vendor/zstd/build/VS2008/zstd/zstd.vcproj +677 -0
- data/vendor/zstd/build/VS2008/zstd.sln +56 -0
- data/vendor/zstd/build/VS2008/zstdlib/zstdlib.vcproj +635 -0
- data/vendor/zstd/build/VS2010/CompileAsCpp.props +8 -0
- data/vendor/zstd/build/VS2010/datagen/datagen.vcxproj +170 -0
- data/vendor/zstd/build/VS2010/fullbench/fullbench.vcxproj +220 -0
- data/vendor/zstd/build/VS2010/fuzzer/fuzzer.vcxproj +224 -0
- data/vendor/zstd/build/VS2010/libzstd/libzstd.vcxproj +243 -0
- data/vendor/zstd/build/VS2010/libzstd-dll/libzstd-dll.rc +51 -0
- data/vendor/zstd/build/VS2010/libzstd-dll/libzstd-dll.vcxproj +250 -0
- data/vendor/zstd/build/VS2010/zstd/zstd.rc +51 -0
- data/vendor/zstd/build/VS2010/zstd/zstd.vcxproj +266 -0
- data/vendor/zstd/build/VS2010/zstd.sln +84 -0
- data/vendor/zstd/build/VS_scripts/README.md +64 -0
- data/vendor/zstd/build/VS_scripts/build.VS2010.cmd +7 -0
- data/vendor/zstd/build/VS_scripts/build.VS2012.cmd +6 -0
- data/vendor/zstd/build/VS_scripts/build.VS2013.cmd +7 -0
- data/vendor/zstd/build/VS_scripts/build.VS2015.cmd +7 -0
- data/vendor/zstd/build/VS_scripts/build.VS2017.cmd +7 -0
- data/vendor/zstd/build/VS_scripts/build.VS2017Community.cmd +7 -0
- data/vendor/zstd/build/VS_scripts/build.VS2017Enterprise.cmd +7 -0
- data/vendor/zstd/build/VS_scripts/build.VS2017Professional.cmd +7 -0
- data/vendor/zstd/build/VS_scripts/build.VSPreview.cmd +7 -0
- data/vendor/zstd/build/VS_scripts/build.generic.cmd +67 -0
- data/vendor/zstd/build/cmake/CMakeLists.txt +81 -0
- data/vendor/zstd/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake +138 -0
- data/vendor/zstd/build/cmake/CMakeModules/FindLibLZ4.cmake +49 -0
- data/vendor/zstd/build/cmake/CMakeModules/GetZstdLibraryVersion.cmake +10 -0
- data/vendor/zstd/build/cmake/CMakeModules/JoinPaths.cmake +23 -0
- data/vendor/zstd/build/cmake/CMakeModules/ZstdBuild.cmake +42 -0
- data/vendor/zstd/build/cmake/CMakeModules/ZstdDependencies.cmake +30 -0
- data/vendor/zstd/build/cmake/CMakeModules/ZstdOptions.cmake +68 -0
- data/vendor/zstd/build/cmake/CMakeModules/ZstdPackage.cmake +42 -0
- data/vendor/zstd/build/cmake/CMakeModules/ZstdVersion.cmake +31 -0
- data/vendor/zstd/build/cmake/README.md +155 -0
- data/vendor/zstd/build/cmake/contrib/CMakeLists.txt +13 -0
- data/vendor/zstd/build/cmake/contrib/gen_html/CMakeLists.txt +30 -0
- data/vendor/zstd/build/cmake/contrib/pzstd/CMakeLists.txt +39 -0
- data/vendor/zstd/build/cmake/lib/CMakeLists.txt +298 -0
- data/vendor/zstd/build/cmake/lib/cmake_uninstall.cmake.in +22 -0
- data/vendor/zstd/build/cmake/programs/CMakeLists.txt +144 -0
- data/vendor/zstd/build/cmake/tests/CMakeLists.txt +118 -0
- data/vendor/zstd/build/cmake/zstdConfig.cmake.in +10 -0
- data/vendor/zstd/build/meson/GetZstdLibraryVersion.py +39 -0
- data/vendor/zstd/build/meson/InstallSymlink.py +55 -0
- data/vendor/zstd/build/meson/README.md +38 -0
- data/vendor/zstd/build/meson/contrib/gen_html/meson.build +30 -0
- data/vendor/zstd/build/meson/contrib/meson.build +12 -0
- data/vendor/zstd/build/meson/contrib/pzstd/meson.build +25 -0
- data/vendor/zstd/build/meson/lib/meson.build +175 -0
- data/vendor/zstd/build/meson/meson.build +155 -0
- data/vendor/zstd/build/meson/meson_options.txt +36 -0
- data/vendor/zstd/build/meson/programs/meson.build +124 -0
- data/vendor/zstd/build/meson/tests/meson.build +217 -0
- data/vendor/zstd/build/meson/tests/valgrindTest.py +90 -0
- data/vendor/zstd/build/single_file_libs/README.md +33 -0
- data/vendor/zstd/build/single_file_libs/build_decoder_test.sh +91 -0
- data/vendor/zstd/build/single_file_libs/build_library_test.sh +98 -0
- data/vendor/zstd/build/single_file_libs/combine.py +234 -0
- data/vendor/zstd/build/single_file_libs/combine.sh +249 -0
- data/vendor/zstd/build/single_file_libs/create_single_file_decoder.sh +19 -0
- data/vendor/zstd/build/single_file_libs/create_single_file_library.sh +19 -0
- data/vendor/zstd/build/single_file_libs/examples/README.md +11 -0
- data/vendor/zstd/build/single_file_libs/examples/emscripten.c +340 -0
- data/vendor/zstd/build/single_file_libs/examples/roundtrip.c +83 -0
- data/vendor/zstd/build/single_file_libs/examples/shell.html +31 -0
- data/vendor/zstd/build/single_file_libs/examples/simple.c +75 -0
- data/vendor/zstd/build/single_file_libs/examples/testcard-dxt1.inl +2731 -0
- data/vendor/zstd/build/single_file_libs/examples/testcard-zstd.inl +261 -0
- data/vendor/zstd/build/single_file_libs/examples/testcard.png +0 -0
- data/vendor/zstd/build/single_file_libs/zstd-in.c +91 -0
- data/vendor/zstd/build/single_file_libs/zstddeclib-in.c +62 -0
- data/vendor/zstd/contrib/VS2005/README.md +3 -0
- data/vendor/zstd/contrib/VS2005/fullbench/fullbench.vcproj +440 -0
- data/vendor/zstd/contrib/VS2005/fuzzer/fuzzer.vcproj +488 -0
- data/vendor/zstd/contrib/VS2005/zstd/zstd.vcproj +552 -0
- data/vendor/zstd/contrib/VS2005/zstd.sln +55 -0
- data/vendor/zstd/contrib/VS2005/zstdlib/zstdlib.vcproj +546 -0
- data/vendor/zstd/contrib/cleanTabs +2 -0
- data/vendor/zstd/contrib/diagnose_corruption/Makefile +35 -0
- data/vendor/zstd/contrib/diagnose_corruption/check_flipped_bits.c +400 -0
- data/vendor/zstd/contrib/docker/Dockerfile +20 -0
- data/vendor/zstd/contrib/docker/README.md +20 -0
- data/vendor/zstd/contrib/externalSequenceProducer/Makefile +40 -0
- data/vendor/zstd/contrib/externalSequenceProducer/README.md +14 -0
- data/vendor/zstd/contrib/externalSequenceProducer/main.c +108 -0
- data/vendor/zstd/contrib/externalSequenceProducer/sequence_producer.c +80 -0
- data/vendor/zstd/contrib/externalSequenceProducer/sequence_producer.h +26 -0
- data/vendor/zstd/contrib/freestanding_lib/freestanding.py +774 -0
- data/vendor/zstd/contrib/gen_html/Makefile +51 -0
- data/vendor/zstd/contrib/gen_html/README.md +31 -0
- data/vendor/zstd/contrib/gen_html/gen-zstd-manual.sh +9 -0
- data/vendor/zstd/contrib/gen_html/gen_html.cpp +225 -0
- data/vendor/zstd/contrib/largeNbDicts/Makefile +58 -0
- data/vendor/zstd/contrib/largeNbDicts/README.md +33 -0
- data/vendor/zstd/contrib/largeNbDicts/largeNbDicts.c +1087 -0
- data/vendor/zstd/contrib/linux-kernel/Makefile +108 -0
- data/vendor/zstd/contrib/linux-kernel/README.md +14 -0
- data/vendor/zstd/contrib/linux-kernel/btrfs-benchmark.sh +104 -0
- data/vendor/zstd/contrib/linux-kernel/btrfs-extract-benchmark.sh +99 -0
- data/vendor/zstd/contrib/linux-kernel/decompress_sources.h +34 -0
- data/vendor/zstd/contrib/linux-kernel/linux.mk +44 -0
- data/vendor/zstd/contrib/linux-kernel/linux_zstd.h +691 -0
- data/vendor/zstd/contrib/linux-kernel/mem.h +262 -0
- data/vendor/zstd/contrib/linux-kernel/squashfs-benchmark.sh +39 -0
- data/vendor/zstd/contrib/linux-kernel/test/Makefile +49 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/compiler.h +23 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/errno.h +15 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/kernel.h +19 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/limits.h +15 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/math64.h +15 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/module.h +20 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/printk.h +15 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/stddef.h +15 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/swab.h +16 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/types.h +16 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/unaligned.h +187 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/xxhash.h +745 -0
- data/vendor/zstd/contrib/linux-kernel/test/macro-test.sh +44 -0
- data/vendor/zstd/contrib/linux-kernel/test/static_test.c +52 -0
- data/vendor/zstd/contrib/linux-kernel/test/test.c +229 -0
- data/vendor/zstd/contrib/linux-kernel/zstd_common_module.c +29 -0
- data/vendor/zstd/contrib/linux-kernel/zstd_compress_module.c +286 -0
- data/vendor/zstd/contrib/linux-kernel/zstd_decompress_module.c +141 -0
- data/vendor/zstd/contrib/linux-kernel/zstd_deps.h +121 -0
- data/vendor/zstd/contrib/match_finders/README.md +42 -0
- data/vendor/zstd/contrib/match_finders/zstd_edist.c +558 -0
- data/vendor/zstd/contrib/match_finders/zstd_edist.h +70 -0
- data/vendor/zstd/contrib/premake/premake4.lua +6 -0
- data/vendor/zstd/contrib/premake/zstd.lua +81 -0
- data/vendor/zstd/contrib/pzstd/BUCK +72 -0
- data/vendor/zstd/contrib/pzstd/ErrorHolder.h +54 -0
- data/vendor/zstd/contrib/pzstd/Logging.h +73 -0
- data/vendor/zstd/contrib/pzstd/Makefile +265 -0
- data/vendor/zstd/contrib/pzstd/Options.cpp +424 -0
- data/vendor/zstd/contrib/pzstd/Options.h +71 -0
- data/vendor/zstd/contrib/pzstd/Pzstd.cpp +626 -0
- data/vendor/zstd/contrib/pzstd/Pzstd.h +153 -0
- data/vendor/zstd/contrib/pzstd/README.md +56 -0
- data/vendor/zstd/contrib/pzstd/SkippableFrame.cpp +30 -0
- data/vendor/zstd/contrib/pzstd/SkippableFrame.h +64 -0
- data/vendor/zstd/contrib/pzstd/images/Cspeed.png +0 -0
- data/vendor/zstd/contrib/pzstd/images/Dspeed.png +0 -0
- data/vendor/zstd/contrib/pzstd/main.cpp +27 -0
- data/vendor/zstd/contrib/pzstd/test/BUCK +37 -0
- data/vendor/zstd/contrib/pzstd/test/OptionsTest.cpp +536 -0
- data/vendor/zstd/contrib/pzstd/test/PzstdTest.cpp +147 -0
- data/vendor/zstd/contrib/pzstd/test/RoundTrip.h +86 -0
- data/vendor/zstd/contrib/pzstd/test/RoundTripTest.cpp +84 -0
- data/vendor/zstd/contrib/pzstd/utils/BUCK +75 -0
- data/vendor/zstd/contrib/pzstd/utils/Buffer.h +99 -0
- data/vendor/zstd/contrib/pzstd/utils/FileSystem.h +96 -0
- data/vendor/zstd/contrib/pzstd/utils/Likely.h +28 -0
- data/vendor/zstd/contrib/pzstd/utils/Portability.h +16 -0
- data/vendor/zstd/contrib/pzstd/utils/Range.h +133 -0
- data/vendor/zstd/contrib/pzstd/utils/ResourcePool.h +96 -0
- data/vendor/zstd/contrib/pzstd/utils/ScopeGuard.h +50 -0
- data/vendor/zstd/contrib/pzstd/utils/ThreadPool.h +58 -0
- data/vendor/zstd/contrib/pzstd/utils/WorkQueue.h +182 -0
- data/vendor/zstd/contrib/pzstd/utils/test/BUCK +35 -0
- data/vendor/zstd/contrib/pzstd/utils/test/BufferTest.cpp +89 -0
- data/vendor/zstd/contrib/pzstd/utils/test/RangeTest.cpp +82 -0
- data/vendor/zstd/contrib/pzstd/utils/test/ResourcePoolTest.cpp +72 -0
- data/vendor/zstd/contrib/pzstd/utils/test/ScopeGuardTest.cpp +28 -0
- data/vendor/zstd/contrib/pzstd/utils/test/ThreadPoolTest.cpp +71 -0
- data/vendor/zstd/contrib/pzstd/utils/test/WorkQueueTest.cpp +282 -0
- data/vendor/zstd/contrib/recovery/Makefile +35 -0
- data/vendor/zstd/contrib/recovery/recover_directory.c +152 -0
- data/vendor/zstd/contrib/seekable_format/README.md +42 -0
- data/vendor/zstd/contrib/seekable_format/examples/Makefile +55 -0
- data/vendor/zstd/contrib/seekable_format/examples/parallel_compression.c +254 -0
- data/vendor/zstd/contrib/seekable_format/examples/parallel_processing.c +191 -0
- data/vendor/zstd/contrib/seekable_format/examples/seekable_compression.c +136 -0
- data/vendor/zstd/contrib/seekable_format/examples/seekable_decompression.c +141 -0
- data/vendor/zstd/contrib/seekable_format/examples/seekable_decompression_mem.c +147 -0
- data/vendor/zstd/contrib/seekable_format/tests/Makefile +58 -0
- data/vendor/zstd/contrib/seekable_format/tests/seekable_tests.c +375 -0
- data/vendor/zstd/contrib/seekable_format/zstd_seekable.h +226 -0
- data/vendor/zstd/contrib/seekable_format/zstd_seekable_compression_format.md +116 -0
- data/vendor/zstd/contrib/seekable_format/zstdseek_compress.c +365 -0
- data/vendor/zstd/contrib/seekable_format/zstdseek_decompress.c +600 -0
- data/vendor/zstd/contrib/seqBench/Makefile +58 -0
- data/vendor/zstd/contrib/seqBench/seqBench.c +53 -0
- data/vendor/zstd/contrib/snap/snapcraft.yaml +28 -0
- data/vendor/zstd/doc/README.md +26 -0
- data/vendor/zstd/doc/decompressor_errata.md +148 -0
- data/vendor/zstd/doc/decompressor_permissive.md +80 -0
- data/vendor/zstd/doc/educational_decoder/Makefile +62 -0
- data/vendor/zstd/doc/educational_decoder/README.md +36 -0
- data/vendor/zstd/doc/educational_decoder/harness.c +119 -0
- data/vendor/zstd/doc/educational_decoder/zstd_decompress.c +2323 -0
- data/vendor/zstd/doc/educational_decoder/zstd_decompress.h +61 -0
- data/vendor/zstd/doc/images/CSpeed2.png +0 -0
- data/vendor/zstd/doc/images/DCspeed5.png +0 -0
- data/vendor/zstd/doc/images/DSpeed3.png +0 -0
- data/vendor/zstd/doc/images/cdict_v136.png +0 -0
- data/vendor/zstd/doc/images/dict-cr.png +0 -0
- data/vendor/zstd/doc/images/dict-cs.png +0 -0
- data/vendor/zstd/doc/images/dict-ds.png +0 -0
- data/vendor/zstd/doc/images/zstd_cdict_v1_3_5.png +0 -0
- data/vendor/zstd/doc/images/zstd_logo86.png +0 -0
- data/vendor/zstd/doc/zstd_compression_format.md +1772 -0
- data/vendor/zstd/doc/zstd_manual.html +2244 -0
- data/vendor/zstd/examples/Makefile +93 -0
- data/vendor/zstd/examples/README.md +46 -0
- data/vendor/zstd/examples/common.h +246 -0
- data/vendor/zstd/examples/dictionary_compression.c +107 -0
- data/vendor/zstd/examples/dictionary_decompression.c +99 -0
- data/vendor/zstd/examples/multiple_simple_compression.c +116 -0
- data/vendor/zstd/examples/multiple_streaming_compression.c +133 -0
- data/vendor/zstd/examples/simple_compression.c +68 -0
- data/vendor/zstd/examples/simple_decompression.c +65 -0
- data/vendor/zstd/examples/streaming_compression.c +146 -0
- data/vendor/zstd/examples/streaming_compression_thread_pool.c +180 -0
- data/vendor/zstd/examples/streaming_decompression.c +100 -0
- data/vendor/zstd/examples/streaming_memory_usage.c +137 -0
- data/vendor/zstd/lib/BUCK +232 -0
- data/vendor/zstd/lib/Makefile +389 -0
- data/vendor/zstd/lib/README.md +267 -0
- data/vendor/zstd/lib/common/allocations.h +55 -0
- data/vendor/zstd/lib/common/bits.h +205 -0
- data/vendor/zstd/lib/common/bitstream.h +454 -0
- data/vendor/zstd/lib/common/compiler.h +482 -0
- data/vendor/zstd/lib/common/cpu.h +249 -0
- data/vendor/zstd/lib/common/debug.c +30 -0
- data/vendor/zstd/lib/common/debug.h +107 -0
- data/vendor/zstd/lib/common/debug.o +0 -0
- data/vendor/zstd/lib/common/entropy_common.c +340 -0
- data/vendor/zstd/lib/common/entropy_common.o +0 -0
- data/vendor/zstd/lib/common/error_private.c +64 -0
- data/vendor/zstd/lib/common/error_private.h +158 -0
- data/vendor/zstd/lib/common/error_private.o +0 -0
- data/vendor/zstd/lib/common/fse.h +625 -0
- data/vendor/zstd/lib/common/fse_decompress.c +315 -0
- data/vendor/zstd/lib/common/fse_decompress.o +0 -0
- data/vendor/zstd/lib/common/huf.h +277 -0
- data/vendor/zstd/lib/common/mem.h +422 -0
- data/vendor/zstd/lib/common/pool.c +371 -0
- data/vendor/zstd/lib/common/pool.h +81 -0
- data/vendor/zstd/lib/common/pool.o +0 -0
- data/vendor/zstd/lib/common/portability_macros.h +190 -0
- data/vendor/zstd/lib/common/threading.c +196 -0
- data/vendor/zstd/lib/common/threading.h +142 -0
- data/vendor/zstd/lib/common/threading.o +0 -0
- data/vendor/zstd/lib/common/xxhash.c +18 -0
- data/vendor/zstd/lib/common/xxhash.h +7094 -0
- data/vendor/zstd/lib/common/xxhash.o +0 -0
- data/vendor/zstd/lib/common/zstd_common.c +57 -0
- data/vendor/zstd/lib/common/zstd_common.o +0 -0
- data/vendor/zstd/lib/common/zstd_deps.h +123 -0
- data/vendor/zstd/lib/common/zstd_internal.h +326 -0
- data/vendor/zstd/lib/common/zstd_trace.h +156 -0
- data/vendor/zstd/lib/compress/clevels.h +134 -0
- data/vendor/zstd/lib/compress/fse_compress.c +625 -0
- data/vendor/zstd/lib/compress/fse_compress.o +0 -0
- data/vendor/zstd/lib/compress/hist.c +446 -0
- data/vendor/zstd/lib/compress/hist.h +86 -0
- data/vendor/zstd/lib/compress/hist.o +0 -0
- data/vendor/zstd/lib/compress/huf_compress.c +1465 -0
- data/vendor/zstd/lib/compress/huf_compress.o +0 -0
- data/vendor/zstd/lib/compress/zstd_compress.c +8362 -0
- data/vendor/zstd/lib/compress/zstd_compress.o +0 -0
- data/vendor/zstd/lib/compress/zstd_compress_internal.h +1636 -0
- data/vendor/zstd/lib/compress/zstd_compress_literals.c +235 -0
- data/vendor/zstd/lib/compress/zstd_compress_literals.h +39 -0
- data/vendor/zstd/lib/compress/zstd_compress_literals.o +0 -0
- data/vendor/zstd/lib/compress/zstd_compress_sequences.c +442 -0
- data/vendor/zstd/lib/compress/zstd_compress_sequences.h +55 -0
- data/vendor/zstd/lib/compress/zstd_compress_sequences.o +0 -0
- data/vendor/zstd/lib/compress/zstd_compress_superblock.c +688 -0
- data/vendor/zstd/lib/compress/zstd_compress_superblock.h +32 -0
- data/vendor/zstd/lib/compress/zstd_compress_superblock.o +0 -0
- data/vendor/zstd/lib/compress/zstd_cwksp.h +765 -0
- data/vendor/zstd/lib/compress/zstd_double_fast.c +778 -0
- data/vendor/zstd/lib/compress/zstd_double_fast.h +42 -0
- data/vendor/zstd/lib/compress/zstd_double_fast.o +0 -0
- data/vendor/zstd/lib/compress/zstd_fast.c +985 -0
- data/vendor/zstd/lib/compress/zstd_fast.h +30 -0
- data/vendor/zstd/lib/compress/zstd_fast.o +0 -0
- data/vendor/zstd/lib/compress/zstd_lazy.c +2243 -0
- data/vendor/zstd/lib/compress/zstd_lazy.h +193 -0
- data/vendor/zstd/lib/compress/zstd_lazy.o +0 -0
- data/vendor/zstd/lib/compress/zstd_ldm.c +745 -0
- data/vendor/zstd/lib/compress/zstd_ldm.h +109 -0
- data/vendor/zstd/lib/compress/zstd_ldm.o +0 -0
- data/vendor/zstd/lib/compress/zstd_ldm_geartab.h +106 -0
- data/vendor/zstd/lib/compress/zstd_opt.c +1572 -0
- data/vendor/zstd/lib/compress/zstd_opt.h +72 -0
- data/vendor/zstd/lib/compress/zstd_opt.o +0 -0
- data/vendor/zstd/lib/compress/zstd_preSplit.c +238 -0
- data/vendor/zstd/lib/compress/zstd_preSplit.h +33 -0
- data/vendor/zstd/lib/compress/zstd_preSplit.o +0 -0
- data/vendor/zstd/lib/compress/zstdmt_compress.c +1924 -0
- data/vendor/zstd/lib/compress/zstdmt_compress.h +102 -0
- data/vendor/zstd/lib/compress/zstdmt_compress.o +0 -0
- data/vendor/zstd/lib/decompress/huf_decompress.c +1953 -0
- data/vendor/zstd/lib/decompress/huf_decompress.o +0 -0
- data/vendor/zstd/lib/decompress/huf_decompress_amd64.S +766 -0
- data/vendor/zstd/lib/decompress/zstd_ddict.c +244 -0
- data/vendor/zstd/lib/decompress/zstd_ddict.h +44 -0
- data/vendor/zstd/lib/decompress/zstd_ddict.o +0 -0
- data/vendor/zstd/lib/decompress/zstd_decompress.c +2410 -0
- data/vendor/zstd/lib/decompress/zstd_decompress.o +0 -0
- data/vendor/zstd/lib/decompress/zstd_decompress_block.c +2311 -0
- data/vendor/zstd/lib/decompress/zstd_decompress_block.h +73 -0
- data/vendor/zstd/lib/decompress/zstd_decompress_block.o +0 -0
- data/vendor/zstd/lib/decompress/zstd_decompress_internal.h +240 -0
- data/vendor/zstd/lib/deprecated/zbuff.h +214 -0
- data/vendor/zstd/lib/deprecated/zbuff_common.c +26 -0
- data/vendor/zstd/lib/deprecated/zbuff_compress.c +167 -0
- data/vendor/zstd/lib/deprecated/zbuff_decompress.c +77 -0
- data/vendor/zstd/lib/dictBuilder/cover.c +1333 -0
- data/vendor/zstd/lib/dictBuilder/cover.h +152 -0
- data/vendor/zstd/lib/dictBuilder/divsufsort.c +1913 -0
- data/vendor/zstd/lib/dictBuilder/divsufsort.h +57 -0
- data/vendor/zstd/lib/dictBuilder/fastcover.c +765 -0
- data/vendor/zstd/lib/dictBuilder/zdict.c +1137 -0
- data/vendor/zstd/lib/dll/example/Makefile +48 -0
- data/vendor/zstd/lib/dll/example/README.md +63 -0
- data/vendor/zstd/lib/dll/example/build_package.bat +55 -0
- data/vendor/zstd/lib/dll/example/fullbench-dll.sln +25 -0
- data/vendor/zstd/lib/dll/example/fullbench-dll.vcxproj +181 -0
- data/vendor/zstd/lib/install_oses.mk +17 -0
- data/vendor/zstd/lib/legacy/zstd_legacy.h +452 -0
- data/vendor/zstd/lib/legacy/zstd_v01.c +2128 -0
- data/vendor/zstd/lib/legacy/zstd_v01.h +94 -0
- data/vendor/zstd/lib/legacy/zstd_v02.c +3465 -0
- data/vendor/zstd/lib/legacy/zstd_v02.h +93 -0
- data/vendor/zstd/lib/legacy/zstd_v03.c +3105 -0
- data/vendor/zstd/lib/legacy/zstd_v03.h +93 -0
- data/vendor/zstd/lib/legacy/zstd_v04.c +3598 -0
- data/vendor/zstd/lib/legacy/zstd_v04.h +142 -0
- data/vendor/zstd/lib/legacy/zstd_v05.c +4005 -0
- data/vendor/zstd/lib/legacy/zstd_v05.h +162 -0
- data/vendor/zstd/lib/legacy/zstd_v06.c +4110 -0
- data/vendor/zstd/lib/legacy/zstd_v06.h +172 -0
- data/vendor/zstd/lib/legacy/zstd_v07.c +4490 -0
- data/vendor/zstd/lib/legacy/zstd_v07.h +187 -0
- data/vendor/zstd/lib/libzstd.mk +238 -0
- data/vendor/zstd/lib/libzstd.pc.in +17 -0
- data/vendor/zstd/lib/module.modulemap +35 -0
- data/vendor/zstd/lib/zdict.h +481 -0
- data/vendor/zstd/lib/zstd.h +3209 -0
- data/vendor/zstd/lib/zstd_errors.h +107 -0
- data/vendor/zstd/programs/BUCK +44 -0
- data/vendor/zstd/programs/Makefile +445 -0
- data/vendor/zstd/programs/README.md +344 -0
- data/vendor/zstd/programs/benchfn.c +256 -0
- data/vendor/zstd/programs/benchfn.h +173 -0
- data/vendor/zstd/programs/benchzstd.c +1270 -0
- data/vendor/zstd/programs/benchzstd.h +191 -0
- data/vendor/zstd/programs/datagen.c +186 -0
- data/vendor/zstd/programs/datagen.h +38 -0
- data/vendor/zstd/programs/dibio.c +447 -0
- data/vendor/zstd/programs/dibio.h +39 -0
- data/vendor/zstd/programs/fileio.c +3717 -0
- data/vendor/zstd/programs/fileio.h +171 -0
- data/vendor/zstd/programs/fileio_asyncio.c +663 -0
- data/vendor/zstd/programs/fileio_asyncio.h +195 -0
- data/vendor/zstd/programs/fileio_common.h +121 -0
- data/vendor/zstd/programs/fileio_types.h +86 -0
- data/vendor/zstd/programs/lorem.c +285 -0
- data/vendor/zstd/programs/lorem.h +32 -0
- data/vendor/zstd/programs/platform.h +217 -0
- data/vendor/zstd/programs/timefn.c +170 -0
- data/vendor/zstd/programs/timefn.h +59 -0
- data/vendor/zstd/programs/util.c +1731 -0
- data/vendor/zstd/programs/util.h +364 -0
- data/vendor/zstd/programs/windres/verrsrc.h +17 -0
- data/vendor/zstd/programs/windres/zstd.rc +51 -0
- data/vendor/zstd/programs/windres/zstd32.res +0 -0
- data/vendor/zstd/programs/windres/zstd64.res +0 -0
- data/vendor/zstd/programs/zstd.1 +580 -0
- data/vendor/zstd/programs/zstd.1.md +714 -0
- data/vendor/zstd/programs/zstdcli.c +1675 -0
- data/vendor/zstd/programs/zstdcli_trace.c +173 -0
- data/vendor/zstd/programs/zstdcli_trace.h +24 -0
- data/vendor/zstd/programs/zstdgrep +134 -0
- data/vendor/zstd/programs/zstdgrep.1 +26 -0
- data/vendor/zstd/programs/zstdgrep.1.md +30 -0
- data/vendor/zstd/programs/zstdless +8 -0
- data/vendor/zstd/programs/zstdless.1 +14 -0
- data/vendor/zstd/programs/zstdless.1.md +16 -0
- data/vendor/zstd/tests/DEPRECATED-test-zstd-speed.py +378 -0
- data/vendor/zstd/tests/Makefile +485 -0
- data/vendor/zstd/tests/README.md +184 -0
- data/vendor/zstd/tests/automated_benchmarking.py +326 -0
- data/vendor/zstd/tests/checkTag.c +65 -0
- data/vendor/zstd/tests/check_size.py +31 -0
- data/vendor/zstd/tests/cli-tests/README.md +258 -0
- data/vendor/zstd/tests/cli-tests/basic/args.sh +10 -0
- data/vendor/zstd/tests/cli-tests/basic/args.sh.exit +1 -0
- data/vendor/zstd/tests/cli-tests/basic/args.sh.stderr.glob +28 -0
- data/vendor/zstd/tests/cli-tests/basic/help.sh +10 -0
- data/vendor/zstd/tests/cli-tests/basic/help.sh.stdout.glob +34 -0
- data/vendor/zstd/tests/cli-tests/basic/memlimit.sh +40 -0
- data/vendor/zstd/tests/cli-tests/basic/memlimit.sh.stderr.exact +13 -0
- data/vendor/zstd/tests/cli-tests/basic/memlimit.sh.stdout.exact +13 -0
- data/vendor/zstd/tests/cli-tests/basic/output_dir.sh +7 -0
- data/vendor/zstd/tests/cli-tests/basic/output_dir.sh.stderr.exact +2 -0
- data/vendor/zstd/tests/cli-tests/basic/output_dir.sh.stdout.exact +2 -0
- data/vendor/zstd/tests/cli-tests/basic/version.sh +6 -0
- data/vendor/zstd/tests/cli-tests/basic/version.sh.stdout.glob +2 -0
- data/vendor/zstd/tests/cli-tests/bin/cmp_size +44 -0
- data/vendor/zstd/tests/cli-tests/bin/datagen +3 -0
- data/vendor/zstd/tests/cli-tests/bin/die +4 -0
- data/vendor/zstd/tests/cli-tests/bin/println +2 -0
- data/vendor/zstd/tests/cli-tests/bin/unzstd +1 -0
- data/vendor/zstd/tests/cli-tests/bin/zstd +9 -0
- data/vendor/zstd/tests/cli-tests/bin/zstdcat +1 -0
- data/vendor/zstd/tests/cli-tests/bin/zstdgrep +2 -0
- data/vendor/zstd/tests/cli-tests/bin/zstdless +2 -0
- data/vendor/zstd/tests/cli-tests/cltools/setup +6 -0
- data/vendor/zstd/tests/cli-tests/cltools/zstdgrep.sh +8 -0
- data/vendor/zstd/tests/cli-tests/cltools/zstdgrep.sh.exit +1 -0
- data/vendor/zstd/tests/cli-tests/cltools/zstdgrep.sh.stderr.exact +1 -0
- data/vendor/zstd/tests/cli-tests/cltools/zstdgrep.sh.stdout.glob +4 -0
- data/vendor/zstd/tests/cli-tests/cltools/zstdless.sh +10 -0
- data/vendor/zstd/tests/cli-tests/cltools/zstdless.sh.stderr.exact +2 -0
- data/vendor/zstd/tests/cli-tests/cltools/zstdless.sh.stdout.glob +5 -0
- data/vendor/zstd/tests/cli-tests/common/format.sh +19 -0
- data/vendor/zstd/tests/cli-tests/common/mtime.sh +13 -0
- data/vendor/zstd/tests/cli-tests/common/permissions.sh +18 -0
- data/vendor/zstd/tests/cli-tests/common/platform.sh +47 -0
- data/vendor/zstd/tests/cli-tests/compression/adapt.sh +14 -0
- data/vendor/zstd/tests/cli-tests/compression/basic.sh +36 -0
- data/vendor/zstd/tests/cli-tests/compression/compress-literals.sh +10 -0
- data/vendor/zstd/tests/cli-tests/compression/format.sh +16 -0
- data/vendor/zstd/tests/cli-tests/compression/golden.sh +16 -0
- data/vendor/zstd/tests/cli-tests/compression/gzip-compat.sh +17 -0
- data/vendor/zstd/tests/cli-tests/compression/levels.sh +75 -0
- data/vendor/zstd/tests/cli-tests/compression/levels.sh.stderr.exact +80 -0
- data/vendor/zstd/tests/cli-tests/compression/long-distance-matcher.sh +7 -0
- data/vendor/zstd/tests/cli-tests/compression/multi-threaded.sh +22 -0
- data/vendor/zstd/tests/cli-tests/compression/multi-threaded.sh.stderr.exact +21 -0
- data/vendor/zstd/tests/cli-tests/compression/multiple-files.sh +21 -0
- data/vendor/zstd/tests/cli-tests/compression/multiple-files.sh.stdout.exact +12 -0
- data/vendor/zstd/tests/cli-tests/compression/row-match-finder.sh +7 -0
- data/vendor/zstd/tests/cli-tests/compression/setup +7 -0
- data/vendor/zstd/tests/cli-tests/compression/stream-size.sh +7 -0
- data/vendor/zstd/tests/cli-tests/compression/verbose-wlog.sh +11 -0
- data/vendor/zstd/tests/cli-tests/compression/verbose-wlog.sh.stderr.glob +5 -0
- data/vendor/zstd/tests/cli-tests/compression/verbose-wlog.sh.stdout.glob +5 -0
- data/vendor/zstd/tests/cli-tests/compression/window-resize.sh +9 -0
- data/vendor/zstd/tests/cli-tests/compression/window-resize.sh.stderr.ignore +0 -0
- data/vendor/zstd/tests/cli-tests/compression/window-resize.sh.stdout.glob +3 -0
- data/vendor/zstd/tests/cli-tests/decompression/detectErrors.sh +11 -0
- data/vendor/zstd/tests/cli-tests/decompression/golden.sh +7 -0
- data/vendor/zstd/tests/cli-tests/decompression/pass-through.sh +57 -0
- data/vendor/zstd/tests/cli-tests/decompression/pass-through.sh.stderr.exact +11 -0
- data/vendor/zstd/tests/cli-tests/decompression/pass-through.sh.stdout.exact +25 -0
- data/vendor/zstd/tests/cli-tests/determinism/basic.sh +36 -0
- data/vendor/zstd/tests/cli-tests/determinism/basic.sh.stderr.exact +0 -0
- data/vendor/zstd/tests/cli-tests/determinism/basic.sh.stdout.exact +880 -0
- data/vendor/zstd/tests/cli-tests/determinism/multithread.sh +45 -0
- data/vendor/zstd/tests/cli-tests/determinism/multithread.sh.stderr.exact +0 -0
- data/vendor/zstd/tests/cli-tests/determinism/multithread.sh.stdout.exact +260 -0
- data/vendor/zstd/tests/cli-tests/determinism/reuse.sh +44 -0
- data/vendor/zstd/tests/cli-tests/determinism/reuse.sh.stderr.exact +0 -0
- data/vendor/zstd/tests/cli-tests/determinism/reuse.sh.stdout.exact +19 -0
- data/vendor/zstd/tests/cli-tests/determinism/setup +5 -0
- data/vendor/zstd/tests/cli-tests/determinism/setup_once +30 -0
- data/vendor/zstd/tests/cli-tests/dict-builder/empty-input.sh +9 -0
- data/vendor/zstd/tests/cli-tests/dict-builder/empty-input.sh.stderr.exact +1 -0
- data/vendor/zstd/tests/cli-tests/dict-builder/no-inputs.sh +3 -0
- data/vendor/zstd/tests/cli-tests/dict-builder/no-inputs.sh.exit +1 -0
- data/vendor/zstd/tests/cli-tests/dict-builder/no-inputs.sh.stderr.exact +5 -0
- data/vendor/zstd/tests/cli-tests/dictionaries/dictionary-mismatch.sh +29 -0
- data/vendor/zstd/tests/cli-tests/dictionaries/dictionary-mismatch.sh.stderr.exact +7 -0
- data/vendor/zstd/tests/cli-tests/dictionaries/golden.sh +9 -0
- data/vendor/zstd/tests/cli-tests/dictionaries/setup +6 -0
- data/vendor/zstd/tests/cli-tests/dictionaries/setup_once +24 -0
- data/vendor/zstd/tests/cli-tests/file-handling/directory-mirror.sh +49 -0
- data/vendor/zstd/tests/cli-tests/file-handling/directory-mirror.sh.stderr.exact +0 -0
- data/vendor/zstd/tests/cli-tests/file-handling/directory-mirror.sh.stdout.exact +0 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-dir-without-write-perm.sh +12 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-dir-without-write-perm.sh.stderr.exact +30 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-file.sh +9 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-file.sh.stderr.glob +46 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-stdout.sh +8 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-stdout.sh.stderr.exact +24 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-stdin-to-file.sh +8 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-stdin-to-file.sh.stderr.glob +28 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-stdin-to-stdout.sh +8 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-stdin-to-stdout.sh.stderr.exact +18 -0
- data/vendor/zstd/tests/cli-tests/file-stat/decompress-file-to-file.sh +8 -0
- data/vendor/zstd/tests/cli-tests/file-stat/decompress-file-to-file.sh.stderr.glob +42 -0
- data/vendor/zstd/tests/cli-tests/file-stat/decompress-file-to-stdout.sh +7 -0
- data/vendor/zstd/tests/cli-tests/file-stat/decompress-file-to-stdout.sh.stderr.exact +18 -0
- data/vendor/zstd/tests/cli-tests/file-stat/decompress-stdin-to-file.sh +7 -0
- data/vendor/zstd/tests/cli-tests/file-stat/decompress-stdin-to-file.sh.stderr.glob +24 -0
- data/vendor/zstd/tests/cli-tests/file-stat/decompress-stdin-to-stdout.sh +7 -0
- data/vendor/zstd/tests/cli-tests/file-stat/decompress-stdin-to-stdout.sh.stderr.exact +14 -0
- data/vendor/zstd/tests/cli-tests/progress/no-progress.sh +46 -0
- data/vendor/zstd/tests/cli-tests/progress/no-progress.sh.stderr.glob +96 -0
- data/vendor/zstd/tests/cli-tests/progress/progress.sh +41 -0
- data/vendor/zstd/tests/cli-tests/progress/progress.sh.stderr.glob +62 -0
- data/vendor/zstd/tests/cli-tests/run.py +732 -0
- data/vendor/zstd/tests/cli-tests/zstd-symlinks/setup +6 -0
- data/vendor/zstd/tests/cli-tests/zstd-symlinks/zstdcat.sh +12 -0
- data/vendor/zstd/tests/cli-tests/zstd-symlinks/zstdcat.sh.stdout.exact +8 -0
- data/vendor/zstd/tests/datagencli.c +149 -0
- data/vendor/zstd/tests/decodecorpus.c +1998 -0
- data/vendor/zstd/tests/dict-files/zero-weight-dict +0 -0
- data/vendor/zstd/tests/external_matchfinder.c +140 -0
- data/vendor/zstd/tests/external_matchfinder.h +39 -0
- data/vendor/zstd/tests/fullbench.c +1210 -0
- data/vendor/zstd/tests/fuzz/Makefile +278 -0
- data/vendor/zstd/tests/fuzz/README.md +161 -0
- data/vendor/zstd/tests/fuzz/block_decompress.c +53 -0
- data/vendor/zstd/tests/fuzz/block_round_trip.c +103 -0
- data/vendor/zstd/tests/fuzz/decompress_cross_format.c +130 -0
- data/vendor/zstd/tests/fuzz/decompress_dstSize_tooSmall.c +74 -0
- data/vendor/zstd/tests/fuzz/dictionary_decompress.c +77 -0
- data/vendor/zstd/tests/fuzz/dictionary_loader.c +106 -0
- data/vendor/zstd/tests/fuzz/dictionary_round_trip.c +155 -0
- data/vendor/zstd/tests/fuzz/dictionary_stream_round_trip.c +209 -0
- data/vendor/zstd/tests/fuzz/fse_read_ncount.c +100 -0
- data/vendor/zstd/tests/fuzz/fuzz.h +57 -0
- data/vendor/zstd/tests/fuzz/fuzz.py +910 -0
- data/vendor/zstd/tests/fuzz/fuzz_data_producer.c +95 -0
- data/vendor/zstd/tests/fuzz/fuzz_data_producer.h +66 -0
- data/vendor/zstd/tests/fuzz/fuzz_helpers.c +47 -0
- data/vendor/zstd/tests/fuzz/fuzz_helpers.h +82 -0
- data/vendor/zstd/tests/fuzz/fuzz_third_party_seq_prod.h +116 -0
- data/vendor/zstd/tests/fuzz/generate_sequences.c +88 -0
- data/vendor/zstd/tests/fuzz/huf_decompress.c +68 -0
- data/vendor/zstd/tests/fuzz/huf_round_trip.c +137 -0
- data/vendor/zstd/tests/fuzz/raw_dictionary_round_trip.c +119 -0
- data/vendor/zstd/tests/fuzz/regression_driver.c +90 -0
- data/vendor/zstd/tests/fuzz/seekable_roundtrip.c +88 -0
- data/vendor/zstd/tests/fuzz/seq_prod_fuzz_example/Makefile +16 -0
- data/vendor/zstd/tests/fuzz/seq_prod_fuzz_example/README.md +12 -0
- data/vendor/zstd/tests/fuzz/seq_prod_fuzz_example/example_seq_prod.c +52 -0
- data/vendor/zstd/tests/fuzz/sequence_compression_api.c +452 -0
- data/vendor/zstd/tests/fuzz/simple_compress.c +60 -0
- data/vendor/zstd/tests/fuzz/simple_decompress.c +59 -0
- data/vendor/zstd/tests/fuzz/simple_round_trip.c +182 -0
- data/vendor/zstd/tests/fuzz/stream_decompress.c +119 -0
- data/vendor/zstd/tests/fuzz/stream_round_trip.c +218 -0
- data/vendor/zstd/tests/fuzz/zstd_frame_info.c +43 -0
- data/vendor/zstd/tests/fuzz/zstd_helpers.c +208 -0
- data/vendor/zstd/tests/fuzz/zstd_helpers.h +56 -0
- data/vendor/zstd/tests/fuzzer.c +5482 -0
- data/vendor/zstd/tests/golden-compression/PR-3517-block-splitter-corruption-test +1 -0
- data/vendor/zstd/tests/golden-compression/http +1 -0
- data/vendor/zstd/tests/golden-compression/huffman-compressed-larger +0 -0
- data/vendor/zstd/tests/golden-compression/large-literal-and-match-lengths +0 -0
- data/vendor/zstd/tests/golden-decompression/block-128k.zst +0 -0
- data/vendor/zstd/tests/golden-decompression/empty-block.zst +0 -0
- data/vendor/zstd/tests/golden-decompression/rle-first-block.zst +0 -0
- data/vendor/zstd/tests/golden-decompression/zeroSeq_2B.zst +0 -0
- data/vendor/zstd/tests/golden-decompression-errors/off0.bin.zst +0 -0
- data/vendor/zstd/tests/golden-decompression-errors/truncated_huff_state.zst +0 -0
- data/vendor/zstd/tests/golden-decompression-errors/zeroSeq_extraneous.zst +0 -0
- data/vendor/zstd/tests/golden-dictionaries/http-dict-missing-symbols +0 -0
- data/vendor/zstd/tests/gzip/Makefile +45 -0
- data/vendor/zstd/tests/gzip/gzip-env.sh +46 -0
- data/vendor/zstd/tests/gzip/helin-segv.sh +31 -0
- data/vendor/zstd/tests/gzip/help-version.sh +270 -0
- data/vendor/zstd/tests/gzip/hufts-segv.gz +0 -0
- data/vendor/zstd/tests/gzip/hufts.sh +34 -0
- data/vendor/zstd/tests/gzip/init.cfg +5 -0
- data/vendor/zstd/tests/gzip/init.sh +616 -0
- data/vendor/zstd/tests/gzip/keep.sh +51 -0
- data/vendor/zstd/tests/gzip/list.sh +31 -0
- data/vendor/zstd/tests/gzip/memcpy-abuse.sh +34 -0
- data/vendor/zstd/tests/gzip/mixed.sh +68 -0
- data/vendor/zstd/tests/gzip/null-suffix-clobber.sh +35 -0
- data/vendor/zstd/tests/gzip/stdin.sh +31 -0
- data/vendor/zstd/tests/gzip/test-driver.sh +150 -0
- data/vendor/zstd/tests/gzip/trailing-nul.sh +37 -0
- data/vendor/zstd/tests/gzip/unpack-invalid.sh +36 -0
- data/vendor/zstd/tests/gzip/z-suffix.sh +30 -0
- data/vendor/zstd/tests/gzip/zdiff.sh +48 -0
- data/vendor/zstd/tests/gzip/zgrep-context.sh +47 -0
- data/vendor/zstd/tests/gzip/zgrep-f.sh +43 -0
- data/vendor/zstd/tests/gzip/zgrep-signal.sh +64 -0
- data/vendor/zstd/tests/gzip/znew-k.sh +40 -0
- data/vendor/zstd/tests/invalidDictionaries.c +61 -0
- data/vendor/zstd/tests/largeDictionary.c +131 -0
- data/vendor/zstd/tests/legacy.c +262 -0
- data/vendor/zstd/tests/libzstd_builds.sh +104 -0
- data/vendor/zstd/tests/longmatch.c +123 -0
- data/vendor/zstd/tests/loremOut.c +50 -0
- data/vendor/zstd/tests/loremOut.h +15 -0
- data/vendor/zstd/tests/paramgrill.c +2965 -0
- data/vendor/zstd/tests/playTests.sh +1926 -0
- data/vendor/zstd/tests/poolTests.c +271 -0
- data/vendor/zstd/tests/rateLimiter.py +41 -0
- data/vendor/zstd/tests/regression/Makefile +60 -0
- data/vendor/zstd/tests/regression/README.md +28 -0
- data/vendor/zstd/tests/regression/config.c +404 -0
- data/vendor/zstd/tests/regression/config.h +91 -0
- data/vendor/zstd/tests/regression/data.c +631 -0
- data/vendor/zstd/tests/regression/data.h +121 -0
- data/vendor/zstd/tests/regression/levels.h +59 -0
- data/vendor/zstd/tests/regression/method.c +701 -0
- data/vendor/zstd/tests/regression/method.h +65 -0
- data/vendor/zstd/tests/regression/result.c +30 -0
- data/vendor/zstd/tests/regression/result.h +103 -0
- data/vendor/zstd/tests/regression/results.csv +1480 -0
- data/vendor/zstd/tests/regression/test.c +362 -0
- data/vendor/zstd/tests/roundTripCrash.c +241 -0
- data/vendor/zstd/tests/seqgen.c +260 -0
- data/vendor/zstd/tests/seqgen.h +58 -0
- data/vendor/zstd/tests/test-license.py +156 -0
- data/vendor/zstd/tests/test-variants.sh +115 -0
- data/vendor/zstd/tests/test-zstd-versions.py +308 -0
- data/vendor/zstd/tests/test_process_substitution.bash +92 -0
- data/vendor/zstd/tests/zstreamtest.c +3467 -0
- data/vendor/zstd/zlibWrapper/BUCK +22 -0
- data/vendor/zstd/zlibWrapper/Makefile +120 -0
- data/vendor/zstd/zlibWrapper/README.md +163 -0
- data/vendor/zstd/zlibWrapper/examples/example.c +598 -0
- data/vendor/zstd/zlibWrapper/examples/example_original.c +599 -0
- data/vendor/zstd/zlibWrapper/examples/fitblk.c +254 -0
- data/vendor/zstd/zlibWrapper/examples/fitblk_original.c +233 -0
- data/vendor/zstd/zlibWrapper/examples/minigzip.c +605 -0
- data/vendor/zstd/zlibWrapper/examples/zwrapbench.c +1018 -0
- data/vendor/zstd/zlibWrapper/gzclose.c +26 -0
- data/vendor/zstd/zlibWrapper/gzcompatibility.h +68 -0
- data/vendor/zstd/zlibWrapper/gzguts.h +229 -0
- data/vendor/zstd/zlibWrapper/gzlib.c +587 -0
- data/vendor/zstd/zlibWrapper/gzread.c +637 -0
- data/vendor/zstd/zlibWrapper/gzwrite.c +632 -0
- data/vendor/zstd/zlibWrapper/zstd_zlibwrapper.c +1200 -0
- data/vendor/zstd/zlibWrapper/zstd_zlibwrapper.h +91 -0
- metadata +738 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
|
|
3
|
+
# Tool to bundle multiple C/C++ source files, inlining any includes.
|
|
4
|
+
#
|
|
5
|
+
# Note: there are two types of exclusion options: the '-x' flag, which besides
|
|
6
|
+
# excluding a file also adds an #error directive in place of the #include, and
|
|
7
|
+
# the '-k' flag, which keeps the #include and doesn't inline the file. The
|
|
8
|
+
# intended use cases are: '-x' for files that would normally be #if'd out, so
|
|
9
|
+
# features that 100% won't be used in the amalgamated file, for which every
|
|
10
|
+
# occurrence adds the error, and '-k' for headers that we wish to manually
|
|
11
|
+
# include, such as a project's public API, for which occurrences after the first
|
|
12
|
+
# are removed.
|
|
13
|
+
#
|
|
14
|
+
# Todo: the error handling could be better, which currently throws and halts
|
|
15
|
+
# (which is functional just not very friendly).
|
|
16
|
+
#
|
|
17
|
+
# Author: Carl Woffenden, Numfum GmbH (this script is released under a CC0 license/Public Domain)
|
|
18
|
+
|
|
19
|
+
import argparse, re, sys
|
|
20
|
+
|
|
21
|
+
from pathlib import Path
|
|
22
|
+
from typing import Any, List, Optional, Pattern, Set, TextIO
|
|
23
|
+
|
|
24
|
+
# Set of file roots when searching (equivalent to -I paths for the compiler).
|
|
25
|
+
roots: Set[Path] = set()
|
|
26
|
+
|
|
27
|
+
# Set of (canonical) file Path objects to exclude from inlining (and not only
|
|
28
|
+
# exclude but to add a compiler error directive when they're encountered).
|
|
29
|
+
excludes: Set[Path] = set()
|
|
30
|
+
|
|
31
|
+
# Set of (canonical) file Path objects to keep as include directives.
|
|
32
|
+
keeps: Set[Path] = set()
|
|
33
|
+
|
|
34
|
+
# Whether to keep the #pragma once directives (unlikely, since this will result
|
|
35
|
+
# in a warning, but the option is there).
|
|
36
|
+
keep_pragma: bool = False
|
|
37
|
+
|
|
38
|
+
# Destination file object (or stdout if no output file was supplied).
|
|
39
|
+
destn: TextIO = sys.stdout
|
|
40
|
+
|
|
41
|
+
# Set of file Path objects previously inlined (and to ignore if reencountering).
|
|
42
|
+
found: Set[Path] = set()
|
|
43
|
+
|
|
44
|
+
# Compiled regex Pattern to handle "#pragma once" in various formats:
|
|
45
|
+
#
|
|
46
|
+
# #pragma once
|
|
47
|
+
# #pragma once
|
|
48
|
+
# # pragma once
|
|
49
|
+
# #pragma once
|
|
50
|
+
# #pragma once // comment
|
|
51
|
+
#
|
|
52
|
+
# Ignoring commented versions, same as include_regex.
|
|
53
|
+
#
|
|
54
|
+
pragma_regex: Pattern = re.compile(r'^\s*#\s*pragma\s*once\s*')
|
|
55
|
+
|
|
56
|
+
# Compiled regex Pattern to handle the following type of file includes:
|
|
57
|
+
#
|
|
58
|
+
# #include "file"
|
|
59
|
+
# #include "file"
|
|
60
|
+
# # include "file"
|
|
61
|
+
# #include "file"
|
|
62
|
+
# #include "file" // comment
|
|
63
|
+
# #include "file" // comment with quote "
|
|
64
|
+
#
|
|
65
|
+
# And all combinations of, as well as ignoring the following:
|
|
66
|
+
#
|
|
67
|
+
# #include <file>
|
|
68
|
+
# //#include "file"
|
|
69
|
+
# /*#include "file"*/
|
|
70
|
+
#
|
|
71
|
+
# We don't try to catch errors since the compiler will do this (and the code is
|
|
72
|
+
# expected to be valid before processing) and we don't care what follows the
|
|
73
|
+
# file (whether it's a valid comment or not, since anything after the quoted
|
|
74
|
+
# string is ignored)
|
|
75
|
+
#
|
|
76
|
+
include_regex: Pattern = re.compile(r'^\s*#\s*include\s*"(.+?)"')
|
|
77
|
+
|
|
78
|
+
# Simple tests to prove include_regex's cases.
|
|
79
|
+
#
|
|
80
|
+
def test_match_include() -> bool:
|
|
81
|
+
if (include_regex.match('#include "file"') and
|
|
82
|
+
include_regex.match(' #include "file"') and
|
|
83
|
+
include_regex.match('# include "file"') and
|
|
84
|
+
include_regex.match('#include "file"') and
|
|
85
|
+
include_regex.match('#include "file" // comment')):
|
|
86
|
+
if (not include_regex.match('#include <file>') and
|
|
87
|
+
not include_regex.match('//#include "file"') and
|
|
88
|
+
not include_regex.match('/*#include "file"*/')):
|
|
89
|
+
found = include_regex.match('#include "file" // "')
|
|
90
|
+
if (found and found.group(1) == 'file'):
|
|
91
|
+
print('#include match valid')
|
|
92
|
+
return True
|
|
93
|
+
return False
|
|
94
|
+
|
|
95
|
+
# Simple tests to prove pragma_regex's cases.
|
|
96
|
+
#
|
|
97
|
+
def test_match_pragma() -> bool:
|
|
98
|
+
if (pragma_regex.match('#pragma once') and
|
|
99
|
+
pragma_regex.match(' #pragma once') and
|
|
100
|
+
pragma_regex.match('# pragma once') and
|
|
101
|
+
pragma_regex.match('#pragma once') and
|
|
102
|
+
pragma_regex.match('#pragma once // comment')):
|
|
103
|
+
if (not pragma_regex.match('//#pragma once') and
|
|
104
|
+
not pragma_regex.match('/*#pragma once*/')):
|
|
105
|
+
print('#pragma once match valid')
|
|
106
|
+
return True
|
|
107
|
+
return False
|
|
108
|
+
|
|
109
|
+
# Finds 'file'. First the list of 'root' paths are searched, followed by the
|
|
110
|
+
# currently processing file's 'parent' path, returning a valid Path in
|
|
111
|
+
# canonical form. If no match is found None is returned.
|
|
112
|
+
#
|
|
113
|
+
def resolve_include(file: str, parent: Optional[Path] = None) -> Optional[Path]:
|
|
114
|
+
for root in roots:
|
|
115
|
+
found = root.joinpath(file).resolve()
|
|
116
|
+
if (found.is_file()):
|
|
117
|
+
return found
|
|
118
|
+
if (parent):
|
|
119
|
+
found = parent.joinpath(file).resolve();
|
|
120
|
+
else:
|
|
121
|
+
found = Path(file)
|
|
122
|
+
if (found.is_file()):
|
|
123
|
+
return found
|
|
124
|
+
return None
|
|
125
|
+
|
|
126
|
+
# Helper to resolve lists of files. 'file_list' is passed in from the arguments
|
|
127
|
+
# and each entry resolved to its canonical path (like any include entry, either
|
|
128
|
+
# from the list of root paths or the owning file's 'parent', which in this case
|
|
129
|
+
# is case is the input file). The results are stored in 'resolved'.
|
|
130
|
+
#
|
|
131
|
+
def resolve_excluded_files(file_list: Optional[List[str]], resolved: Set[Path], parent: Optional[Path] = None) -> None:
|
|
132
|
+
if (file_list):
|
|
133
|
+
for filename in file_list:
|
|
134
|
+
found = resolve_include(filename, parent)
|
|
135
|
+
if (found):
|
|
136
|
+
resolved.add(found)
|
|
137
|
+
else:
|
|
138
|
+
error_line(f'Warning: excluded file not found: {filename}')
|
|
139
|
+
|
|
140
|
+
# Writes 'line' to the open 'destn' (or stdout).
|
|
141
|
+
#
|
|
142
|
+
def write_line(line: str) -> None:
|
|
143
|
+
print(line, file=destn)
|
|
144
|
+
|
|
145
|
+
# Logs 'line' to stderr. This is also used for general notifications that we
|
|
146
|
+
# don't want to go to stdout (so the source can be piped).
|
|
147
|
+
#
|
|
148
|
+
def error_line(line: Any) -> None:
|
|
149
|
+
print(line, file=sys.stderr)
|
|
150
|
+
|
|
151
|
+
# Inline the contents of 'file' (with any of its includes also inlined, etc.).
|
|
152
|
+
#
|
|
153
|
+
# Note: text encoding errors are ignored and replaced with ? when reading the
|
|
154
|
+
# input files. This isn't ideal, but it's more than likely in the comments than
|
|
155
|
+
# code and a) the text editor has probably also failed to read the same content,
|
|
156
|
+
# and b) the compiler probably did too.
|
|
157
|
+
#
|
|
158
|
+
def add_file(file: Path, file_name: str = None) -> None:
|
|
159
|
+
if (file.is_file()):
|
|
160
|
+
if (not file_name):
|
|
161
|
+
file_name = file.name
|
|
162
|
+
error_line(f'Processing: {file_name}')
|
|
163
|
+
with file.open('r', errors='replace') as opened:
|
|
164
|
+
for line in opened:
|
|
165
|
+
line = line.rstrip('\n')
|
|
166
|
+
match_include = include_regex.match(line);
|
|
167
|
+
if (match_include):
|
|
168
|
+
# We have a quoted include directive so grab the file
|
|
169
|
+
inc_name = match_include.group(1)
|
|
170
|
+
resolved = resolve_include(inc_name, file.parent)
|
|
171
|
+
if (resolved):
|
|
172
|
+
if (resolved in excludes):
|
|
173
|
+
# The file was excluded so error if the compiler uses it
|
|
174
|
+
write_line(f'#error Using excluded file: {inc_name} (re-amalgamate source to fix)')
|
|
175
|
+
error_line(f'Excluding: {inc_name}')
|
|
176
|
+
else:
|
|
177
|
+
if (resolved not in found):
|
|
178
|
+
# The file was not previously encountered
|
|
179
|
+
found.add(resolved)
|
|
180
|
+
if (resolved in keeps):
|
|
181
|
+
# But the include was flagged to keep as included
|
|
182
|
+
write_line(f'/**** *NOT* inlining {inc_name} ****/')
|
|
183
|
+
write_line(line)
|
|
184
|
+
error_line(f'Not inlining: {inc_name}')
|
|
185
|
+
else:
|
|
186
|
+
# The file was neither excluded nor seen before so inline it
|
|
187
|
+
write_line(f'/**** start inlining {inc_name} ****/')
|
|
188
|
+
add_file(resolved, inc_name)
|
|
189
|
+
write_line(f'/**** ended inlining {inc_name} ****/')
|
|
190
|
+
else:
|
|
191
|
+
write_line(f'/**** skipping file: {inc_name} ****/')
|
|
192
|
+
else:
|
|
193
|
+
# The include file didn't resolve to a file
|
|
194
|
+
write_line(f'#error Unable to find: {inc_name}')
|
|
195
|
+
error_line(f'Error: Unable to find: {inc_name}')
|
|
196
|
+
else:
|
|
197
|
+
# Skip any 'pragma once' directives, otherwise write the source line
|
|
198
|
+
if (keep_pragma or not pragma_regex.match(line)):
|
|
199
|
+
write_line(line)
|
|
200
|
+
else:
|
|
201
|
+
error_line(f'Error: Invalid file: {file}')
|
|
202
|
+
|
|
203
|
+
# Start here
|
|
204
|
+
parser = argparse.ArgumentParser(description='Amalgamate Tool', epilog=f'example: {sys.argv[0]} -r ../my/path -r ../other/path -o out.c in.c')
|
|
205
|
+
parser.add_argument('-r', '--root', action='append', type=Path, help='file root search path')
|
|
206
|
+
parser.add_argument('-x', '--exclude', action='append', help='file to completely exclude from inlining')
|
|
207
|
+
parser.add_argument('-k', '--keep', action='append', help='file to exclude from inlining but keep the include directive')
|
|
208
|
+
parser.add_argument('-p', '--pragma', action='store_true', default=False, help='keep any "#pragma once" directives (removed by default)')
|
|
209
|
+
parser.add_argument('-o', '--output', type=argparse.FileType('w'), help='output file (otherwise stdout)')
|
|
210
|
+
parser.add_argument('input', type=Path, help='input file')
|
|
211
|
+
args = parser.parse_args()
|
|
212
|
+
|
|
213
|
+
# Fail early on an invalid input (and store it so we don't recurse)
|
|
214
|
+
args.input = args.input.resolve(strict=True)
|
|
215
|
+
found.add(args.input)
|
|
216
|
+
|
|
217
|
+
# Resolve all of the root paths upfront (we'll halt here on invalid roots)
|
|
218
|
+
if (args.root):
|
|
219
|
+
for path in args.root:
|
|
220
|
+
roots.add(path.resolve(strict=True))
|
|
221
|
+
|
|
222
|
+
# The remaining params: so resolve the excluded files and #pragma once directive
|
|
223
|
+
resolve_excluded_files(args.exclude, excludes, args.input.parent)
|
|
224
|
+
resolve_excluded_files(args.keep, keeps, args.input.parent)
|
|
225
|
+
keep_pragma = args.pragma;
|
|
226
|
+
|
|
227
|
+
# Then recursively process the input file
|
|
228
|
+
try:
|
|
229
|
+
if (args.output):
|
|
230
|
+
destn = args.output
|
|
231
|
+
add_file(args.input)
|
|
232
|
+
finally:
|
|
233
|
+
if (destn):
|
|
234
|
+
destn.close()
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
#!/bin/sh -e
|
|
2
|
+
|
|
3
|
+
# Tool to bundle multiple C/C++ source files, inlining any includes.
|
|
4
|
+
#
|
|
5
|
+
# TODO: ROOTS, FOUND, etc., as arrays (since they fail on paths with spaces)
|
|
6
|
+
#
|
|
7
|
+
# Author: Carl Woffenden, Numfum GmbH (this script is released under a CC0 license/Public Domain)
|
|
8
|
+
|
|
9
|
+
# Common file roots
|
|
10
|
+
ROOTS="."
|
|
11
|
+
|
|
12
|
+
# -x option excluded includes
|
|
13
|
+
XINCS=""
|
|
14
|
+
|
|
15
|
+
# -k option includes to keep as include directives
|
|
16
|
+
KINCS=""
|
|
17
|
+
|
|
18
|
+
# Files previously visited
|
|
19
|
+
FOUND=""
|
|
20
|
+
|
|
21
|
+
# Optional destination file (empty string to write to stdout)
|
|
22
|
+
DESTN=""
|
|
23
|
+
|
|
24
|
+
# Whether the "#pragma once" directives should be written to the output
|
|
25
|
+
PONCE=0
|
|
26
|
+
|
|
27
|
+
# Prints the script usage then exits
|
|
28
|
+
usage() {
|
|
29
|
+
echo "Usage: $0 [-r <path>] [-x <header>] [-k <header>] [-o <outfile>] infile"
|
|
30
|
+
echo " -r file root search path"
|
|
31
|
+
echo " -x file to completely exclude from inlining"
|
|
32
|
+
echo " -k file to exclude from inlining but keep the include directive"
|
|
33
|
+
echo " -p keep any '#pragma once' directives (removed by default)"
|
|
34
|
+
echo " -o output file (otherwise stdout)"
|
|
35
|
+
echo "Example: $0 -r ../my/path - r ../other/path -o out.c in.c"
|
|
36
|
+
exit 1
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
# Tests that the grep implementation works as expected (older OSX grep fails)
|
|
40
|
+
test_deps() {
|
|
41
|
+
if ! echo '#include "foo"' | grep -Eq '^\s*#\s*include\s*".+"'; then
|
|
42
|
+
echo "Aborting: the grep implementation fails to parse include lines"
|
|
43
|
+
exit 1
|
|
44
|
+
fi
|
|
45
|
+
if ! echo '"foo.h"' | sed -E 's/"([^"]+)"/\1/' | grep -Eq '^foo\.h$'; then
|
|
46
|
+
echo "Aborting: sed is unavailable or non-functional"
|
|
47
|
+
exit 1
|
|
48
|
+
fi
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
# Test if glob pattern $1 matches subject $2 (see fnmatch(3))
|
|
52
|
+
fnmatch() {
|
|
53
|
+
case "$2" in
|
|
54
|
+
$1)
|
|
55
|
+
return 0
|
|
56
|
+
;;
|
|
57
|
+
esac
|
|
58
|
+
return 1
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
# Test if line $1 is local include directive
|
|
62
|
+
is_include_line() {
|
|
63
|
+
fnmatch "*#*include*" "$1" || return 1
|
|
64
|
+
printf "%s\n" "$1" | grep -Eq '^\s*#\s*include\s*".+"'
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
# Test if line $1 is pragma once directive
|
|
68
|
+
is_pragma_once_line() {
|
|
69
|
+
fnmatch "*#*pragma*once*" "$1" || return 1
|
|
70
|
+
printf "%s\n" "$1" | grep -Eq '^\s*#\s*pragma\s*once\s*'
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
# Tests if list $1 has item $2 (returning zero on a match)
|
|
74
|
+
# (originally used grep -Eq "(^|\s*)$2(\$|\s*))
|
|
75
|
+
readonly list_FS="$IFS"
|
|
76
|
+
list_has_item() {
|
|
77
|
+
# Re: escaping glob pattern special characters in item string:
|
|
78
|
+
#
|
|
79
|
+
# bash (tested 3.2.57, 5.1.4), dash (tested 0.5.10.2), NetBSD /bin/sh
|
|
80
|
+
# (tested 8.2), and Solaris /bin/sh (tested 11.4) require escaping
|
|
81
|
+
# backslashes in a bracket expression despite POSIX specifying that
|
|
82
|
+
# backslash loses significance in a bracket expression.
|
|
83
|
+
#
|
|
84
|
+
# Conversely, neither FreeBSD /bin/sh (tested 12.2) nor OpenBSD /bin/sh
|
|
85
|
+
# (tested 7.1) obey backslash-escaping in case statement patterns even
|
|
86
|
+
# outside bracket expressions, so escape special characters using bracket
|
|
87
|
+
# expressions.
|
|
88
|
+
#
|
|
89
|
+
# Solaris /bin/sh (tested 11.4) requires vertical bar (|) to be escaped.
|
|
90
|
+
#
|
|
91
|
+
# All accommodations should behave as expected under strict POSIX semantics.
|
|
92
|
+
if fnmatch "*[\\*?[|]*" "$2"; then
|
|
93
|
+
set -- "$1" "$(printf '%s\n' "$2" | sed -e 's/[*?[|]/[&]/g; s/[\]/[\\&]/g')"
|
|
94
|
+
fi
|
|
95
|
+
for item_P in "*[$list_FS]$2[$list_FS]*" "*[$list_FS]$2" "$2[$list_FS]*" "$2"; do
|
|
96
|
+
fnmatch "${item_P}" "$1" && return 0
|
|
97
|
+
done
|
|
98
|
+
return 1
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
# Adds a new line with the supplied arguments to $DESTN (or stdout)
|
|
102
|
+
write_line() {
|
|
103
|
+
if [ -n "$DESTN" ]; then
|
|
104
|
+
printf '%s\n' "$@" >> "$DESTN"
|
|
105
|
+
else
|
|
106
|
+
printf '%s\n' "$@"
|
|
107
|
+
fi
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
log_line() {
|
|
111
|
+
echo $@ >&2
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
# Find this file!
|
|
115
|
+
resolve_include() {
|
|
116
|
+
local srcdir=$1
|
|
117
|
+
local inc=$2
|
|
118
|
+
for root in $srcdir $ROOTS; do
|
|
119
|
+
if [ -f "$root/$inc" ]; then
|
|
120
|
+
# Try to reduce the file path into a canonical form (so that multiple)
|
|
121
|
+
# includes of the same file are successfully deduplicated, even if they
|
|
122
|
+
# are expressed differently.
|
|
123
|
+
local relpath="$(realpath --relative-to . "$root/$inc" 2>/dev/null)"
|
|
124
|
+
if [ "$relpath" != "" ]; then # not all realpaths support --relative-to
|
|
125
|
+
echo "$relpath"
|
|
126
|
+
return 0
|
|
127
|
+
fi
|
|
128
|
+
local relpath="$(realpath "$root/$inc" 2>/dev/null)"
|
|
129
|
+
if [ "$relpath" != "" ]; then # not all distros have realpath...
|
|
130
|
+
echo "$relpath"
|
|
131
|
+
return 0
|
|
132
|
+
fi
|
|
133
|
+
# Fallback on Python to reduce the path if the above fails.
|
|
134
|
+
local relpath=$(python -c "import os,sys; print os.path.relpath(sys.argv[1])" "$root/$inc" 2>/dev/null)
|
|
135
|
+
if [ "$relpath" != "" ]; then # not all distros have realpath...
|
|
136
|
+
echo "$relpath"
|
|
137
|
+
return 0
|
|
138
|
+
fi
|
|
139
|
+
# Worst case, fall back to just the root + relative include path. The
|
|
140
|
+
# problem with this is that it is possible to emit multiple different
|
|
141
|
+
# resolved paths to the same file, depending on exactly how its included.
|
|
142
|
+
# Since the main loop below keeps a list of the resolved paths it's
|
|
143
|
+
# already included, in order to avoid repeated includes, this failure to
|
|
144
|
+
# produce a canonical/reduced path can lead to multiple inclusions of the
|
|
145
|
+
# same file. But it seems like the resulting single file library still
|
|
146
|
+
# works (hurray include guards!), so I guess it's ok.
|
|
147
|
+
echo "$root/$inc"
|
|
148
|
+
return 0
|
|
149
|
+
fi
|
|
150
|
+
done
|
|
151
|
+
return 1
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
# Adds the contents of $1 with any of its includes inlined
|
|
155
|
+
add_file() {
|
|
156
|
+
local file=$1
|
|
157
|
+
if [ -n "$file" ]; then
|
|
158
|
+
log_line "Processing: $file"
|
|
159
|
+
# Get directory of the current so we can resolve relative includes
|
|
160
|
+
local srcdir="$(dirname "$file")"
|
|
161
|
+
# Read the file
|
|
162
|
+
local line=
|
|
163
|
+
while IFS= read -r line; do
|
|
164
|
+
if is_include_line "$line"; then
|
|
165
|
+
# We have an include directive so strip the (first) file
|
|
166
|
+
local inc=$(echo "$line" | grep -Eo '".*"' | sed -E 's/"([^"]+)"/\1/' | head -1)
|
|
167
|
+
local res_inc="$(resolve_include "$srcdir" "$inc")"
|
|
168
|
+
if list_has_item "$XINCS" "$inc"; then
|
|
169
|
+
# The file was excluded so error if the source attempts to use it
|
|
170
|
+
write_line "#error Using excluded file: $inc (re-amalgamate source to fix)"
|
|
171
|
+
log_line "Excluding: $inc"
|
|
172
|
+
else
|
|
173
|
+
if ! list_has_item "$FOUND" "$res_inc"; then
|
|
174
|
+
# The file was not previously encountered
|
|
175
|
+
FOUND="$FOUND $res_inc"
|
|
176
|
+
if list_has_item "$KINCS" "$inc"; then
|
|
177
|
+
# But the include was flagged to keep as included
|
|
178
|
+
write_line "/**** *NOT* inlining $inc ****/"
|
|
179
|
+
write_line "$line"
|
|
180
|
+
log_line "Not Inlining: $inc"
|
|
181
|
+
else
|
|
182
|
+
# The file was neither excluded nor seen before so inline it
|
|
183
|
+
write_line "/**** start inlining $inc ****/"
|
|
184
|
+
add_file "$res_inc"
|
|
185
|
+
write_line "/**** ended inlining $inc ****/"
|
|
186
|
+
fi
|
|
187
|
+
else
|
|
188
|
+
write_line "/**** skipping file: $inc ****/"
|
|
189
|
+
fi
|
|
190
|
+
fi
|
|
191
|
+
else
|
|
192
|
+
# Skip any 'pragma once' directives, otherwise write the source line
|
|
193
|
+
local write=$PONCE
|
|
194
|
+
if [ $write -eq 0 ]; then
|
|
195
|
+
if ! is_pragma_once_line "$line"; then
|
|
196
|
+
write=1
|
|
197
|
+
fi
|
|
198
|
+
fi
|
|
199
|
+
if [ $write -ne 0 ]; then
|
|
200
|
+
write_line "$line"
|
|
201
|
+
fi
|
|
202
|
+
fi
|
|
203
|
+
done < "$file"
|
|
204
|
+
else
|
|
205
|
+
write_line "#error Unable to find \"$1\""
|
|
206
|
+
log_line "Error: Unable to find: \"$1\""
|
|
207
|
+
fi
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
while getopts ":r:x:k:po:" opts; do
|
|
211
|
+
case $opts in
|
|
212
|
+
r)
|
|
213
|
+
ROOTS="$ROOTS $OPTARG"
|
|
214
|
+
;;
|
|
215
|
+
x)
|
|
216
|
+
XINCS="$XINCS $OPTARG"
|
|
217
|
+
;;
|
|
218
|
+
k)
|
|
219
|
+
KINCS="$KINCS $OPTARG"
|
|
220
|
+
;;
|
|
221
|
+
p)
|
|
222
|
+
PONCE=1
|
|
223
|
+
;;
|
|
224
|
+
o)
|
|
225
|
+
DESTN="$OPTARG"
|
|
226
|
+
;;
|
|
227
|
+
*)
|
|
228
|
+
usage
|
|
229
|
+
;;
|
|
230
|
+
esac
|
|
231
|
+
done
|
|
232
|
+
shift $((OPTIND-1))
|
|
233
|
+
|
|
234
|
+
if [ -n "$1" ]; then
|
|
235
|
+
if [ -f "$1" ]; then
|
|
236
|
+
if [ -n "$DESTN" ]; then
|
|
237
|
+
printf "" > "$DESTN"
|
|
238
|
+
fi
|
|
239
|
+
test_deps
|
|
240
|
+
log_line "Processing using the slower shell script; this might take a while"
|
|
241
|
+
add_file "$1"
|
|
242
|
+
else
|
|
243
|
+
echo "Input file not found: \"$1\""
|
|
244
|
+
exit 1
|
|
245
|
+
fi
|
|
246
|
+
else
|
|
247
|
+
usage
|
|
248
|
+
fi
|
|
249
|
+
exit 0
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
# Where to find the sources
|
|
4
|
+
ZSTD_SRC_ROOT="../../lib"
|
|
5
|
+
|
|
6
|
+
# Amalgamate the sources
|
|
7
|
+
echo "Amalgamating files..."
|
|
8
|
+
# Using the faster Python script if we have 3.8 or higher
|
|
9
|
+
if python3 -c 'import sys; assert sys.version_info >= (3,8)' 2>/dev/null; then
|
|
10
|
+
./combine.py -r "$ZSTD_SRC_ROOT" -x legacy/zstd_legacy.h -o zstddeclib.c zstddeclib-in.c
|
|
11
|
+
else
|
|
12
|
+
./combine.sh -r "$ZSTD_SRC_ROOT" -x legacy/zstd_legacy.h -o zstddeclib.c zstddeclib-in.c
|
|
13
|
+
fi
|
|
14
|
+
# Did combining work?
|
|
15
|
+
if [ $? -ne 0 ]; then
|
|
16
|
+
echo "Combine script: FAILED"
|
|
17
|
+
exit 1
|
|
18
|
+
fi
|
|
19
|
+
echo "Combine script: PASSED"
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
# Where to find the sources
|
|
4
|
+
ZSTD_SRC_ROOT="../../lib"
|
|
5
|
+
|
|
6
|
+
# Amalgamate the sources
|
|
7
|
+
echo "Amalgamating files..."
|
|
8
|
+
# Using the faster Python script if we have 3.8 or higher
|
|
9
|
+
if python3 -c 'import sys; assert sys.version_info >= (3,8)' 2>/dev/null; then
|
|
10
|
+
./combine.py -r "$ZSTD_SRC_ROOT" -x legacy/zstd_legacy.h -o zstd.c zstd-in.c
|
|
11
|
+
else
|
|
12
|
+
./combine.sh -r "$ZSTD_SRC_ROOT" -x legacy/zstd_legacy.h -o zstd.c zstd-in.c
|
|
13
|
+
fi
|
|
14
|
+
# Did combining work?
|
|
15
|
+
if [ $? -ne 0 ]; then
|
|
16
|
+
echo "Combine script: FAILED"
|
|
17
|
+
exit 1
|
|
18
|
+
fi
|
|
19
|
+
echo "Combine script: PASSED"
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Single File ZStandard Examples
|
|
2
|
+
|
|
3
|
+
The examples `#include` the generated `zstddeclib.c` directly but work equally as well when including `zstd.h` and compiling the amalgamated source separately.
|
|
4
|
+
|
|
5
|
+
`simple.c` is the most basic example of decompressing content and verifying the result.
|
|
6
|
+
|
|
7
|
+
`emscripten.c` is a bare-bones [Emscripten](https://github.com/emscripten-core/emscripten) compiled WebGL demo using Zstd to further compress a DXT1 texture (see the [original PNG image](testcard.png)). The 256x256 texture would normally be 32kB, but even when bundled with the Zstd decompressor the resulting WebAssembly weighs in at 41kB (`shell.html` is a support file to run the Wasm).
|
|
8
|
+
|
|
9
|
+
`roundtrip.c` is an example to use with the optional [amalgamated library](../create_single_file_library.sh) showing compression the decompression.
|
|
10
|
+
|
|
11
|
+
The example files in this directory are released under a [Creative Commons Zero license](https://creativecommons.org/publicdomain/zero/1.0/) (or Public Domain, whichever is applicable in your jurisdiction).
|