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.
Files changed (651) hide show
  1. checksums.yaml +7 -0
  2. data/CLAUDE.md +101 -0
  3. data/LICENSE +19 -0
  4. data/README.md +47 -0
  5. data/ext/zstd_ruby/extconf.rb +35 -0
  6. data/ext/zstd_ruby/zstd_ruby.c +221 -0
  7. data/lib/zstd_ruby.rb +68 -0
  8. data/vendor/zstd/CHANGELOG +863 -0
  9. data/vendor/zstd/CMakeLists.txt +11 -0
  10. data/vendor/zstd/CODE_OF_CONDUCT.md +5 -0
  11. data/vendor/zstd/CONTRIBUTING.md +494 -0
  12. data/vendor/zstd/COPYING +339 -0
  13. data/vendor/zstd/LICENSE +30 -0
  14. data/vendor/zstd/Makefile +470 -0
  15. data/vendor/zstd/Package.swift +36 -0
  16. data/vendor/zstd/README.md +244 -0
  17. data/vendor/zstd/SECURITY.md +15 -0
  18. data/vendor/zstd/TESTING.md +43 -0
  19. data/vendor/zstd/build/LICENSE +0 -0
  20. data/vendor/zstd/build/README.md +56 -0
  21. data/vendor/zstd/build/VS2008/fullbench/fullbench.vcproj +549 -0
  22. data/vendor/zstd/build/VS2008/fuzzer/fuzzer.vcproj +585 -0
  23. data/vendor/zstd/build/VS2008/zstd/zstd.vcproj +677 -0
  24. data/vendor/zstd/build/VS2008/zstd.sln +56 -0
  25. data/vendor/zstd/build/VS2008/zstdlib/zstdlib.vcproj +635 -0
  26. data/vendor/zstd/build/VS2010/CompileAsCpp.props +8 -0
  27. data/vendor/zstd/build/VS2010/datagen/datagen.vcxproj +170 -0
  28. data/vendor/zstd/build/VS2010/fullbench/fullbench.vcxproj +220 -0
  29. data/vendor/zstd/build/VS2010/fuzzer/fuzzer.vcxproj +224 -0
  30. data/vendor/zstd/build/VS2010/libzstd/libzstd.vcxproj +243 -0
  31. data/vendor/zstd/build/VS2010/libzstd-dll/libzstd-dll.rc +51 -0
  32. data/vendor/zstd/build/VS2010/libzstd-dll/libzstd-dll.vcxproj +250 -0
  33. data/vendor/zstd/build/VS2010/zstd/zstd.rc +51 -0
  34. data/vendor/zstd/build/VS2010/zstd/zstd.vcxproj +266 -0
  35. data/vendor/zstd/build/VS2010/zstd.sln +84 -0
  36. data/vendor/zstd/build/VS_scripts/README.md +64 -0
  37. data/vendor/zstd/build/VS_scripts/build.VS2010.cmd +7 -0
  38. data/vendor/zstd/build/VS_scripts/build.VS2012.cmd +6 -0
  39. data/vendor/zstd/build/VS_scripts/build.VS2013.cmd +7 -0
  40. data/vendor/zstd/build/VS_scripts/build.VS2015.cmd +7 -0
  41. data/vendor/zstd/build/VS_scripts/build.VS2017.cmd +7 -0
  42. data/vendor/zstd/build/VS_scripts/build.VS2017Community.cmd +7 -0
  43. data/vendor/zstd/build/VS_scripts/build.VS2017Enterprise.cmd +7 -0
  44. data/vendor/zstd/build/VS_scripts/build.VS2017Professional.cmd +7 -0
  45. data/vendor/zstd/build/VS_scripts/build.VSPreview.cmd +7 -0
  46. data/vendor/zstd/build/VS_scripts/build.generic.cmd +67 -0
  47. data/vendor/zstd/build/cmake/CMakeLists.txt +81 -0
  48. data/vendor/zstd/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake +138 -0
  49. data/vendor/zstd/build/cmake/CMakeModules/FindLibLZ4.cmake +49 -0
  50. data/vendor/zstd/build/cmake/CMakeModules/GetZstdLibraryVersion.cmake +10 -0
  51. data/vendor/zstd/build/cmake/CMakeModules/JoinPaths.cmake +23 -0
  52. data/vendor/zstd/build/cmake/CMakeModules/ZstdBuild.cmake +42 -0
  53. data/vendor/zstd/build/cmake/CMakeModules/ZstdDependencies.cmake +30 -0
  54. data/vendor/zstd/build/cmake/CMakeModules/ZstdOptions.cmake +68 -0
  55. data/vendor/zstd/build/cmake/CMakeModules/ZstdPackage.cmake +42 -0
  56. data/vendor/zstd/build/cmake/CMakeModules/ZstdVersion.cmake +31 -0
  57. data/vendor/zstd/build/cmake/README.md +155 -0
  58. data/vendor/zstd/build/cmake/contrib/CMakeLists.txt +13 -0
  59. data/vendor/zstd/build/cmake/contrib/gen_html/CMakeLists.txt +30 -0
  60. data/vendor/zstd/build/cmake/contrib/pzstd/CMakeLists.txt +39 -0
  61. data/vendor/zstd/build/cmake/lib/CMakeLists.txt +298 -0
  62. data/vendor/zstd/build/cmake/lib/cmake_uninstall.cmake.in +22 -0
  63. data/vendor/zstd/build/cmake/programs/CMakeLists.txt +144 -0
  64. data/vendor/zstd/build/cmake/tests/CMakeLists.txt +118 -0
  65. data/vendor/zstd/build/cmake/zstdConfig.cmake.in +10 -0
  66. data/vendor/zstd/build/meson/GetZstdLibraryVersion.py +39 -0
  67. data/vendor/zstd/build/meson/InstallSymlink.py +55 -0
  68. data/vendor/zstd/build/meson/README.md +38 -0
  69. data/vendor/zstd/build/meson/contrib/gen_html/meson.build +30 -0
  70. data/vendor/zstd/build/meson/contrib/meson.build +12 -0
  71. data/vendor/zstd/build/meson/contrib/pzstd/meson.build +25 -0
  72. data/vendor/zstd/build/meson/lib/meson.build +175 -0
  73. data/vendor/zstd/build/meson/meson.build +155 -0
  74. data/vendor/zstd/build/meson/meson_options.txt +36 -0
  75. data/vendor/zstd/build/meson/programs/meson.build +124 -0
  76. data/vendor/zstd/build/meson/tests/meson.build +217 -0
  77. data/vendor/zstd/build/meson/tests/valgrindTest.py +90 -0
  78. data/vendor/zstd/build/single_file_libs/README.md +33 -0
  79. data/vendor/zstd/build/single_file_libs/build_decoder_test.sh +91 -0
  80. data/vendor/zstd/build/single_file_libs/build_library_test.sh +98 -0
  81. data/vendor/zstd/build/single_file_libs/combine.py +234 -0
  82. data/vendor/zstd/build/single_file_libs/combine.sh +249 -0
  83. data/vendor/zstd/build/single_file_libs/create_single_file_decoder.sh +19 -0
  84. data/vendor/zstd/build/single_file_libs/create_single_file_library.sh +19 -0
  85. data/vendor/zstd/build/single_file_libs/examples/README.md +11 -0
  86. data/vendor/zstd/build/single_file_libs/examples/emscripten.c +340 -0
  87. data/vendor/zstd/build/single_file_libs/examples/roundtrip.c +83 -0
  88. data/vendor/zstd/build/single_file_libs/examples/shell.html +31 -0
  89. data/vendor/zstd/build/single_file_libs/examples/simple.c +75 -0
  90. data/vendor/zstd/build/single_file_libs/examples/testcard-dxt1.inl +2731 -0
  91. data/vendor/zstd/build/single_file_libs/examples/testcard-zstd.inl +261 -0
  92. data/vendor/zstd/build/single_file_libs/examples/testcard.png +0 -0
  93. data/vendor/zstd/build/single_file_libs/zstd-in.c +91 -0
  94. data/vendor/zstd/build/single_file_libs/zstddeclib-in.c +62 -0
  95. data/vendor/zstd/contrib/VS2005/README.md +3 -0
  96. data/vendor/zstd/contrib/VS2005/fullbench/fullbench.vcproj +440 -0
  97. data/vendor/zstd/contrib/VS2005/fuzzer/fuzzer.vcproj +488 -0
  98. data/vendor/zstd/contrib/VS2005/zstd/zstd.vcproj +552 -0
  99. data/vendor/zstd/contrib/VS2005/zstd.sln +55 -0
  100. data/vendor/zstd/contrib/VS2005/zstdlib/zstdlib.vcproj +546 -0
  101. data/vendor/zstd/contrib/cleanTabs +2 -0
  102. data/vendor/zstd/contrib/diagnose_corruption/Makefile +35 -0
  103. data/vendor/zstd/contrib/diagnose_corruption/check_flipped_bits.c +400 -0
  104. data/vendor/zstd/contrib/docker/Dockerfile +20 -0
  105. data/vendor/zstd/contrib/docker/README.md +20 -0
  106. data/vendor/zstd/contrib/externalSequenceProducer/Makefile +40 -0
  107. data/vendor/zstd/contrib/externalSequenceProducer/README.md +14 -0
  108. data/vendor/zstd/contrib/externalSequenceProducer/main.c +108 -0
  109. data/vendor/zstd/contrib/externalSequenceProducer/sequence_producer.c +80 -0
  110. data/vendor/zstd/contrib/externalSequenceProducer/sequence_producer.h +26 -0
  111. data/vendor/zstd/contrib/freestanding_lib/freestanding.py +774 -0
  112. data/vendor/zstd/contrib/gen_html/Makefile +51 -0
  113. data/vendor/zstd/contrib/gen_html/README.md +31 -0
  114. data/vendor/zstd/contrib/gen_html/gen-zstd-manual.sh +9 -0
  115. data/vendor/zstd/contrib/gen_html/gen_html.cpp +225 -0
  116. data/vendor/zstd/contrib/largeNbDicts/Makefile +58 -0
  117. data/vendor/zstd/contrib/largeNbDicts/README.md +33 -0
  118. data/vendor/zstd/contrib/largeNbDicts/largeNbDicts.c +1087 -0
  119. data/vendor/zstd/contrib/linux-kernel/Makefile +108 -0
  120. data/vendor/zstd/contrib/linux-kernel/README.md +14 -0
  121. data/vendor/zstd/contrib/linux-kernel/btrfs-benchmark.sh +104 -0
  122. data/vendor/zstd/contrib/linux-kernel/btrfs-extract-benchmark.sh +99 -0
  123. data/vendor/zstd/contrib/linux-kernel/decompress_sources.h +34 -0
  124. data/vendor/zstd/contrib/linux-kernel/linux.mk +44 -0
  125. data/vendor/zstd/contrib/linux-kernel/linux_zstd.h +691 -0
  126. data/vendor/zstd/contrib/linux-kernel/mem.h +262 -0
  127. data/vendor/zstd/contrib/linux-kernel/squashfs-benchmark.sh +39 -0
  128. data/vendor/zstd/contrib/linux-kernel/test/Makefile +49 -0
  129. data/vendor/zstd/contrib/linux-kernel/test/include/linux/compiler.h +23 -0
  130. data/vendor/zstd/contrib/linux-kernel/test/include/linux/errno.h +15 -0
  131. data/vendor/zstd/contrib/linux-kernel/test/include/linux/kernel.h +19 -0
  132. data/vendor/zstd/contrib/linux-kernel/test/include/linux/limits.h +15 -0
  133. data/vendor/zstd/contrib/linux-kernel/test/include/linux/math64.h +15 -0
  134. data/vendor/zstd/contrib/linux-kernel/test/include/linux/module.h +20 -0
  135. data/vendor/zstd/contrib/linux-kernel/test/include/linux/printk.h +15 -0
  136. data/vendor/zstd/contrib/linux-kernel/test/include/linux/stddef.h +15 -0
  137. data/vendor/zstd/contrib/linux-kernel/test/include/linux/swab.h +16 -0
  138. data/vendor/zstd/contrib/linux-kernel/test/include/linux/types.h +16 -0
  139. data/vendor/zstd/contrib/linux-kernel/test/include/linux/unaligned.h +187 -0
  140. data/vendor/zstd/contrib/linux-kernel/test/include/linux/xxhash.h +745 -0
  141. data/vendor/zstd/contrib/linux-kernel/test/macro-test.sh +44 -0
  142. data/vendor/zstd/contrib/linux-kernel/test/static_test.c +52 -0
  143. data/vendor/zstd/contrib/linux-kernel/test/test.c +229 -0
  144. data/vendor/zstd/contrib/linux-kernel/zstd_common_module.c +29 -0
  145. data/vendor/zstd/contrib/linux-kernel/zstd_compress_module.c +286 -0
  146. data/vendor/zstd/contrib/linux-kernel/zstd_decompress_module.c +141 -0
  147. data/vendor/zstd/contrib/linux-kernel/zstd_deps.h +121 -0
  148. data/vendor/zstd/contrib/match_finders/README.md +42 -0
  149. data/vendor/zstd/contrib/match_finders/zstd_edist.c +558 -0
  150. data/vendor/zstd/contrib/match_finders/zstd_edist.h +70 -0
  151. data/vendor/zstd/contrib/premake/premake4.lua +6 -0
  152. data/vendor/zstd/contrib/premake/zstd.lua +81 -0
  153. data/vendor/zstd/contrib/pzstd/BUCK +72 -0
  154. data/vendor/zstd/contrib/pzstd/ErrorHolder.h +54 -0
  155. data/vendor/zstd/contrib/pzstd/Logging.h +73 -0
  156. data/vendor/zstd/contrib/pzstd/Makefile +265 -0
  157. data/vendor/zstd/contrib/pzstd/Options.cpp +424 -0
  158. data/vendor/zstd/contrib/pzstd/Options.h +71 -0
  159. data/vendor/zstd/contrib/pzstd/Pzstd.cpp +626 -0
  160. data/vendor/zstd/contrib/pzstd/Pzstd.h +153 -0
  161. data/vendor/zstd/contrib/pzstd/README.md +56 -0
  162. data/vendor/zstd/contrib/pzstd/SkippableFrame.cpp +30 -0
  163. data/vendor/zstd/contrib/pzstd/SkippableFrame.h +64 -0
  164. data/vendor/zstd/contrib/pzstd/images/Cspeed.png +0 -0
  165. data/vendor/zstd/contrib/pzstd/images/Dspeed.png +0 -0
  166. data/vendor/zstd/contrib/pzstd/main.cpp +27 -0
  167. data/vendor/zstd/contrib/pzstd/test/BUCK +37 -0
  168. data/vendor/zstd/contrib/pzstd/test/OptionsTest.cpp +536 -0
  169. data/vendor/zstd/contrib/pzstd/test/PzstdTest.cpp +147 -0
  170. data/vendor/zstd/contrib/pzstd/test/RoundTrip.h +86 -0
  171. data/vendor/zstd/contrib/pzstd/test/RoundTripTest.cpp +84 -0
  172. data/vendor/zstd/contrib/pzstd/utils/BUCK +75 -0
  173. data/vendor/zstd/contrib/pzstd/utils/Buffer.h +99 -0
  174. data/vendor/zstd/contrib/pzstd/utils/FileSystem.h +96 -0
  175. data/vendor/zstd/contrib/pzstd/utils/Likely.h +28 -0
  176. data/vendor/zstd/contrib/pzstd/utils/Portability.h +16 -0
  177. data/vendor/zstd/contrib/pzstd/utils/Range.h +133 -0
  178. data/vendor/zstd/contrib/pzstd/utils/ResourcePool.h +96 -0
  179. data/vendor/zstd/contrib/pzstd/utils/ScopeGuard.h +50 -0
  180. data/vendor/zstd/contrib/pzstd/utils/ThreadPool.h +58 -0
  181. data/vendor/zstd/contrib/pzstd/utils/WorkQueue.h +182 -0
  182. data/vendor/zstd/contrib/pzstd/utils/test/BUCK +35 -0
  183. data/vendor/zstd/contrib/pzstd/utils/test/BufferTest.cpp +89 -0
  184. data/vendor/zstd/contrib/pzstd/utils/test/RangeTest.cpp +82 -0
  185. data/vendor/zstd/contrib/pzstd/utils/test/ResourcePoolTest.cpp +72 -0
  186. data/vendor/zstd/contrib/pzstd/utils/test/ScopeGuardTest.cpp +28 -0
  187. data/vendor/zstd/contrib/pzstd/utils/test/ThreadPoolTest.cpp +71 -0
  188. data/vendor/zstd/contrib/pzstd/utils/test/WorkQueueTest.cpp +282 -0
  189. data/vendor/zstd/contrib/recovery/Makefile +35 -0
  190. data/vendor/zstd/contrib/recovery/recover_directory.c +152 -0
  191. data/vendor/zstd/contrib/seekable_format/README.md +42 -0
  192. data/vendor/zstd/contrib/seekable_format/examples/Makefile +55 -0
  193. data/vendor/zstd/contrib/seekable_format/examples/parallel_compression.c +254 -0
  194. data/vendor/zstd/contrib/seekable_format/examples/parallel_processing.c +191 -0
  195. data/vendor/zstd/contrib/seekable_format/examples/seekable_compression.c +136 -0
  196. data/vendor/zstd/contrib/seekable_format/examples/seekable_decompression.c +141 -0
  197. data/vendor/zstd/contrib/seekable_format/examples/seekable_decompression_mem.c +147 -0
  198. data/vendor/zstd/contrib/seekable_format/tests/Makefile +58 -0
  199. data/vendor/zstd/contrib/seekable_format/tests/seekable_tests.c +375 -0
  200. data/vendor/zstd/contrib/seekable_format/zstd_seekable.h +226 -0
  201. data/vendor/zstd/contrib/seekable_format/zstd_seekable_compression_format.md +116 -0
  202. data/vendor/zstd/contrib/seekable_format/zstdseek_compress.c +365 -0
  203. data/vendor/zstd/contrib/seekable_format/zstdseek_decompress.c +600 -0
  204. data/vendor/zstd/contrib/seqBench/Makefile +58 -0
  205. data/vendor/zstd/contrib/seqBench/seqBench.c +53 -0
  206. data/vendor/zstd/contrib/snap/snapcraft.yaml +28 -0
  207. data/vendor/zstd/doc/README.md +26 -0
  208. data/vendor/zstd/doc/decompressor_errata.md +148 -0
  209. data/vendor/zstd/doc/decompressor_permissive.md +80 -0
  210. data/vendor/zstd/doc/educational_decoder/Makefile +62 -0
  211. data/vendor/zstd/doc/educational_decoder/README.md +36 -0
  212. data/vendor/zstd/doc/educational_decoder/harness.c +119 -0
  213. data/vendor/zstd/doc/educational_decoder/zstd_decompress.c +2323 -0
  214. data/vendor/zstd/doc/educational_decoder/zstd_decompress.h +61 -0
  215. data/vendor/zstd/doc/images/CSpeed2.png +0 -0
  216. data/vendor/zstd/doc/images/DCspeed5.png +0 -0
  217. data/vendor/zstd/doc/images/DSpeed3.png +0 -0
  218. data/vendor/zstd/doc/images/cdict_v136.png +0 -0
  219. data/vendor/zstd/doc/images/dict-cr.png +0 -0
  220. data/vendor/zstd/doc/images/dict-cs.png +0 -0
  221. data/vendor/zstd/doc/images/dict-ds.png +0 -0
  222. data/vendor/zstd/doc/images/zstd_cdict_v1_3_5.png +0 -0
  223. data/vendor/zstd/doc/images/zstd_logo86.png +0 -0
  224. data/vendor/zstd/doc/zstd_compression_format.md +1772 -0
  225. data/vendor/zstd/doc/zstd_manual.html +2244 -0
  226. data/vendor/zstd/examples/Makefile +93 -0
  227. data/vendor/zstd/examples/README.md +46 -0
  228. data/vendor/zstd/examples/common.h +246 -0
  229. data/vendor/zstd/examples/dictionary_compression.c +107 -0
  230. data/vendor/zstd/examples/dictionary_decompression.c +99 -0
  231. data/vendor/zstd/examples/multiple_simple_compression.c +116 -0
  232. data/vendor/zstd/examples/multiple_streaming_compression.c +133 -0
  233. data/vendor/zstd/examples/simple_compression.c +68 -0
  234. data/vendor/zstd/examples/simple_decompression.c +65 -0
  235. data/vendor/zstd/examples/streaming_compression.c +146 -0
  236. data/vendor/zstd/examples/streaming_compression_thread_pool.c +180 -0
  237. data/vendor/zstd/examples/streaming_decompression.c +100 -0
  238. data/vendor/zstd/examples/streaming_memory_usage.c +137 -0
  239. data/vendor/zstd/lib/BUCK +232 -0
  240. data/vendor/zstd/lib/Makefile +389 -0
  241. data/vendor/zstd/lib/README.md +267 -0
  242. data/vendor/zstd/lib/common/allocations.h +55 -0
  243. data/vendor/zstd/lib/common/bits.h +205 -0
  244. data/vendor/zstd/lib/common/bitstream.h +454 -0
  245. data/vendor/zstd/lib/common/compiler.h +482 -0
  246. data/vendor/zstd/lib/common/cpu.h +249 -0
  247. data/vendor/zstd/lib/common/debug.c +30 -0
  248. data/vendor/zstd/lib/common/debug.h +107 -0
  249. data/vendor/zstd/lib/common/debug.o +0 -0
  250. data/vendor/zstd/lib/common/entropy_common.c +340 -0
  251. data/vendor/zstd/lib/common/entropy_common.o +0 -0
  252. data/vendor/zstd/lib/common/error_private.c +64 -0
  253. data/vendor/zstd/lib/common/error_private.h +158 -0
  254. data/vendor/zstd/lib/common/error_private.o +0 -0
  255. data/vendor/zstd/lib/common/fse.h +625 -0
  256. data/vendor/zstd/lib/common/fse_decompress.c +315 -0
  257. data/vendor/zstd/lib/common/fse_decompress.o +0 -0
  258. data/vendor/zstd/lib/common/huf.h +277 -0
  259. data/vendor/zstd/lib/common/mem.h +422 -0
  260. data/vendor/zstd/lib/common/pool.c +371 -0
  261. data/vendor/zstd/lib/common/pool.h +81 -0
  262. data/vendor/zstd/lib/common/pool.o +0 -0
  263. data/vendor/zstd/lib/common/portability_macros.h +190 -0
  264. data/vendor/zstd/lib/common/threading.c +196 -0
  265. data/vendor/zstd/lib/common/threading.h +142 -0
  266. data/vendor/zstd/lib/common/threading.o +0 -0
  267. data/vendor/zstd/lib/common/xxhash.c +18 -0
  268. data/vendor/zstd/lib/common/xxhash.h +7094 -0
  269. data/vendor/zstd/lib/common/xxhash.o +0 -0
  270. data/vendor/zstd/lib/common/zstd_common.c +57 -0
  271. data/vendor/zstd/lib/common/zstd_common.o +0 -0
  272. data/vendor/zstd/lib/common/zstd_deps.h +123 -0
  273. data/vendor/zstd/lib/common/zstd_internal.h +326 -0
  274. data/vendor/zstd/lib/common/zstd_trace.h +156 -0
  275. data/vendor/zstd/lib/compress/clevels.h +134 -0
  276. data/vendor/zstd/lib/compress/fse_compress.c +625 -0
  277. data/vendor/zstd/lib/compress/fse_compress.o +0 -0
  278. data/vendor/zstd/lib/compress/hist.c +446 -0
  279. data/vendor/zstd/lib/compress/hist.h +86 -0
  280. data/vendor/zstd/lib/compress/hist.o +0 -0
  281. data/vendor/zstd/lib/compress/huf_compress.c +1465 -0
  282. data/vendor/zstd/lib/compress/huf_compress.o +0 -0
  283. data/vendor/zstd/lib/compress/zstd_compress.c +8362 -0
  284. data/vendor/zstd/lib/compress/zstd_compress.o +0 -0
  285. data/vendor/zstd/lib/compress/zstd_compress_internal.h +1636 -0
  286. data/vendor/zstd/lib/compress/zstd_compress_literals.c +235 -0
  287. data/vendor/zstd/lib/compress/zstd_compress_literals.h +39 -0
  288. data/vendor/zstd/lib/compress/zstd_compress_literals.o +0 -0
  289. data/vendor/zstd/lib/compress/zstd_compress_sequences.c +442 -0
  290. data/vendor/zstd/lib/compress/zstd_compress_sequences.h +55 -0
  291. data/vendor/zstd/lib/compress/zstd_compress_sequences.o +0 -0
  292. data/vendor/zstd/lib/compress/zstd_compress_superblock.c +688 -0
  293. data/vendor/zstd/lib/compress/zstd_compress_superblock.h +32 -0
  294. data/vendor/zstd/lib/compress/zstd_compress_superblock.o +0 -0
  295. data/vendor/zstd/lib/compress/zstd_cwksp.h +765 -0
  296. data/vendor/zstd/lib/compress/zstd_double_fast.c +778 -0
  297. data/vendor/zstd/lib/compress/zstd_double_fast.h +42 -0
  298. data/vendor/zstd/lib/compress/zstd_double_fast.o +0 -0
  299. data/vendor/zstd/lib/compress/zstd_fast.c +985 -0
  300. data/vendor/zstd/lib/compress/zstd_fast.h +30 -0
  301. data/vendor/zstd/lib/compress/zstd_fast.o +0 -0
  302. data/vendor/zstd/lib/compress/zstd_lazy.c +2243 -0
  303. data/vendor/zstd/lib/compress/zstd_lazy.h +193 -0
  304. data/vendor/zstd/lib/compress/zstd_lazy.o +0 -0
  305. data/vendor/zstd/lib/compress/zstd_ldm.c +745 -0
  306. data/vendor/zstd/lib/compress/zstd_ldm.h +109 -0
  307. data/vendor/zstd/lib/compress/zstd_ldm.o +0 -0
  308. data/vendor/zstd/lib/compress/zstd_ldm_geartab.h +106 -0
  309. data/vendor/zstd/lib/compress/zstd_opt.c +1572 -0
  310. data/vendor/zstd/lib/compress/zstd_opt.h +72 -0
  311. data/vendor/zstd/lib/compress/zstd_opt.o +0 -0
  312. data/vendor/zstd/lib/compress/zstd_preSplit.c +238 -0
  313. data/vendor/zstd/lib/compress/zstd_preSplit.h +33 -0
  314. data/vendor/zstd/lib/compress/zstd_preSplit.o +0 -0
  315. data/vendor/zstd/lib/compress/zstdmt_compress.c +1924 -0
  316. data/vendor/zstd/lib/compress/zstdmt_compress.h +102 -0
  317. data/vendor/zstd/lib/compress/zstdmt_compress.o +0 -0
  318. data/vendor/zstd/lib/decompress/huf_decompress.c +1953 -0
  319. data/vendor/zstd/lib/decompress/huf_decompress.o +0 -0
  320. data/vendor/zstd/lib/decompress/huf_decompress_amd64.S +766 -0
  321. data/vendor/zstd/lib/decompress/zstd_ddict.c +244 -0
  322. data/vendor/zstd/lib/decompress/zstd_ddict.h +44 -0
  323. data/vendor/zstd/lib/decompress/zstd_ddict.o +0 -0
  324. data/vendor/zstd/lib/decompress/zstd_decompress.c +2410 -0
  325. data/vendor/zstd/lib/decompress/zstd_decompress.o +0 -0
  326. data/vendor/zstd/lib/decompress/zstd_decompress_block.c +2311 -0
  327. data/vendor/zstd/lib/decompress/zstd_decompress_block.h +73 -0
  328. data/vendor/zstd/lib/decompress/zstd_decompress_block.o +0 -0
  329. data/vendor/zstd/lib/decompress/zstd_decompress_internal.h +240 -0
  330. data/vendor/zstd/lib/deprecated/zbuff.h +214 -0
  331. data/vendor/zstd/lib/deprecated/zbuff_common.c +26 -0
  332. data/vendor/zstd/lib/deprecated/zbuff_compress.c +167 -0
  333. data/vendor/zstd/lib/deprecated/zbuff_decompress.c +77 -0
  334. data/vendor/zstd/lib/dictBuilder/cover.c +1333 -0
  335. data/vendor/zstd/lib/dictBuilder/cover.h +152 -0
  336. data/vendor/zstd/lib/dictBuilder/divsufsort.c +1913 -0
  337. data/vendor/zstd/lib/dictBuilder/divsufsort.h +57 -0
  338. data/vendor/zstd/lib/dictBuilder/fastcover.c +765 -0
  339. data/vendor/zstd/lib/dictBuilder/zdict.c +1137 -0
  340. data/vendor/zstd/lib/dll/example/Makefile +48 -0
  341. data/vendor/zstd/lib/dll/example/README.md +63 -0
  342. data/vendor/zstd/lib/dll/example/build_package.bat +55 -0
  343. data/vendor/zstd/lib/dll/example/fullbench-dll.sln +25 -0
  344. data/vendor/zstd/lib/dll/example/fullbench-dll.vcxproj +181 -0
  345. data/vendor/zstd/lib/install_oses.mk +17 -0
  346. data/vendor/zstd/lib/legacy/zstd_legacy.h +452 -0
  347. data/vendor/zstd/lib/legacy/zstd_v01.c +2128 -0
  348. data/vendor/zstd/lib/legacy/zstd_v01.h +94 -0
  349. data/vendor/zstd/lib/legacy/zstd_v02.c +3465 -0
  350. data/vendor/zstd/lib/legacy/zstd_v02.h +93 -0
  351. data/vendor/zstd/lib/legacy/zstd_v03.c +3105 -0
  352. data/vendor/zstd/lib/legacy/zstd_v03.h +93 -0
  353. data/vendor/zstd/lib/legacy/zstd_v04.c +3598 -0
  354. data/vendor/zstd/lib/legacy/zstd_v04.h +142 -0
  355. data/vendor/zstd/lib/legacy/zstd_v05.c +4005 -0
  356. data/vendor/zstd/lib/legacy/zstd_v05.h +162 -0
  357. data/vendor/zstd/lib/legacy/zstd_v06.c +4110 -0
  358. data/vendor/zstd/lib/legacy/zstd_v06.h +172 -0
  359. data/vendor/zstd/lib/legacy/zstd_v07.c +4490 -0
  360. data/vendor/zstd/lib/legacy/zstd_v07.h +187 -0
  361. data/vendor/zstd/lib/libzstd.mk +238 -0
  362. data/vendor/zstd/lib/libzstd.pc.in +17 -0
  363. data/vendor/zstd/lib/module.modulemap +35 -0
  364. data/vendor/zstd/lib/zdict.h +481 -0
  365. data/vendor/zstd/lib/zstd.h +3209 -0
  366. data/vendor/zstd/lib/zstd_errors.h +107 -0
  367. data/vendor/zstd/programs/BUCK +44 -0
  368. data/vendor/zstd/programs/Makefile +445 -0
  369. data/vendor/zstd/programs/README.md +344 -0
  370. data/vendor/zstd/programs/benchfn.c +256 -0
  371. data/vendor/zstd/programs/benchfn.h +173 -0
  372. data/vendor/zstd/programs/benchzstd.c +1270 -0
  373. data/vendor/zstd/programs/benchzstd.h +191 -0
  374. data/vendor/zstd/programs/datagen.c +186 -0
  375. data/vendor/zstd/programs/datagen.h +38 -0
  376. data/vendor/zstd/programs/dibio.c +447 -0
  377. data/vendor/zstd/programs/dibio.h +39 -0
  378. data/vendor/zstd/programs/fileio.c +3717 -0
  379. data/vendor/zstd/programs/fileio.h +171 -0
  380. data/vendor/zstd/programs/fileio_asyncio.c +663 -0
  381. data/vendor/zstd/programs/fileio_asyncio.h +195 -0
  382. data/vendor/zstd/programs/fileio_common.h +121 -0
  383. data/vendor/zstd/programs/fileio_types.h +86 -0
  384. data/vendor/zstd/programs/lorem.c +285 -0
  385. data/vendor/zstd/programs/lorem.h +32 -0
  386. data/vendor/zstd/programs/platform.h +217 -0
  387. data/vendor/zstd/programs/timefn.c +170 -0
  388. data/vendor/zstd/programs/timefn.h +59 -0
  389. data/vendor/zstd/programs/util.c +1731 -0
  390. data/vendor/zstd/programs/util.h +364 -0
  391. data/vendor/zstd/programs/windres/verrsrc.h +17 -0
  392. data/vendor/zstd/programs/windres/zstd.rc +51 -0
  393. data/vendor/zstd/programs/windres/zstd32.res +0 -0
  394. data/vendor/zstd/programs/windres/zstd64.res +0 -0
  395. data/vendor/zstd/programs/zstd.1 +580 -0
  396. data/vendor/zstd/programs/zstd.1.md +714 -0
  397. data/vendor/zstd/programs/zstdcli.c +1675 -0
  398. data/vendor/zstd/programs/zstdcli_trace.c +173 -0
  399. data/vendor/zstd/programs/zstdcli_trace.h +24 -0
  400. data/vendor/zstd/programs/zstdgrep +134 -0
  401. data/vendor/zstd/programs/zstdgrep.1 +26 -0
  402. data/vendor/zstd/programs/zstdgrep.1.md +30 -0
  403. data/vendor/zstd/programs/zstdless +8 -0
  404. data/vendor/zstd/programs/zstdless.1 +14 -0
  405. data/vendor/zstd/programs/zstdless.1.md +16 -0
  406. data/vendor/zstd/tests/DEPRECATED-test-zstd-speed.py +378 -0
  407. data/vendor/zstd/tests/Makefile +485 -0
  408. data/vendor/zstd/tests/README.md +184 -0
  409. data/vendor/zstd/tests/automated_benchmarking.py +326 -0
  410. data/vendor/zstd/tests/checkTag.c +65 -0
  411. data/vendor/zstd/tests/check_size.py +31 -0
  412. data/vendor/zstd/tests/cli-tests/README.md +258 -0
  413. data/vendor/zstd/tests/cli-tests/basic/args.sh +10 -0
  414. data/vendor/zstd/tests/cli-tests/basic/args.sh.exit +1 -0
  415. data/vendor/zstd/tests/cli-tests/basic/args.sh.stderr.glob +28 -0
  416. data/vendor/zstd/tests/cli-tests/basic/help.sh +10 -0
  417. data/vendor/zstd/tests/cli-tests/basic/help.sh.stdout.glob +34 -0
  418. data/vendor/zstd/tests/cli-tests/basic/memlimit.sh +40 -0
  419. data/vendor/zstd/tests/cli-tests/basic/memlimit.sh.stderr.exact +13 -0
  420. data/vendor/zstd/tests/cli-tests/basic/memlimit.sh.stdout.exact +13 -0
  421. data/vendor/zstd/tests/cli-tests/basic/output_dir.sh +7 -0
  422. data/vendor/zstd/tests/cli-tests/basic/output_dir.sh.stderr.exact +2 -0
  423. data/vendor/zstd/tests/cli-tests/basic/output_dir.sh.stdout.exact +2 -0
  424. data/vendor/zstd/tests/cli-tests/basic/version.sh +6 -0
  425. data/vendor/zstd/tests/cli-tests/basic/version.sh.stdout.glob +2 -0
  426. data/vendor/zstd/tests/cli-tests/bin/cmp_size +44 -0
  427. data/vendor/zstd/tests/cli-tests/bin/datagen +3 -0
  428. data/vendor/zstd/tests/cli-tests/bin/die +4 -0
  429. data/vendor/zstd/tests/cli-tests/bin/println +2 -0
  430. data/vendor/zstd/tests/cli-tests/bin/unzstd +1 -0
  431. data/vendor/zstd/tests/cli-tests/bin/zstd +9 -0
  432. data/vendor/zstd/tests/cli-tests/bin/zstdcat +1 -0
  433. data/vendor/zstd/tests/cli-tests/bin/zstdgrep +2 -0
  434. data/vendor/zstd/tests/cli-tests/bin/zstdless +2 -0
  435. data/vendor/zstd/tests/cli-tests/cltools/setup +6 -0
  436. data/vendor/zstd/tests/cli-tests/cltools/zstdgrep.sh +8 -0
  437. data/vendor/zstd/tests/cli-tests/cltools/zstdgrep.sh.exit +1 -0
  438. data/vendor/zstd/tests/cli-tests/cltools/zstdgrep.sh.stderr.exact +1 -0
  439. data/vendor/zstd/tests/cli-tests/cltools/zstdgrep.sh.stdout.glob +4 -0
  440. data/vendor/zstd/tests/cli-tests/cltools/zstdless.sh +10 -0
  441. data/vendor/zstd/tests/cli-tests/cltools/zstdless.sh.stderr.exact +2 -0
  442. data/vendor/zstd/tests/cli-tests/cltools/zstdless.sh.stdout.glob +5 -0
  443. data/vendor/zstd/tests/cli-tests/common/format.sh +19 -0
  444. data/vendor/zstd/tests/cli-tests/common/mtime.sh +13 -0
  445. data/vendor/zstd/tests/cli-tests/common/permissions.sh +18 -0
  446. data/vendor/zstd/tests/cli-tests/common/platform.sh +47 -0
  447. data/vendor/zstd/tests/cli-tests/compression/adapt.sh +14 -0
  448. data/vendor/zstd/tests/cli-tests/compression/basic.sh +36 -0
  449. data/vendor/zstd/tests/cli-tests/compression/compress-literals.sh +10 -0
  450. data/vendor/zstd/tests/cli-tests/compression/format.sh +16 -0
  451. data/vendor/zstd/tests/cli-tests/compression/golden.sh +16 -0
  452. data/vendor/zstd/tests/cli-tests/compression/gzip-compat.sh +17 -0
  453. data/vendor/zstd/tests/cli-tests/compression/levels.sh +75 -0
  454. data/vendor/zstd/tests/cli-tests/compression/levels.sh.stderr.exact +80 -0
  455. data/vendor/zstd/tests/cli-tests/compression/long-distance-matcher.sh +7 -0
  456. data/vendor/zstd/tests/cli-tests/compression/multi-threaded.sh +22 -0
  457. data/vendor/zstd/tests/cli-tests/compression/multi-threaded.sh.stderr.exact +21 -0
  458. data/vendor/zstd/tests/cli-tests/compression/multiple-files.sh +21 -0
  459. data/vendor/zstd/tests/cli-tests/compression/multiple-files.sh.stdout.exact +12 -0
  460. data/vendor/zstd/tests/cli-tests/compression/row-match-finder.sh +7 -0
  461. data/vendor/zstd/tests/cli-tests/compression/setup +7 -0
  462. data/vendor/zstd/tests/cli-tests/compression/stream-size.sh +7 -0
  463. data/vendor/zstd/tests/cli-tests/compression/verbose-wlog.sh +11 -0
  464. data/vendor/zstd/tests/cli-tests/compression/verbose-wlog.sh.stderr.glob +5 -0
  465. data/vendor/zstd/tests/cli-tests/compression/verbose-wlog.sh.stdout.glob +5 -0
  466. data/vendor/zstd/tests/cli-tests/compression/window-resize.sh +9 -0
  467. data/vendor/zstd/tests/cli-tests/compression/window-resize.sh.stderr.ignore +0 -0
  468. data/vendor/zstd/tests/cli-tests/compression/window-resize.sh.stdout.glob +3 -0
  469. data/vendor/zstd/tests/cli-tests/decompression/detectErrors.sh +11 -0
  470. data/vendor/zstd/tests/cli-tests/decompression/golden.sh +7 -0
  471. data/vendor/zstd/tests/cli-tests/decompression/pass-through.sh +57 -0
  472. data/vendor/zstd/tests/cli-tests/decompression/pass-through.sh.stderr.exact +11 -0
  473. data/vendor/zstd/tests/cli-tests/decompression/pass-through.sh.stdout.exact +25 -0
  474. data/vendor/zstd/tests/cli-tests/determinism/basic.sh +36 -0
  475. data/vendor/zstd/tests/cli-tests/determinism/basic.sh.stderr.exact +0 -0
  476. data/vendor/zstd/tests/cli-tests/determinism/basic.sh.stdout.exact +880 -0
  477. data/vendor/zstd/tests/cli-tests/determinism/multithread.sh +45 -0
  478. data/vendor/zstd/tests/cli-tests/determinism/multithread.sh.stderr.exact +0 -0
  479. data/vendor/zstd/tests/cli-tests/determinism/multithread.sh.stdout.exact +260 -0
  480. data/vendor/zstd/tests/cli-tests/determinism/reuse.sh +44 -0
  481. data/vendor/zstd/tests/cli-tests/determinism/reuse.sh.stderr.exact +0 -0
  482. data/vendor/zstd/tests/cli-tests/determinism/reuse.sh.stdout.exact +19 -0
  483. data/vendor/zstd/tests/cli-tests/determinism/setup +5 -0
  484. data/vendor/zstd/tests/cli-tests/determinism/setup_once +30 -0
  485. data/vendor/zstd/tests/cli-tests/dict-builder/empty-input.sh +9 -0
  486. data/vendor/zstd/tests/cli-tests/dict-builder/empty-input.sh.stderr.exact +1 -0
  487. data/vendor/zstd/tests/cli-tests/dict-builder/no-inputs.sh +3 -0
  488. data/vendor/zstd/tests/cli-tests/dict-builder/no-inputs.sh.exit +1 -0
  489. data/vendor/zstd/tests/cli-tests/dict-builder/no-inputs.sh.stderr.exact +5 -0
  490. data/vendor/zstd/tests/cli-tests/dictionaries/dictionary-mismatch.sh +29 -0
  491. data/vendor/zstd/tests/cli-tests/dictionaries/dictionary-mismatch.sh.stderr.exact +7 -0
  492. data/vendor/zstd/tests/cli-tests/dictionaries/golden.sh +9 -0
  493. data/vendor/zstd/tests/cli-tests/dictionaries/setup +6 -0
  494. data/vendor/zstd/tests/cli-tests/dictionaries/setup_once +24 -0
  495. data/vendor/zstd/tests/cli-tests/file-handling/directory-mirror.sh +49 -0
  496. data/vendor/zstd/tests/cli-tests/file-handling/directory-mirror.sh.stderr.exact +0 -0
  497. data/vendor/zstd/tests/cli-tests/file-handling/directory-mirror.sh.stdout.exact +0 -0
  498. data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-dir-without-write-perm.sh +12 -0
  499. data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-dir-without-write-perm.sh.stderr.exact +30 -0
  500. data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-file.sh +9 -0
  501. data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-file.sh.stderr.glob +46 -0
  502. data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-stdout.sh +8 -0
  503. data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-stdout.sh.stderr.exact +24 -0
  504. data/vendor/zstd/tests/cli-tests/file-stat/compress-stdin-to-file.sh +8 -0
  505. data/vendor/zstd/tests/cli-tests/file-stat/compress-stdin-to-file.sh.stderr.glob +28 -0
  506. data/vendor/zstd/tests/cli-tests/file-stat/compress-stdin-to-stdout.sh +8 -0
  507. data/vendor/zstd/tests/cli-tests/file-stat/compress-stdin-to-stdout.sh.stderr.exact +18 -0
  508. data/vendor/zstd/tests/cli-tests/file-stat/decompress-file-to-file.sh +8 -0
  509. data/vendor/zstd/tests/cli-tests/file-stat/decompress-file-to-file.sh.stderr.glob +42 -0
  510. data/vendor/zstd/tests/cli-tests/file-stat/decompress-file-to-stdout.sh +7 -0
  511. data/vendor/zstd/tests/cli-tests/file-stat/decompress-file-to-stdout.sh.stderr.exact +18 -0
  512. data/vendor/zstd/tests/cli-tests/file-stat/decompress-stdin-to-file.sh +7 -0
  513. data/vendor/zstd/tests/cli-tests/file-stat/decompress-stdin-to-file.sh.stderr.glob +24 -0
  514. data/vendor/zstd/tests/cli-tests/file-stat/decompress-stdin-to-stdout.sh +7 -0
  515. data/vendor/zstd/tests/cli-tests/file-stat/decompress-stdin-to-stdout.sh.stderr.exact +14 -0
  516. data/vendor/zstd/tests/cli-tests/progress/no-progress.sh +46 -0
  517. data/vendor/zstd/tests/cli-tests/progress/no-progress.sh.stderr.glob +96 -0
  518. data/vendor/zstd/tests/cli-tests/progress/progress.sh +41 -0
  519. data/vendor/zstd/tests/cli-tests/progress/progress.sh.stderr.glob +62 -0
  520. data/vendor/zstd/tests/cli-tests/run.py +732 -0
  521. data/vendor/zstd/tests/cli-tests/zstd-symlinks/setup +6 -0
  522. data/vendor/zstd/tests/cli-tests/zstd-symlinks/zstdcat.sh +12 -0
  523. data/vendor/zstd/tests/cli-tests/zstd-symlinks/zstdcat.sh.stdout.exact +8 -0
  524. data/vendor/zstd/tests/datagencli.c +149 -0
  525. data/vendor/zstd/tests/decodecorpus.c +1998 -0
  526. data/vendor/zstd/tests/dict-files/zero-weight-dict +0 -0
  527. data/vendor/zstd/tests/external_matchfinder.c +140 -0
  528. data/vendor/zstd/tests/external_matchfinder.h +39 -0
  529. data/vendor/zstd/tests/fullbench.c +1210 -0
  530. data/vendor/zstd/tests/fuzz/Makefile +278 -0
  531. data/vendor/zstd/tests/fuzz/README.md +161 -0
  532. data/vendor/zstd/tests/fuzz/block_decompress.c +53 -0
  533. data/vendor/zstd/tests/fuzz/block_round_trip.c +103 -0
  534. data/vendor/zstd/tests/fuzz/decompress_cross_format.c +130 -0
  535. data/vendor/zstd/tests/fuzz/decompress_dstSize_tooSmall.c +74 -0
  536. data/vendor/zstd/tests/fuzz/dictionary_decompress.c +77 -0
  537. data/vendor/zstd/tests/fuzz/dictionary_loader.c +106 -0
  538. data/vendor/zstd/tests/fuzz/dictionary_round_trip.c +155 -0
  539. data/vendor/zstd/tests/fuzz/dictionary_stream_round_trip.c +209 -0
  540. data/vendor/zstd/tests/fuzz/fse_read_ncount.c +100 -0
  541. data/vendor/zstd/tests/fuzz/fuzz.h +57 -0
  542. data/vendor/zstd/tests/fuzz/fuzz.py +910 -0
  543. data/vendor/zstd/tests/fuzz/fuzz_data_producer.c +95 -0
  544. data/vendor/zstd/tests/fuzz/fuzz_data_producer.h +66 -0
  545. data/vendor/zstd/tests/fuzz/fuzz_helpers.c +47 -0
  546. data/vendor/zstd/tests/fuzz/fuzz_helpers.h +82 -0
  547. data/vendor/zstd/tests/fuzz/fuzz_third_party_seq_prod.h +116 -0
  548. data/vendor/zstd/tests/fuzz/generate_sequences.c +88 -0
  549. data/vendor/zstd/tests/fuzz/huf_decompress.c +68 -0
  550. data/vendor/zstd/tests/fuzz/huf_round_trip.c +137 -0
  551. data/vendor/zstd/tests/fuzz/raw_dictionary_round_trip.c +119 -0
  552. data/vendor/zstd/tests/fuzz/regression_driver.c +90 -0
  553. data/vendor/zstd/tests/fuzz/seekable_roundtrip.c +88 -0
  554. data/vendor/zstd/tests/fuzz/seq_prod_fuzz_example/Makefile +16 -0
  555. data/vendor/zstd/tests/fuzz/seq_prod_fuzz_example/README.md +12 -0
  556. data/vendor/zstd/tests/fuzz/seq_prod_fuzz_example/example_seq_prod.c +52 -0
  557. data/vendor/zstd/tests/fuzz/sequence_compression_api.c +452 -0
  558. data/vendor/zstd/tests/fuzz/simple_compress.c +60 -0
  559. data/vendor/zstd/tests/fuzz/simple_decompress.c +59 -0
  560. data/vendor/zstd/tests/fuzz/simple_round_trip.c +182 -0
  561. data/vendor/zstd/tests/fuzz/stream_decompress.c +119 -0
  562. data/vendor/zstd/tests/fuzz/stream_round_trip.c +218 -0
  563. data/vendor/zstd/tests/fuzz/zstd_frame_info.c +43 -0
  564. data/vendor/zstd/tests/fuzz/zstd_helpers.c +208 -0
  565. data/vendor/zstd/tests/fuzz/zstd_helpers.h +56 -0
  566. data/vendor/zstd/tests/fuzzer.c +5482 -0
  567. data/vendor/zstd/tests/golden-compression/PR-3517-block-splitter-corruption-test +1 -0
  568. data/vendor/zstd/tests/golden-compression/http +1 -0
  569. data/vendor/zstd/tests/golden-compression/huffman-compressed-larger +0 -0
  570. data/vendor/zstd/tests/golden-compression/large-literal-and-match-lengths +0 -0
  571. data/vendor/zstd/tests/golden-decompression/block-128k.zst +0 -0
  572. data/vendor/zstd/tests/golden-decompression/empty-block.zst +0 -0
  573. data/vendor/zstd/tests/golden-decompression/rle-first-block.zst +0 -0
  574. data/vendor/zstd/tests/golden-decompression/zeroSeq_2B.zst +0 -0
  575. data/vendor/zstd/tests/golden-decompression-errors/off0.bin.zst +0 -0
  576. data/vendor/zstd/tests/golden-decompression-errors/truncated_huff_state.zst +0 -0
  577. data/vendor/zstd/tests/golden-decompression-errors/zeroSeq_extraneous.zst +0 -0
  578. data/vendor/zstd/tests/golden-dictionaries/http-dict-missing-symbols +0 -0
  579. data/vendor/zstd/tests/gzip/Makefile +45 -0
  580. data/vendor/zstd/tests/gzip/gzip-env.sh +46 -0
  581. data/vendor/zstd/tests/gzip/helin-segv.sh +31 -0
  582. data/vendor/zstd/tests/gzip/help-version.sh +270 -0
  583. data/vendor/zstd/tests/gzip/hufts-segv.gz +0 -0
  584. data/vendor/zstd/tests/gzip/hufts.sh +34 -0
  585. data/vendor/zstd/tests/gzip/init.cfg +5 -0
  586. data/vendor/zstd/tests/gzip/init.sh +616 -0
  587. data/vendor/zstd/tests/gzip/keep.sh +51 -0
  588. data/vendor/zstd/tests/gzip/list.sh +31 -0
  589. data/vendor/zstd/tests/gzip/memcpy-abuse.sh +34 -0
  590. data/vendor/zstd/tests/gzip/mixed.sh +68 -0
  591. data/vendor/zstd/tests/gzip/null-suffix-clobber.sh +35 -0
  592. data/vendor/zstd/tests/gzip/stdin.sh +31 -0
  593. data/vendor/zstd/tests/gzip/test-driver.sh +150 -0
  594. data/vendor/zstd/tests/gzip/trailing-nul.sh +37 -0
  595. data/vendor/zstd/tests/gzip/unpack-invalid.sh +36 -0
  596. data/vendor/zstd/tests/gzip/z-suffix.sh +30 -0
  597. data/vendor/zstd/tests/gzip/zdiff.sh +48 -0
  598. data/vendor/zstd/tests/gzip/zgrep-context.sh +47 -0
  599. data/vendor/zstd/tests/gzip/zgrep-f.sh +43 -0
  600. data/vendor/zstd/tests/gzip/zgrep-signal.sh +64 -0
  601. data/vendor/zstd/tests/gzip/znew-k.sh +40 -0
  602. data/vendor/zstd/tests/invalidDictionaries.c +61 -0
  603. data/vendor/zstd/tests/largeDictionary.c +131 -0
  604. data/vendor/zstd/tests/legacy.c +262 -0
  605. data/vendor/zstd/tests/libzstd_builds.sh +104 -0
  606. data/vendor/zstd/tests/longmatch.c +123 -0
  607. data/vendor/zstd/tests/loremOut.c +50 -0
  608. data/vendor/zstd/tests/loremOut.h +15 -0
  609. data/vendor/zstd/tests/paramgrill.c +2965 -0
  610. data/vendor/zstd/tests/playTests.sh +1926 -0
  611. data/vendor/zstd/tests/poolTests.c +271 -0
  612. data/vendor/zstd/tests/rateLimiter.py +41 -0
  613. data/vendor/zstd/tests/regression/Makefile +60 -0
  614. data/vendor/zstd/tests/regression/README.md +28 -0
  615. data/vendor/zstd/tests/regression/config.c +404 -0
  616. data/vendor/zstd/tests/regression/config.h +91 -0
  617. data/vendor/zstd/tests/regression/data.c +631 -0
  618. data/vendor/zstd/tests/regression/data.h +121 -0
  619. data/vendor/zstd/tests/regression/levels.h +59 -0
  620. data/vendor/zstd/tests/regression/method.c +701 -0
  621. data/vendor/zstd/tests/regression/method.h +65 -0
  622. data/vendor/zstd/tests/regression/result.c +30 -0
  623. data/vendor/zstd/tests/regression/result.h +103 -0
  624. data/vendor/zstd/tests/regression/results.csv +1480 -0
  625. data/vendor/zstd/tests/regression/test.c +362 -0
  626. data/vendor/zstd/tests/roundTripCrash.c +241 -0
  627. data/vendor/zstd/tests/seqgen.c +260 -0
  628. data/vendor/zstd/tests/seqgen.h +58 -0
  629. data/vendor/zstd/tests/test-license.py +156 -0
  630. data/vendor/zstd/tests/test-variants.sh +115 -0
  631. data/vendor/zstd/tests/test-zstd-versions.py +308 -0
  632. data/vendor/zstd/tests/test_process_substitution.bash +92 -0
  633. data/vendor/zstd/tests/zstreamtest.c +3467 -0
  634. data/vendor/zstd/zlibWrapper/BUCK +22 -0
  635. data/vendor/zstd/zlibWrapper/Makefile +120 -0
  636. data/vendor/zstd/zlibWrapper/README.md +163 -0
  637. data/vendor/zstd/zlibWrapper/examples/example.c +598 -0
  638. data/vendor/zstd/zlibWrapper/examples/example_original.c +599 -0
  639. data/vendor/zstd/zlibWrapper/examples/fitblk.c +254 -0
  640. data/vendor/zstd/zlibWrapper/examples/fitblk_original.c +233 -0
  641. data/vendor/zstd/zlibWrapper/examples/minigzip.c +605 -0
  642. data/vendor/zstd/zlibWrapper/examples/zwrapbench.c +1018 -0
  643. data/vendor/zstd/zlibWrapper/gzclose.c +26 -0
  644. data/vendor/zstd/zlibWrapper/gzcompatibility.h +68 -0
  645. data/vendor/zstd/zlibWrapper/gzguts.h +229 -0
  646. data/vendor/zstd/zlibWrapper/gzlib.c +587 -0
  647. data/vendor/zstd/zlibWrapper/gzread.c +637 -0
  648. data/vendor/zstd/zlibWrapper/gzwrite.c +632 -0
  649. data/vendor/zstd/zlibWrapper/zstd_zlibwrapper.c +1200 -0
  650. data/vendor/zstd/zlibWrapper/zstd_zlibwrapper.h +91 -0
  651. metadata +738 -0
@@ -0,0 +1,195 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under both the BSD-style license (found in the
6
+ * LICENSE file in the root directory of this source tree) and the GPLv2 (found
7
+ * in the COPYING file in the root directory of this source tree).
8
+ * You may select, at your option, one of the above-listed licenses.
9
+ */
10
+
11
+ /*
12
+ * FileIO AsyncIO exposes read/write IO pools that allow doing IO asynchronously.
13
+ * Current implementation relies on having one thread that reads and one that
14
+ * writes.
15
+ * Each IO pool supports up to `MAX_IO_JOBS` that can be enqueued for work, but
16
+ * are performed serially by the appropriate worker thread.
17
+ * Most systems exposes better primitives to perform asynchronous IO, such as
18
+ * io_uring on newer linux systems. The API is built in such a way that in the
19
+ * future we could replace the threads with better solutions when available.
20
+ */
21
+
22
+ #ifndef ZSTD_FILEIO_ASYNCIO_H
23
+ #define ZSTD_FILEIO_ASYNCIO_H
24
+
25
+ #include "../lib/common/mem.h" /* U32, U64 */
26
+ #include "fileio_types.h"
27
+ #include "platform.h"
28
+ #include "util.h"
29
+ #include "../lib/common/pool.h"
30
+ #include "../lib/common/threading.h"
31
+
32
+ #define MAX_IO_JOBS (10)
33
+
34
+ typedef struct {
35
+ /* These struct fields should be set only on creation and not changed afterwards */
36
+ POOL_ctx* threadPool;
37
+ int threadPoolActive;
38
+ int totalIoJobs;
39
+ const FIO_prefs_t* prefs;
40
+ POOL_function poolFunction;
41
+
42
+ /* Controls the file we currently write to, make changes only by using provided utility functions */
43
+ FILE* file;
44
+
45
+ /* The jobs and availableJobsCount fields are accessed by both the main and worker threads and should
46
+ * only be mutated after locking the mutex */
47
+ ZSTD_pthread_mutex_t ioJobsMutex;
48
+ void* availableJobs[MAX_IO_JOBS];
49
+ int availableJobsCount;
50
+ size_t jobBufferSize;
51
+ } IOPoolCtx_t;
52
+
53
+ typedef struct {
54
+ IOPoolCtx_t base;
55
+
56
+ /* State regarding the currently read file */
57
+ int reachedEof;
58
+ U64 nextReadOffset;
59
+ U64 waitingOnOffset;
60
+
61
+ /* We may hold an IOJob object as needed if we actively expose its buffer. */
62
+ void *currentJobHeld;
63
+
64
+ /* Coalesce buffer is used to join two buffers in case where we need to read more bytes than left in
65
+ * the first of them. Shouldn't be accessed from outside ot utility functions. */
66
+ U8 *coalesceBuffer;
67
+
68
+ /* Read buffer can be used by consumer code, take care when copying this pointer aside as it might
69
+ * change when consuming / refilling buffer. */
70
+ U8 *srcBuffer;
71
+ size_t srcBufferLoaded;
72
+
73
+ /* We need to know what tasks completed so we can use their buffers when their time comes.
74
+ * Should only be accessed after locking base.ioJobsMutex . */
75
+ void* completedJobs[MAX_IO_JOBS];
76
+ int completedJobsCount;
77
+ ZSTD_pthread_cond_t jobCompletedCond;
78
+ } ReadPoolCtx_t;
79
+
80
+ typedef struct {
81
+ IOPoolCtx_t base;
82
+ unsigned storedSkips;
83
+ } WritePoolCtx_t;
84
+
85
+ typedef struct {
86
+ /* These fields are automatically set and shouldn't be changed by non WritePool code. */
87
+ void *ctx;
88
+ FILE* file;
89
+ void *buffer;
90
+ size_t bufferSize;
91
+
92
+ /* This field should be changed before a job is queued for execution and should contain the number
93
+ * of bytes to write from the buffer. */
94
+ size_t usedBufferSize;
95
+ U64 offset;
96
+ } IOJob_t;
97
+
98
+ /* AIO_supported:
99
+ * Returns 1 if AsyncIO is supported on the system, 0 otherwise. */
100
+ int AIO_supported(void);
101
+
102
+
103
+ /* AIO_WritePool_releaseIoJob:
104
+ * Releases an acquired job back to the pool. Doesn't execute the job. */
105
+ void AIO_WritePool_releaseIoJob(IOJob_t *job);
106
+
107
+ /* AIO_WritePool_acquireJob:
108
+ * Returns an available write job to be used for a future write. */
109
+ IOJob_t* AIO_WritePool_acquireJob(WritePoolCtx_t *ctx);
110
+
111
+ /* AIO_WritePool_enqueueAndReacquireWriteJob:
112
+ * Enqueues a write job for execution and acquires a new one.
113
+ * After execution `job`'s pointed value would change to the newly acquired job.
114
+ * Make sure to set `usedBufferSize` to the wanted length before call.
115
+ * The queued job shouldn't be used directly after queueing it. */
116
+ void AIO_WritePool_enqueueAndReacquireWriteJob(IOJob_t **job);
117
+
118
+ /* AIO_WritePool_sparseWriteEnd:
119
+ * Ends sparse writes to the current file.
120
+ * Blocks on completion of all current write jobs before executing. */
121
+ void AIO_WritePool_sparseWriteEnd(WritePoolCtx_t *ctx);
122
+
123
+ /* AIO_WritePool_setFile:
124
+ * Sets the destination file for future writes in the pool.
125
+ * Requires completion of all queues write jobs and release of all otherwise acquired jobs.
126
+ * Also requires ending of sparse write if a previous file was used in sparse mode. */
127
+ void AIO_WritePool_setFile(WritePoolCtx_t *ctx, FILE* file);
128
+
129
+ /* AIO_WritePool_getFile:
130
+ * Returns the file the writePool is currently set to write to. */
131
+ FILE* AIO_WritePool_getFile(const WritePoolCtx_t* ctx);
132
+
133
+ /* AIO_WritePool_closeFile:
134
+ * Ends sparse write and closes the writePool's current file and sets the file to NULL.
135
+ * Requires completion of all queues write jobs and release of all otherwise acquired jobs. */
136
+ int AIO_WritePool_closeFile(WritePoolCtx_t *ctx);
137
+
138
+ /* AIO_WritePool_create:
139
+ * Allocates and sets and a new write pool including its included jobs.
140
+ * bufferSize should be set to the maximal buffer we want to write to at a time. */
141
+ WritePoolCtx_t* AIO_WritePool_create(const FIO_prefs_t* prefs, size_t bufferSize);
142
+
143
+ /* AIO_WritePool_free:
144
+ * Frees and releases a writePool and its resources. Closes destination file. */
145
+ void AIO_WritePool_free(WritePoolCtx_t* ctx);
146
+
147
+ /* AIO_WritePool_setAsync:
148
+ * Allows (de)activating async mode, to be used when the expected overhead
149
+ * of asyncio costs more than the expected gains. */
150
+ void AIO_WritePool_setAsync(WritePoolCtx_t* ctx, int async);
151
+
152
+ /* AIO_ReadPool_create:
153
+ * Allocates and sets and a new readPool including its included jobs.
154
+ * bufferSize should be set to the maximal buffer we want to read at a time, will also be used
155
+ * as our basic read size. */
156
+ ReadPoolCtx_t* AIO_ReadPool_create(const FIO_prefs_t* prefs, size_t bufferSize);
157
+
158
+ /* AIO_ReadPool_free:
159
+ * Frees and releases a readPool and its resources. Closes source file. */
160
+ void AIO_ReadPool_free(ReadPoolCtx_t* ctx);
161
+
162
+ /* AIO_ReadPool_setAsync:
163
+ * Allows (de)activating async mode, to be used when the expected overhead
164
+ * of asyncio costs more than the expected gains. */
165
+ void AIO_ReadPool_setAsync(ReadPoolCtx_t* ctx, int async);
166
+
167
+ /* AIO_ReadPool_consumeBytes:
168
+ * Consumes byes from srcBuffer's beginning and updates srcBufferLoaded accordingly. */
169
+ void AIO_ReadPool_consumeBytes(ReadPoolCtx_t *ctx, size_t n);
170
+
171
+ /* AIO_ReadPool_fillBuffer:
172
+ * Makes sure buffer has at least n bytes loaded (as long as n is not bigger than the initialized bufferSize).
173
+ * Returns if srcBuffer has at least n bytes loaded or if we've reached the end of the file.
174
+ * Return value is the number of bytes added to the buffer.
175
+ * Note that srcBuffer might have up to 2 times bufferSize bytes. */
176
+ size_t AIO_ReadPool_fillBuffer(ReadPoolCtx_t *ctx, size_t n);
177
+
178
+ /* AIO_ReadPool_consumeAndRefill:
179
+ * Consumes the current buffer and refills it with bufferSize bytes. */
180
+ size_t AIO_ReadPool_consumeAndRefill(ReadPoolCtx_t *ctx);
181
+
182
+ /* AIO_ReadPool_setFile:
183
+ * Sets the source file for future read in the pool. Initiates reading immediately if file is not NULL.
184
+ * Waits for all current enqueued tasks to complete if a previous file was set. */
185
+ void AIO_ReadPool_setFile(ReadPoolCtx_t *ctx, FILE* file);
186
+
187
+ /* AIO_ReadPool_getFile:
188
+ * Returns the current file set for the read pool. */
189
+ FILE* AIO_ReadPool_getFile(const ReadPoolCtx_t *ctx);
190
+
191
+ /* AIO_ReadPool_closeFile:
192
+ * Closes the current set file. Waits for all current enqueued tasks to complete and resets state. */
193
+ int AIO_ReadPool_closeFile(ReadPoolCtx_t *ctx);
194
+
195
+ #endif /* ZSTD_FILEIO_ASYNCIO_H */
@@ -0,0 +1,121 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under both the BSD-style license (found in the
6
+ * LICENSE file in the root directory of this source tree) and the GPLv2 (found
7
+ * in the COPYING file in the root directory of this source tree).
8
+ * You may select, at your option, one of the above-listed licenses.
9
+ */
10
+
11
+ #ifndef ZSTD_FILEIO_COMMON_H
12
+ #define ZSTD_FILEIO_COMMON_H
13
+
14
+ #include "../lib/common/mem.h" /* U32, U64 */
15
+ #include "fileio_types.h"
16
+ #include "platform.h"
17
+ #include "timefn.h" /* UTIL_getTime, UTIL_clockSpanMicro */
18
+
19
+ /*-*************************************
20
+ * Macros
21
+ ***************************************/
22
+ #define KB *(1 <<10)
23
+ #define MB *(1 <<20)
24
+ #define GB *(1U<<30)
25
+ #undef MAX
26
+ #define MAX(a,b) ((a)>(b) ? (a) : (b))
27
+ #undef MIN /* in case it would be already defined */
28
+ #define MIN(a,b) ((a) < (b) ? (a) : (b))
29
+
30
+ extern FIO_display_prefs_t g_display_prefs;
31
+
32
+ #define DISPLAY_F(f, ...) fprintf((f), __VA_ARGS__)
33
+ #define DISPLAYOUT(...) DISPLAY_F(stdout, __VA_ARGS__)
34
+ #define DISPLAY(...) DISPLAY_F(stderr, __VA_ARGS__)
35
+ #define DISPLAYLEVEL(l, ...) { if (g_display_prefs.displayLevel>=l) { DISPLAY(__VA_ARGS__); } }
36
+
37
+ extern UTIL_time_t g_displayClock;
38
+
39
+ #define REFRESH_RATE ((U64)(SEC_TO_MICRO / 6))
40
+ #define READY_FOR_UPDATE() (UTIL_clockSpanMicro(g_displayClock) > REFRESH_RATE || g_display_prefs.displayLevel >= 4)
41
+ #define DELAY_NEXT_UPDATE() { g_displayClock = UTIL_getTime(); }
42
+ #define DISPLAYUPDATE(l, ...) { \
43
+ if (g_display_prefs.displayLevel>=l && (g_display_prefs.progressSetting != FIO_ps_never)) { \
44
+ if (READY_FOR_UPDATE()) { \
45
+ DELAY_NEXT_UPDATE(); \
46
+ DISPLAY(__VA_ARGS__); \
47
+ if (g_display_prefs.displayLevel>=4) fflush(stderr); \
48
+ } } }
49
+
50
+ #define SHOULD_DISPLAY_SUMMARY() \
51
+ (g_display_prefs.displayLevel >= 2 || g_display_prefs.progressSetting == FIO_ps_always)
52
+ #define SHOULD_DISPLAY_PROGRESS() \
53
+ (g_display_prefs.progressSetting != FIO_ps_never && SHOULD_DISPLAY_SUMMARY())
54
+ #define DISPLAY_PROGRESS(...) { if (SHOULD_DISPLAY_PROGRESS()) { DISPLAYLEVEL(1, __VA_ARGS__); }}
55
+ #define DISPLAYUPDATE_PROGRESS(...) { if (SHOULD_DISPLAY_PROGRESS()) { DISPLAYUPDATE(1, __VA_ARGS__); }}
56
+ #define DISPLAY_SUMMARY(...) { if (SHOULD_DISPLAY_SUMMARY()) { DISPLAYLEVEL(1, __VA_ARGS__); } }
57
+
58
+ #define EXM_THROW(error, ...) \
59
+ { \
60
+ DISPLAYLEVEL(1, "zstd: "); \
61
+ DISPLAYLEVEL(5, "Error defined at %s, line %i : \n", __FILE__, __LINE__); \
62
+ DISPLAYLEVEL(1, "error %i : ", error); \
63
+ DISPLAYLEVEL(1, __VA_ARGS__); \
64
+ DISPLAYLEVEL(1, " \n"); \
65
+ exit(error); \
66
+ }
67
+
68
+ #define CHECK_V(v, f) \
69
+ v = f; \
70
+ if (ZSTD_isError(v)) { \
71
+ DISPLAYLEVEL(5, "%s \n", #f); \
72
+ EXM_THROW(11, "%s", ZSTD_getErrorName(v)); \
73
+ }
74
+ #define CHECK(f) { size_t err; CHECK_V(err, f); }
75
+
76
+
77
+ /* Avoid fseek()'s 2GiB barrier with MSVC, macOS, *BSD, MinGW */
78
+ #if defined(LIBC_NO_FSEEKO)
79
+ /* Some older libc implementations don't include these functions (e.g. Bionic < 24) */
80
+ # define LONG_SEEK fseek
81
+ # define LONG_TELL ftell
82
+ #elif defined(_MSC_VER) && _MSC_VER >= 1400
83
+ # define LONG_SEEK _fseeki64
84
+ # define LONG_TELL _ftelli64
85
+ #elif !defined(__64BIT__) && (PLATFORM_POSIX_VERSION >= 200112L) /* No point defining Large file for 64 bit */
86
+ # define LONG_SEEK fseeko
87
+ # define LONG_TELL ftello
88
+ #elif defined(__MINGW32__) && !defined(__STRICT_ANSI__) && !defined(__NO_MINGW_LFS) && defined(__MSVCRT__)
89
+ # define LONG_SEEK fseeko64
90
+ # define LONG_TELL ftello64
91
+ #elif defined(_WIN32) && !defined(__DJGPP__)
92
+ # include <windows.h>
93
+ static int LONG_SEEK(FILE* file, __int64 offset, int origin) {
94
+ LARGE_INTEGER off;
95
+ DWORD method;
96
+ off.QuadPart = offset;
97
+ if (origin == SEEK_END)
98
+ method = FILE_END;
99
+ else if (origin == SEEK_CUR)
100
+ method = FILE_CURRENT;
101
+ else
102
+ method = FILE_BEGIN;
103
+
104
+ if (SetFilePointerEx((HANDLE) _get_osfhandle(_fileno(file)), off, NULL, method))
105
+ return 0;
106
+ else
107
+ return -1;
108
+ }
109
+ static __int64 LONG_TELL(FILE* file) {
110
+ LARGE_INTEGER off, newOff;
111
+ off.QuadPart = 0;
112
+ newOff.QuadPart = 0;
113
+ SetFilePointerEx((HANDLE) _get_osfhandle(_fileno(file)), off, &newOff, FILE_CURRENT);
114
+ return newOff.QuadPart;
115
+ }
116
+ #else
117
+ # define LONG_SEEK fseek
118
+ # define LONG_TELL ftell
119
+ #endif
120
+
121
+ #endif /* ZSTD_FILEIO_COMMON_H */
@@ -0,0 +1,86 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under both the BSD-style license (found in the
6
+ * LICENSE file in the root directory of this source tree) and the GPLv2 (found
7
+ * in the COPYING file in the root directory of this source tree).
8
+ * You may select, at your option, one of the above-listed licenses.
9
+ */
10
+
11
+ #ifndef FILEIO_TYPES_HEADER
12
+ #define FILEIO_TYPES_HEADER
13
+
14
+ #define ZSTD_STATIC_LINKING_ONLY /* ZSTD_compressionParameters */
15
+ #include "../lib/zstd.h" /* ZSTD_* */
16
+
17
+ /*-*************************************
18
+ * Parameters: FIO_prefs_t
19
+ ***************************************/
20
+
21
+ typedef struct FIO_display_prefs_s FIO_display_prefs_t;
22
+
23
+ typedef enum { FIO_ps_auto, FIO_ps_never, FIO_ps_always } FIO_progressSetting_e;
24
+
25
+ struct FIO_display_prefs_s {
26
+ int displayLevel; /* 0 : no display; 1: errors; 2: + result + interaction + warnings; 3: + progression; 4: + information */
27
+ FIO_progressSetting_e progressSetting;
28
+ };
29
+
30
+
31
+ typedef enum { FIO_zstdCompression, FIO_gzipCompression, FIO_xzCompression, FIO_lzmaCompression, FIO_lz4Compression } FIO_compressionType_t;
32
+
33
+ typedef struct FIO_prefs_s {
34
+
35
+ /* Algorithm preferences */
36
+ FIO_compressionType_t compressionType;
37
+ int sparseFileSupport; /* 0: no sparse allowed; 1: auto (file yes, stdout no); 2: force sparse */
38
+ int dictIDFlag;
39
+ int checksumFlag;
40
+ int jobSize;
41
+ int overlapLog;
42
+ int adaptiveMode;
43
+ int useRowMatchFinder;
44
+ int rsyncable;
45
+ int minAdaptLevel;
46
+ int maxAdaptLevel;
47
+ int ldmFlag;
48
+ int ldmHashLog;
49
+ int ldmMinMatch;
50
+ int ldmBucketSizeLog;
51
+ int ldmHashRateLog;
52
+ size_t streamSrcSize;
53
+ size_t targetCBlockSize;
54
+ int srcSizeHint;
55
+ int testMode;
56
+ ZSTD_ParamSwitch_e literalCompressionMode;
57
+
58
+ /* IO preferences */
59
+ int removeSrcFile;
60
+ int overwrite;
61
+ int asyncIO;
62
+
63
+ /* Computation resources preferences */
64
+ unsigned memLimit;
65
+ int nbWorkers;
66
+
67
+ int excludeCompressedFiles;
68
+ int patchFromMode;
69
+ int contentSize;
70
+ int allowBlockDevices;
71
+ int passThrough;
72
+ ZSTD_ParamSwitch_e mmapDict;
73
+ } FIO_prefs_t;
74
+
75
+ typedef enum {FIO_mallocDict, FIO_mmapDict} FIO_dictBufferType_t;
76
+
77
+ typedef struct {
78
+ void* dictBuffer;
79
+ size_t dictBufferSize;
80
+ FIO_dictBufferType_t dictBufferType;
81
+ #if defined(_MSC_VER) || defined(_WIN32)
82
+ HANDLE dictHandle;
83
+ #endif
84
+ } FIO_Dict_t;
85
+
86
+ #endif /* FILEIO_TYPES_HEADER */
@@ -0,0 +1,285 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under both the BSD-style license (found in the
6
+ * LICENSE file in the root directory of this source tree) and the GPLv2 (found
7
+ * in the COPYING file in the root directory of this source tree).
8
+ * You may select, at your option, one of the above-listed licenses.
9
+ */
10
+
11
+ /* Implementation notes:
12
+ *
13
+ * This is a very simple lorem ipsum generator
14
+ * which features a static list of words
15
+ * and print them one after another randomly
16
+ * with a fake sentence / paragraph structure.
17
+ *
18
+ * The goal is to generate a printable text
19
+ * that can be used to fake a text compression scenario.
20
+ * The resulting compression / ratio curve of the lorem ipsum generator
21
+ * is more satisfying than the previous statistical generator,
22
+ * which was initially designed for entropy compression,
23
+ * and lacks a regularity more representative of text.
24
+ *
25
+ * The compression ratio achievable on the generated lorem ipsum
26
+ * is still a bit too good, presumably because the dictionary is a bit too
27
+ * small. It would be possible to create some more complex scheme, notably by
28
+ * enlarging the dictionary with a word generator, and adding grammatical rules
29
+ * (composition) and syntax rules. But that's probably overkill for the intended
30
+ * goal.
31
+ */
32
+
33
+ #include "lorem.h"
34
+ #include <assert.h>
35
+ #include <limits.h> /* INT_MAX */
36
+ #include <string.h> /* memcpy */
37
+
38
+ #define WORD_MAX_SIZE 20
39
+
40
+ /* Define the word pool */
41
+ static const char* kWords[] = {
42
+ "lorem", "ipsum", "dolor", "sit", "amet",
43
+ "consectetur", "adipiscing", "elit", "sed", "do",
44
+ "eiusmod", "tempor", "incididunt", "ut", "labore",
45
+ "et", "dolore", "magna", "aliqua", "dis",
46
+ "lectus", "vestibulum", "mattis", "ullamcorper", "velit",
47
+ "commodo", "a", "lacus", "arcu", "magnis",
48
+ "parturient", "montes", "nascetur", "ridiculus", "mus",
49
+ "mauris", "nulla", "malesuada", "pellentesque", "eget",
50
+ "gravida", "in", "dictum", "non", "erat",
51
+ "nam", "voluptat", "maecenas", "blandit", "aliquam",
52
+ "etiam", "enim", "lobortis", "scelerisque", "fermentum",
53
+ "dui", "faucibus", "ornare", "at", "elementum",
54
+ "eu", "facilisis", "odio", "morbi", "quis",
55
+ "eros", "donec", "ac", "orci", "purus",
56
+ "turpis", "cursus", "leo", "vel", "porta",
57
+ "consequat", "interdum", "varius", "vulputate", "aliquet",
58
+ "pharetra", "nunc", "auctor", "urna", "id",
59
+ "metus", "viverra", "nibh", "cras", "mi",
60
+ "unde", "omnis", "iste", "natus", "error",
61
+ "perspiciatis", "voluptatem", "accusantium", "doloremque", "laudantium",
62
+ "totam", "rem", "aperiam", "eaque", "ipsa",
63
+ "quae", "ab", "illo", "inventore", "veritatis",
64
+ "quasi", "architecto", "beatae", "vitae", "dicta",
65
+ "sunt", "explicabo", "nemo", "ipsam", "quia",
66
+ "voluptas", "aspernatur", "aut", "odit", "fugit",
67
+ "consequuntur", "magni", "dolores", "eos", "qui",
68
+ "ratione", "sequi", "nesciunt", "neque", "porro",
69
+ "quisquam", "est", "dolorem", "adipisci", "numquam",
70
+ "eius", "modi", "tempora", "incidunt", "magnam",
71
+ "quaerat", "ad", "minima", "veniam", "nostrum",
72
+ "ullam", "corporis", "suscipit", "laboriosam", "nisi",
73
+ "aliquid", "ex", "ea", "commodi", "consequatur",
74
+ "autem", "eum", "iure", "voluptate", "esse",
75
+ "quam", "nihil", "molestiae", "illum", "fugiat",
76
+ "quo", "pariatur", "vero", "accusamus", "iusto",
77
+ "dignissimos", "ducimus", "blanditiis", "praesentium", "voluptatum",
78
+ "deleniti", "atque", "corrupti", "quos", "quas",
79
+ "molestias", "excepturi", "sint", "occaecati", "cupiditate",
80
+ "provident", "similique", "culpa", "officia", "deserunt",
81
+ "mollitia", "animi", "laborum", "dolorum", "fuga",
82
+ "harum", "quidem", "rerum", "facilis", "expedita",
83
+ "distinctio", "libero", "tempore", "cum", "soluta",
84
+ "nobis", "eligendi", "optio", "cumque", "impedit",
85
+ "minus", "quod", "maxime", "placeat", "facere",
86
+ "possimus", "assumenda", "repellendus", "temporibus", "quibusdam",
87
+ "officiis", "debitis", "saepe", "eveniet", "voluptates",
88
+ "repudiandae", "recusandae", "itaque", "earum", "hic",
89
+ "tenetur", "sapiente", "delectus", "reiciendis", "cillum",
90
+ "maiores", "alias", "perferendis", "doloribus", "asperiores",
91
+ "repellat", "minim", "nostrud", "exercitation", "ullamco",
92
+ "laboris", "aliquip", "duis", "aute", "irure",
93
+ };
94
+ static const unsigned kNbWords = sizeof(kWords) / sizeof(kWords[0]);
95
+
96
+ /* simple 1-dimension distribution, based on word's length, favors small words
97
+ */
98
+ static const int kWeights[] = { 0, 8, 6, 4, 3, 2 };
99
+ static const size_t kNbWeights = sizeof(kWeights) / sizeof(kWeights[0]);
100
+
101
+ #define DISTRIB_SIZE_MAX 650
102
+ static int g_distrib[DISTRIB_SIZE_MAX] = { 0 };
103
+ static unsigned g_distribCount = 0;
104
+
105
+ static void countFreqs(
106
+ const char* words[],
107
+ size_t nbWords,
108
+ const int* weights,
109
+ size_t nbWeights)
110
+ {
111
+ unsigned total = 0;
112
+ size_t w;
113
+ for (w = 0; w < nbWords; w++) {
114
+ size_t len = strlen(words[w]);
115
+ int lmax;
116
+ if (len >= nbWeights)
117
+ len = nbWeights - 1;
118
+ lmax = weights[len];
119
+ total += (unsigned)lmax;
120
+ }
121
+ g_distribCount = total;
122
+ assert(g_distribCount <= DISTRIB_SIZE_MAX);
123
+ }
124
+
125
+ static void init_word_distrib(
126
+ const char* words[],
127
+ size_t nbWords,
128
+ const int* weights,
129
+ size_t nbWeights)
130
+ {
131
+ size_t w, d = 0;
132
+ countFreqs(words, nbWords, weights, nbWeights);
133
+ for (w = 0; w < nbWords; w++) {
134
+ size_t len = strlen(words[w]);
135
+ int l, lmax;
136
+ if (len >= nbWeights)
137
+ len = nbWeights - 1;
138
+ lmax = weights[len];
139
+ for (l = 0; l < lmax; l++) {
140
+ g_distrib[d++] = (int)w;
141
+ }
142
+ }
143
+ }
144
+
145
+ /* Note: this unit only works when invoked sequentially.
146
+ * No concurrent access is allowed */
147
+ static char* g_ptr = NULL;
148
+ static size_t g_nbChars = 0;
149
+ static size_t g_maxChars = 10000000;
150
+ static unsigned g_randRoot = 0;
151
+
152
+ #define RDG_rotl32(x, r) ((x << r) | (x >> (32 - r)))
153
+ static unsigned LOREM_rand(unsigned range)
154
+ {
155
+ static const unsigned prime1 = 2654435761U;
156
+ static const unsigned prime2 = 2246822519U;
157
+ unsigned rand32 = g_randRoot;
158
+ rand32 *= prime1;
159
+ rand32 ^= prime2;
160
+ rand32 = RDG_rotl32(rand32, 13);
161
+ g_randRoot = rand32;
162
+ return (unsigned)(((unsigned long long)rand32 * range) >> 32);
163
+ }
164
+
165
+ static void writeLastCharacters(void)
166
+ {
167
+ size_t lastChars = g_maxChars - g_nbChars;
168
+ assert(g_maxChars >= g_nbChars);
169
+ if (lastChars == 0)
170
+ return;
171
+ g_ptr[g_nbChars++] = '.';
172
+ if (lastChars > 2) {
173
+ memset(g_ptr + g_nbChars, ' ', lastChars - 2);
174
+ }
175
+ if (lastChars > 1) {
176
+ g_ptr[g_maxChars - 1] = '\n';
177
+ }
178
+ g_nbChars = g_maxChars;
179
+ }
180
+
181
+ static void generateWord(const char* word, const char* separator, int upCase)
182
+ {
183
+ size_t const len = strlen(word) + strlen(separator);
184
+ if (g_nbChars + len > g_maxChars) {
185
+ writeLastCharacters();
186
+ return;
187
+ }
188
+ memcpy(g_ptr + g_nbChars, word, strlen(word));
189
+ if (upCase) {
190
+ static const char toUp = 'A' - 'a';
191
+ g_ptr[g_nbChars] = (char)(g_ptr[g_nbChars] + toUp);
192
+ }
193
+ g_nbChars += strlen(word);
194
+ memcpy(g_ptr + g_nbChars, separator, strlen(separator));
195
+ g_nbChars += strlen(separator);
196
+ }
197
+
198
+ static int about(unsigned target)
199
+ {
200
+ return (int)(LOREM_rand(target) + LOREM_rand(target) + 1);
201
+ }
202
+
203
+ /* Function to generate a random sentence */
204
+ static void generateSentence(int nbWords)
205
+ {
206
+ int commaPos = about(9);
207
+ int comma2 = commaPos + about(7);
208
+ int qmark = (LOREM_rand(11) == 7);
209
+ const char* endSep = qmark ? "? " : ". ";
210
+ int i;
211
+ for (i = 0; i < nbWords; i++) {
212
+ int const wordID = g_distrib[LOREM_rand(g_distribCount)];
213
+ const char* const word = kWords[wordID];
214
+ const char* sep = " ";
215
+ if (i == commaPos)
216
+ sep = ", ";
217
+ if (i == comma2)
218
+ sep = ", ";
219
+ if (i == nbWords - 1)
220
+ sep = endSep;
221
+ generateWord(word, sep, i == 0);
222
+ }
223
+ }
224
+
225
+ static void generateParagraph(int nbSentences)
226
+ {
227
+ int i;
228
+ for (i = 0; i < nbSentences; i++) {
229
+ int wordsPerSentence = about(11);
230
+ generateSentence(wordsPerSentence);
231
+ }
232
+ if (g_nbChars < g_maxChars) {
233
+ g_ptr[g_nbChars++] = '\n';
234
+ }
235
+ if (g_nbChars < g_maxChars) {
236
+ g_ptr[g_nbChars++] = '\n';
237
+ }
238
+ }
239
+
240
+ /* It's "common" for lorem ipsum generators to start with the same first
241
+ * pre-defined sentence */
242
+ static void generateFirstSentence(void)
243
+ {
244
+ int i;
245
+ for (i = 0; i < 18; i++) {
246
+ const char* word = kWords[i];
247
+ const char* separator = " ";
248
+ if (i == 4)
249
+ separator = ", ";
250
+ if (i == 7)
251
+ separator = ", ";
252
+ generateWord(word, separator, i == 0);
253
+ }
254
+ generateWord(kWords[18], ". ", 0);
255
+ }
256
+
257
+ size_t
258
+ LOREM_genBlock(void* buffer, size_t size, unsigned seed, int first, int fill)
259
+ {
260
+ g_ptr = (char*)buffer;
261
+ assert(size < INT_MAX);
262
+ g_maxChars = size;
263
+ g_nbChars = 0;
264
+ g_randRoot = seed;
265
+ if (g_distribCount == 0) {
266
+ init_word_distrib(kWords, kNbWords, kWeights, kNbWeights);
267
+ }
268
+
269
+ if (first) {
270
+ generateFirstSentence();
271
+ }
272
+ while (g_nbChars < g_maxChars) {
273
+ int sentencePerParagraph = about(7);
274
+ generateParagraph(sentencePerParagraph);
275
+ if (!fill)
276
+ break; /* only generate one paragraph in not-fill mode */
277
+ }
278
+ g_ptr = NULL;
279
+ return g_nbChars;
280
+ }
281
+
282
+ void LOREM_genBuffer(void* buffer, size_t size, unsigned seed)
283
+ {
284
+ LOREM_genBlock(buffer, size, seed, 1, 1);
285
+ }