electrobun 0.0.1 → 0.0.2

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 (667) hide show
  1. package/.gitmodules +3 -0
  2. package/dist/webview +0 -0
  3. package/package.json +1 -1
  4. package/src/cli/build/electrobun +0 -0
  5. package/example/assets/electrobun-logo-32-template.png +0 -0
  6. package/example/buildScript.ts +0 -1
  7. package/example/bun.lockb +0 -0
  8. package/example/electrobun.config +0 -48
  9. package/example/icon.iconset/icon_128x128.png +0 -0
  10. package/example/icon.iconset/icon_128x128@2x.png +0 -0
  11. package/example/icon.iconset/icon_16x16.png +0 -0
  12. package/example/icon.iconset/icon_16x16@2x.png +0 -0
  13. package/example/icon.iconset/icon_256x256.png +0 -0
  14. package/example/icon.iconset/icon_256x256@2x.png +0 -0
  15. package/example/icon.iconset/icon_32x32.png +0 -0
  16. package/example/icon.iconset/icon_32x32@2x.png +0 -0
  17. package/example/icon.iconset/icon_512x512.png +0 -0
  18. package/example/icon.iconset/icon_512x512@2x.png +0 -0
  19. package/example/package-lock.json +0 -32
  20. package/example/package.json +0 -11
  21. package/example/readme.md +0 -0
  22. package/example/src/bun/index.ts +0 -403
  23. package/example/src/mainview/index.css +0 -4
  24. package/example/src/mainview/index.html +0 -13
  25. package/example/src/mainview/index.ts +0 -45
  26. package/example/src/mainview/rpc.ts +0 -36
  27. package/example/src/myextension/preload.ts +0 -15
  28. package/example/src/myextension/rpc.ts +0 -15
  29. package/example/src/webviewtag/electrobun.png +0 -0
  30. package/example/src/webviewtag/index.html +0 -94
  31. package/example/src/webviewtag/index.ts +0 -26
  32. package/src/bsdiff/bsdiff.zig +0 -842
  33. package/src/bsdiff/bspatch.zig +0 -253
  34. package/src/bsdiff/build.zig +0 -73
  35. package/src/bsdiff/zig-out/bin/bsdiff +0 -0
  36. package/src/bsdiff/zig-out/bin/bspatch +0 -0
  37. package/src/bsdiff/zig-out/lib/libzstd.a +0 -0
  38. package/src/bsdiff/zstd/.buckconfig +0 -9
  39. package/src/bsdiff/zstd/.buckversion +0 -1
  40. package/src/bsdiff/zstd/.circleci/config.yml +0 -123
  41. package/src/bsdiff/zstd/.circleci/images/primary/Dockerfile +0 -9
  42. package/src/bsdiff/zstd/.cirrus.yml +0 -10
  43. package/src/bsdiff/zstd/.gitattributes +0 -21
  44. package/src/bsdiff/zstd/.github/ISSUE_TEMPLATE/bug_report.md +0 -35
  45. package/src/bsdiff/zstd/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  46. package/src/bsdiff/zstd/.github/dependabot.yml +0 -6
  47. package/src/bsdiff/zstd/.github/workflows/commit.yml +0 -89
  48. package/src/bsdiff/zstd/.github/workflows/dev-long-tests.yml +0 -297
  49. package/src/bsdiff/zstd/.github/workflows/dev-short-tests.yml +0 -633
  50. package/src/bsdiff/zstd/.github/workflows/nightly.yml +0 -65
  51. package/src/bsdiff/zstd/.github/workflows/publish-release-artifacts.yml +0 -73
  52. package/src/bsdiff/zstd/.github/workflows/scorecards.yml +0 -64
  53. package/src/bsdiff/zstd/.github/workflows/windows-artifacts.yml +0 -58
  54. package/src/bsdiff/zstd/CHANGELOG +0 -837
  55. package/src/bsdiff/zstd/CODE_OF_CONDUCT.md +0 -5
  56. package/src/bsdiff/zstd/CONTRIBUTING.md +0 -489
  57. package/src/bsdiff/zstd/COPYING +0 -339
  58. package/src/bsdiff/zstd/LICENSE +0 -30
  59. package/src/bsdiff/zstd/Makefile +0 -457
  60. package/src/bsdiff/zstd/Package.swift +0 -36
  61. package/src/bsdiff/zstd/README.md +0 -227
  62. package/src/bsdiff/zstd/SECURITY.md +0 -15
  63. package/src/bsdiff/zstd/TESTING.md +0 -43
  64. package/src/bsdiff/zstd/build/LICENSE +0 -0
  65. package/src/bsdiff/zstd/build/README.md +0 -56
  66. package/src/bsdiff/zstd/build/VS2008/fullbench/fullbench.vcproj +0 -549
  67. package/src/bsdiff/zstd/build/VS2008/fuzzer/fuzzer.vcproj +0 -585
  68. package/src/bsdiff/zstd/build/VS2008/zstd/zstd.vcproj +0 -677
  69. package/src/bsdiff/zstd/build/VS2008/zstd.sln +0 -56
  70. package/src/bsdiff/zstd/build/VS2008/zstdlib/zstdlib.vcproj +0 -635
  71. package/src/bsdiff/zstd/build/VS2010/CompileAsCpp.props +0 -8
  72. package/src/bsdiff/zstd/build/VS2010/datagen/datagen.vcxproj +0 -170
  73. package/src/bsdiff/zstd/build/VS2010/fullbench/fullbench.vcxproj +0 -218
  74. package/src/bsdiff/zstd/build/VS2010/fullbench-dll/fullbench-dll.vcxproj +0 -189
  75. package/src/bsdiff/zstd/build/VS2010/fuzzer/fuzzer.vcxproj +0 -223
  76. package/src/bsdiff/zstd/build/VS2010/libzstd/libzstd.vcxproj +0 -242
  77. package/src/bsdiff/zstd/build/VS2010/libzstd-dll/libzstd-dll.rc +0 -51
  78. package/src/bsdiff/zstd/build/VS2010/libzstd-dll/libzstd-dll.vcxproj +0 -249
  79. package/src/bsdiff/zstd/build/VS2010/zstd/zstd.rc +0 -51
  80. package/src/bsdiff/zstd/build/VS2010/zstd/zstd.vcxproj +0 -265
  81. package/src/bsdiff/zstd/build/VS2010/zstd.sln +0 -89
  82. package/src/bsdiff/zstd/build/VS_scripts/README.md +0 -64
  83. package/src/bsdiff/zstd/build/VS_scripts/build.VS2010.cmd +0 -7
  84. package/src/bsdiff/zstd/build/VS_scripts/build.VS2012.cmd +0 -6
  85. package/src/bsdiff/zstd/build/VS_scripts/build.VS2013.cmd +0 -7
  86. package/src/bsdiff/zstd/build/VS_scripts/build.VS2015.cmd +0 -7
  87. package/src/bsdiff/zstd/build/VS_scripts/build.VS2017.cmd +0 -7
  88. package/src/bsdiff/zstd/build/VS_scripts/build.VS2017Community.cmd +0 -7
  89. package/src/bsdiff/zstd/build/VS_scripts/build.VS2017Enterprise.cmd +0 -7
  90. package/src/bsdiff/zstd/build/VS_scripts/build.VS2017Professional.cmd +0 -7
  91. package/src/bsdiff/zstd/build/VS_scripts/build.generic.cmd +0 -72
  92. package/src/bsdiff/zstd/build/cmake/CMakeLists.txt +0 -216
  93. package/src/bsdiff/zstd/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake +0 -121
  94. package/src/bsdiff/zstd/build/cmake/CMakeModules/FindLibLZ4.cmake +0 -49
  95. package/src/bsdiff/zstd/build/cmake/CMakeModules/GetZstdLibraryVersion.cmake +0 -10
  96. package/src/bsdiff/zstd/build/cmake/CMakeModules/JoinPaths.cmake +0 -23
  97. package/src/bsdiff/zstd/build/cmake/README.md +0 -136
  98. package/src/bsdiff/zstd/build/cmake/contrib/CMakeLists.txt +0 -13
  99. package/src/bsdiff/zstd/build/cmake/contrib/gen_html/CMakeLists.txt +0 -30
  100. package/src/bsdiff/zstd/build/cmake/contrib/pzstd/CMakeLists.txt +0 -39
  101. package/src/bsdiff/zstd/build/cmake/lib/CMakeLists.txt +0 -253
  102. package/src/bsdiff/zstd/build/cmake/lib/cmake_uninstall.cmake.in +0 -22
  103. package/src/bsdiff/zstd/build/cmake/programs/CMakeLists.txt +0 -144
  104. package/src/bsdiff/zstd/build/cmake/tests/CMakeLists.txt +0 -118
  105. package/src/bsdiff/zstd/build/cmake/zstdConfig.cmake.in +0 -10
  106. package/src/bsdiff/zstd/build/meson/GetZstdLibraryVersion.py +0 -39
  107. package/src/bsdiff/zstd/build/meson/InstallSymlink.py +0 -55
  108. package/src/bsdiff/zstd/build/meson/README.md +0 -38
  109. package/src/bsdiff/zstd/build/meson/contrib/gen_html/meson.build +0 -30
  110. package/src/bsdiff/zstd/build/meson/contrib/meson.build +0 -12
  111. package/src/bsdiff/zstd/build/meson/contrib/pzstd/meson.build +0 -25
  112. package/src/bsdiff/zstd/build/meson/lib/meson.build +0 -167
  113. package/src/bsdiff/zstd/build/meson/meson.build +0 -145
  114. package/src/bsdiff/zstd/build/meson/meson_options.txt +0 -36
  115. package/src/bsdiff/zstd/build/meson/programs/meson.build +0 -124
  116. package/src/bsdiff/zstd/build/meson/tests/meson.build +0 -217
  117. package/src/bsdiff/zstd/build/meson/tests/valgrindTest.py +0 -90
  118. package/src/bsdiff/zstd/build/single_file_libs/README.md +0 -33
  119. package/src/bsdiff/zstd/build/single_file_libs/build_decoder_test.sh +0 -91
  120. package/src/bsdiff/zstd/build/single_file_libs/build_library_test.sh +0 -97
  121. package/src/bsdiff/zstd/build/single_file_libs/combine.py +0 -234
  122. package/src/bsdiff/zstd/build/single_file_libs/combine.sh +0 -249
  123. package/src/bsdiff/zstd/build/single_file_libs/create_single_file_decoder.sh +0 -19
  124. package/src/bsdiff/zstd/build/single_file_libs/create_single_file_library.sh +0 -19
  125. package/src/bsdiff/zstd/build/single_file_libs/examples/README.md +0 -11
  126. package/src/bsdiff/zstd/build/single_file_libs/examples/emscripten.c +0 -340
  127. package/src/bsdiff/zstd/build/single_file_libs/examples/roundtrip.c +0 -83
  128. package/src/bsdiff/zstd/build/single_file_libs/examples/shell.html +0 -31
  129. package/src/bsdiff/zstd/build/single_file_libs/examples/simple.c +0 -75
  130. package/src/bsdiff/zstd/build/single_file_libs/examples/testcard-dxt1.inl +0 -2731
  131. package/src/bsdiff/zstd/build/single_file_libs/examples/testcard-zstd.inl +0 -261
  132. package/src/bsdiff/zstd/build/single_file_libs/examples/testcard.png +0 -0
  133. package/src/bsdiff/zstd/build/single_file_libs/zstd-in.c +0 -90
  134. package/src/bsdiff/zstd/build/single_file_libs/zstddeclib-in.c +0 -62
  135. package/src/bsdiff/zstd/contrib/VS2005/README.md +0 -3
  136. package/src/bsdiff/zstd/contrib/VS2005/fullbench/fullbench.vcproj +0 -440
  137. package/src/bsdiff/zstd/contrib/VS2005/fuzzer/fuzzer.vcproj +0 -488
  138. package/src/bsdiff/zstd/contrib/VS2005/zstd/zstd.vcproj +0 -552
  139. package/src/bsdiff/zstd/contrib/VS2005/zstd.sln +0 -55
  140. package/src/bsdiff/zstd/contrib/VS2005/zstdlib/zstdlib.vcproj +0 -546
  141. package/src/bsdiff/zstd/contrib/cleanTabs +0 -2
  142. package/src/bsdiff/zstd/contrib/diagnose_corruption/Makefile +0 -35
  143. package/src/bsdiff/zstd/contrib/diagnose_corruption/check_flipped_bits.c +0 -400
  144. package/src/bsdiff/zstd/contrib/docker/Dockerfile +0 -20
  145. package/src/bsdiff/zstd/contrib/docker/README.md +0 -20
  146. package/src/bsdiff/zstd/contrib/externalSequenceProducer/Makefile +0 -40
  147. package/src/bsdiff/zstd/contrib/externalSequenceProducer/README.md +0 -14
  148. package/src/bsdiff/zstd/contrib/externalSequenceProducer/main.c +0 -107
  149. package/src/bsdiff/zstd/contrib/externalSequenceProducer/sequence_producer.c +0 -80
  150. package/src/bsdiff/zstd/contrib/externalSequenceProducer/sequence_producer.h +0 -26
  151. package/src/bsdiff/zstd/contrib/freestanding_lib/freestanding.py +0 -774
  152. package/src/bsdiff/zstd/contrib/gen_html/Makefile +0 -51
  153. package/src/bsdiff/zstd/contrib/gen_html/README.md +0 -31
  154. package/src/bsdiff/zstd/contrib/gen_html/gen-zstd-manual.sh +0 -9
  155. package/src/bsdiff/zstd/contrib/gen_html/gen_html.cpp +0 -224
  156. package/src/bsdiff/zstd/contrib/largeNbDicts/Makefile +0 -58
  157. package/src/bsdiff/zstd/contrib/largeNbDicts/README.md +0 -33
  158. package/src/bsdiff/zstd/contrib/largeNbDicts/largeNbDicts.c +0 -1085
  159. package/src/bsdiff/zstd/contrib/linux-kernel/Makefile +0 -108
  160. package/src/bsdiff/zstd/contrib/linux-kernel/README.md +0 -14
  161. package/src/bsdiff/zstd/contrib/linux-kernel/btrfs-benchmark.sh +0 -104
  162. package/src/bsdiff/zstd/contrib/linux-kernel/btrfs-extract-benchmark.sh +0 -99
  163. package/src/bsdiff/zstd/contrib/linux-kernel/decompress_sources.h +0 -34
  164. package/src/bsdiff/zstd/contrib/linux-kernel/linux.mk +0 -43
  165. package/src/bsdiff/zstd/contrib/linux-kernel/linux_zstd.h +0 -447
  166. package/src/bsdiff/zstd/contrib/linux-kernel/mem.h +0 -262
  167. package/src/bsdiff/zstd/contrib/linux-kernel/squashfs-benchmark.sh +0 -39
  168. package/src/bsdiff/zstd/contrib/linux-kernel/test/Makefile +0 -49
  169. package/src/bsdiff/zstd/contrib/linux-kernel/test/include/asm/unaligned.h +0 -187
  170. package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/compiler.h +0 -23
  171. package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/errno.h +0 -15
  172. package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/kernel.h +0 -19
  173. package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/limits.h +0 -15
  174. package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/math64.h +0 -15
  175. package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/module.h +0 -20
  176. package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/printk.h +0 -15
  177. package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/stddef.h +0 -15
  178. package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/swab.h +0 -16
  179. package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/types.h +0 -16
  180. package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/xxhash.h +0 -745
  181. package/src/bsdiff/zstd/contrib/linux-kernel/test/macro-test.sh +0 -44
  182. package/src/bsdiff/zstd/contrib/linux-kernel/test/static_test.c +0 -52
  183. package/src/bsdiff/zstd/contrib/linux-kernel/test/test.c +0 -229
  184. package/src/bsdiff/zstd/contrib/linux-kernel/zstd_common_module.c +0 -29
  185. package/src/bsdiff/zstd/contrib/linux-kernel/zstd_compress_module.c +0 -164
  186. package/src/bsdiff/zstd/contrib/linux-kernel/zstd_decompress_module.c +0 -105
  187. package/src/bsdiff/zstd/contrib/linux-kernel/zstd_deps.h +0 -121
  188. package/src/bsdiff/zstd/contrib/match_finders/README.md +0 -42
  189. package/src/bsdiff/zstd/contrib/match_finders/zstd_edist.c +0 -558
  190. package/src/bsdiff/zstd/contrib/match_finders/zstd_edist.h +0 -70
  191. package/src/bsdiff/zstd/contrib/premake/premake4.lua +0 -6
  192. package/src/bsdiff/zstd/contrib/premake/zstd.lua +0 -80
  193. package/src/bsdiff/zstd/contrib/pzstd/BUCK +0 -72
  194. package/src/bsdiff/zstd/contrib/pzstd/ErrorHolder.h +0 -54
  195. package/src/bsdiff/zstd/contrib/pzstd/Logging.h +0 -72
  196. package/src/bsdiff/zstd/contrib/pzstd/Makefile +0 -265
  197. package/src/bsdiff/zstd/contrib/pzstd/Options.cpp +0 -424
  198. package/src/bsdiff/zstd/contrib/pzstd/Options.h +0 -71
  199. package/src/bsdiff/zstd/contrib/pzstd/Pzstd.cpp +0 -618
  200. package/src/bsdiff/zstd/contrib/pzstd/Pzstd.h +0 -153
  201. package/src/bsdiff/zstd/contrib/pzstd/README.md +0 -56
  202. package/src/bsdiff/zstd/contrib/pzstd/SkippableFrame.cpp +0 -30
  203. package/src/bsdiff/zstd/contrib/pzstd/SkippableFrame.h +0 -64
  204. package/src/bsdiff/zstd/contrib/pzstd/images/Cspeed.png +0 -0
  205. package/src/bsdiff/zstd/contrib/pzstd/images/Dspeed.png +0 -0
  206. package/src/bsdiff/zstd/contrib/pzstd/main.cpp +0 -27
  207. package/src/bsdiff/zstd/contrib/pzstd/test/BUCK +0 -37
  208. package/src/bsdiff/zstd/contrib/pzstd/test/OptionsTest.cpp +0 -536
  209. package/src/bsdiff/zstd/contrib/pzstd/test/PzstdTest.cpp +0 -149
  210. package/src/bsdiff/zstd/contrib/pzstd/test/RoundTrip.h +0 -86
  211. package/src/bsdiff/zstd/contrib/pzstd/test/RoundTripTest.cpp +0 -86
  212. package/src/bsdiff/zstd/contrib/pzstd/utils/BUCK +0 -75
  213. package/src/bsdiff/zstd/contrib/pzstd/utils/Buffer.h +0 -99
  214. package/src/bsdiff/zstd/contrib/pzstd/utils/FileSystem.h +0 -96
  215. package/src/bsdiff/zstd/contrib/pzstd/utils/Likely.h +0 -28
  216. package/src/bsdiff/zstd/contrib/pzstd/utils/Portability.h +0 -16
  217. package/src/bsdiff/zstd/contrib/pzstd/utils/Range.h +0 -133
  218. package/src/bsdiff/zstd/contrib/pzstd/utils/ResourcePool.h +0 -96
  219. package/src/bsdiff/zstd/contrib/pzstd/utils/ScopeGuard.h +0 -50
  220. package/src/bsdiff/zstd/contrib/pzstd/utils/ThreadPool.h +0 -58
  221. package/src/bsdiff/zstd/contrib/pzstd/utils/WorkQueue.h +0 -181
  222. package/src/bsdiff/zstd/contrib/pzstd/utils/test/BUCK +0 -35
  223. package/src/bsdiff/zstd/contrib/pzstd/utils/test/BufferTest.cpp +0 -89
  224. package/src/bsdiff/zstd/contrib/pzstd/utils/test/RangeTest.cpp +0 -82
  225. package/src/bsdiff/zstd/contrib/pzstd/utils/test/ResourcePoolTest.cpp +0 -72
  226. package/src/bsdiff/zstd/contrib/pzstd/utils/test/ScopeGuardTest.cpp +0 -28
  227. package/src/bsdiff/zstd/contrib/pzstd/utils/test/ThreadPoolTest.cpp +0 -71
  228. package/src/bsdiff/zstd/contrib/pzstd/utils/test/WorkQueueTest.cpp +0 -282
  229. package/src/bsdiff/zstd/contrib/recovery/Makefile +0 -35
  230. package/src/bsdiff/zstd/contrib/recovery/recover_directory.c +0 -152
  231. package/src/bsdiff/zstd/contrib/seekable_format/README.md +0 -42
  232. package/src/bsdiff/zstd/contrib/seekable_format/examples/Makefile +0 -53
  233. package/src/bsdiff/zstd/contrib/seekable_format/examples/parallel_compression.c +0 -214
  234. package/src/bsdiff/zstd/contrib/seekable_format/examples/parallel_processing.c +0 -194
  235. package/src/bsdiff/zstd/contrib/seekable_format/examples/seekable_compression.c +0 -136
  236. package/src/bsdiff/zstd/contrib/seekable_format/examples/seekable_decompression.c +0 -141
  237. package/src/bsdiff/zstd/contrib/seekable_format/examples/seekable_decompression_mem.c +0 -147
  238. package/src/bsdiff/zstd/contrib/seekable_format/tests/Makefile +0 -38
  239. package/src/bsdiff/zstd/contrib/seekable_format/tests/seekable_tests.c +0 -363
  240. package/src/bsdiff/zstd/contrib/seekable_format/zstd_seekable.h +0 -226
  241. package/src/bsdiff/zstd/contrib/seekable_format/zstd_seekable_compression_format.md +0 -116
  242. package/src/bsdiff/zstd/contrib/seekable_format/zstdseek_compress.c +0 -365
  243. package/src/bsdiff/zstd/contrib/seekable_format/zstdseek_decompress.c +0 -595
  244. package/src/bsdiff/zstd/contrib/seqBench/Makefile +0 -58
  245. package/src/bsdiff/zstd/contrib/seqBench/seqBench.c +0 -53
  246. package/src/bsdiff/zstd/contrib/snap/snapcraft.yaml +0 -28
  247. package/src/bsdiff/zstd/doc/README.md +0 -26
  248. package/src/bsdiff/zstd/doc/decompressor_errata.md +0 -148
  249. package/src/bsdiff/zstd/doc/decompressor_permissive.md +0 -60
  250. package/src/bsdiff/zstd/doc/educational_decoder/Makefile +0 -62
  251. package/src/bsdiff/zstd/doc/educational_decoder/README.md +0 -36
  252. package/src/bsdiff/zstd/doc/educational_decoder/harness.c +0 -119
  253. package/src/bsdiff/zstd/doc/educational_decoder/zstd_decompress.c +0 -2323
  254. package/src/bsdiff/zstd/doc/educational_decoder/zstd_decompress.h +0 -61
  255. package/src/bsdiff/zstd/doc/images/CSpeed2.png +0 -0
  256. package/src/bsdiff/zstd/doc/images/DCspeed5.png +0 -0
  257. package/src/bsdiff/zstd/doc/images/DSpeed3.png +0 -0
  258. package/src/bsdiff/zstd/doc/images/cdict_v136.png +0 -0
  259. package/src/bsdiff/zstd/doc/images/dict-cr.png +0 -0
  260. package/src/bsdiff/zstd/doc/images/dict-cs.png +0 -0
  261. package/src/bsdiff/zstd/doc/images/dict-ds.png +0 -0
  262. package/src/bsdiff/zstd/doc/images/zstd_cdict_v1_3_5.png +0 -0
  263. package/src/bsdiff/zstd/doc/images/zstd_logo86.png +0 -0
  264. package/src/bsdiff/zstd/doc/zstd_compression_format.md +0 -1737
  265. package/src/bsdiff/zstd/doc/zstd_manual.html +0 -2170
  266. package/src/bsdiff/zstd/examples/Makefile +0 -93
  267. package/src/bsdiff/zstd/examples/README.md +0 -46
  268. package/src/bsdiff/zstd/examples/common.h +0 -246
  269. package/src/bsdiff/zstd/examples/dictionary_compression.c +0 -107
  270. package/src/bsdiff/zstd/examples/dictionary_decompression.c +0 -99
  271. package/src/bsdiff/zstd/examples/multiple_simple_compression.c +0 -116
  272. package/src/bsdiff/zstd/examples/multiple_streaming_compression.c +0 -133
  273. package/src/bsdiff/zstd/examples/simple_compression.c +0 -68
  274. package/src/bsdiff/zstd/examples/simple_decompression.c +0 -65
  275. package/src/bsdiff/zstd/examples/streaming_compression.c +0 -146
  276. package/src/bsdiff/zstd/examples/streaming_compression_thread_pool.c +0 -180
  277. package/src/bsdiff/zstd/examples/streaming_decompression.c +0 -100
  278. package/src/bsdiff/zstd/examples/streaming_memory_usage.c +0 -137
  279. package/src/bsdiff/zstd/lib/BUCK +0 -232
  280. package/src/bsdiff/zstd/lib/Makefile +0 -369
  281. package/src/bsdiff/zstd/lib/README.md +0 -237
  282. package/src/bsdiff/zstd/lib/common/allocations.h +0 -55
  283. package/src/bsdiff/zstd/lib/common/bits.h +0 -200
  284. package/src/bsdiff/zstd/lib/common/bitstream.h +0 -457
  285. package/src/bsdiff/zstd/lib/common/compiler.h +0 -450
  286. package/src/bsdiff/zstd/lib/common/cpu.h +0 -249
  287. package/src/bsdiff/zstd/lib/common/debug.c +0 -30
  288. package/src/bsdiff/zstd/lib/common/debug.h +0 -116
  289. package/src/bsdiff/zstd/lib/common/entropy_common.c +0 -340
  290. package/src/bsdiff/zstd/lib/common/error_private.c +0 -63
  291. package/src/bsdiff/zstd/lib/common/error_private.h +0 -168
  292. package/src/bsdiff/zstd/lib/common/fse.h +0 -640
  293. package/src/bsdiff/zstd/lib/common/fse_decompress.c +0 -313
  294. package/src/bsdiff/zstd/lib/common/huf.h +0 -286
  295. package/src/bsdiff/zstd/lib/common/mem.h +0 -426
  296. package/src/bsdiff/zstd/lib/common/pool.c +0 -371
  297. package/src/bsdiff/zstd/lib/common/pool.h +0 -90
  298. package/src/bsdiff/zstd/lib/common/portability_macros.h +0 -158
  299. package/src/bsdiff/zstd/lib/common/threading.c +0 -182
  300. package/src/bsdiff/zstd/lib/common/threading.h +0 -150
  301. package/src/bsdiff/zstd/lib/common/xxhash.c +0 -18
  302. package/src/bsdiff/zstd/lib/common/xxhash.h +0 -7020
  303. package/src/bsdiff/zstd/lib/common/zstd_common.c +0 -48
  304. package/src/bsdiff/zstd/lib/common/zstd_deps.h +0 -111
  305. package/src/bsdiff/zstd/lib/common/zstd_internal.h +0 -392
  306. package/src/bsdiff/zstd/lib/common/zstd_trace.h +0 -163
  307. package/src/bsdiff/zstd/lib/compress/clevels.h +0 -134
  308. package/src/bsdiff/zstd/lib/compress/fse_compress.c +0 -625
  309. package/src/bsdiff/zstd/lib/compress/hist.c +0 -181
  310. package/src/bsdiff/zstd/lib/compress/hist.h +0 -75
  311. package/src/bsdiff/zstd/lib/compress/huf_compress.c +0 -1464
  312. package/src/bsdiff/zstd/lib/compress/zstd_compress.c +0 -7153
  313. package/src/bsdiff/zstd/lib/compress/zstd_compress_internal.h +0 -1534
  314. package/src/bsdiff/zstd/lib/compress/zstd_compress_literals.c +0 -235
  315. package/src/bsdiff/zstd/lib/compress/zstd_compress_literals.h +0 -39
  316. package/src/bsdiff/zstd/lib/compress/zstd_compress_sequences.c +0 -442
  317. package/src/bsdiff/zstd/lib/compress/zstd_compress_sequences.h +0 -54
  318. package/src/bsdiff/zstd/lib/compress/zstd_compress_superblock.c +0 -688
  319. package/src/bsdiff/zstd/lib/compress/zstd_compress_superblock.h +0 -32
  320. package/src/bsdiff/zstd/lib/compress/zstd_cwksp.h +0 -748
  321. package/src/bsdiff/zstd/lib/compress/zstd_double_fast.c +0 -770
  322. package/src/bsdiff/zstd/lib/compress/zstd_double_fast.h +0 -50
  323. package/src/bsdiff/zstd/lib/compress/zstd_fast.c +0 -968
  324. package/src/bsdiff/zstd/lib/compress/zstd_fast.h +0 -38
  325. package/src/bsdiff/zstd/lib/compress/zstd_lazy.c +0 -2199
  326. package/src/bsdiff/zstd/lib/compress/zstd_lazy.h +0 -202
  327. package/src/bsdiff/zstd/lib/compress/zstd_ldm.c +0 -730
  328. package/src/bsdiff/zstd/lib/compress/zstd_ldm.h +0 -117
  329. package/src/bsdiff/zstd/lib/compress/zstd_ldm_geartab.h +0 -106
  330. package/src/bsdiff/zstd/lib/compress/zstd_opt.c +0 -1576
  331. package/src/bsdiff/zstd/lib/compress/zstd_opt.h +0 -80
  332. package/src/bsdiff/zstd/lib/compress/zstdmt_compress.c +0 -1882
  333. package/src/bsdiff/zstd/lib/compress/zstdmt_compress.h +0 -113
  334. package/src/bsdiff/zstd/lib/decompress/huf_decompress.c +0 -1944
  335. package/src/bsdiff/zstd/lib/decompress/huf_decompress_amd64.S +0 -595
  336. package/src/bsdiff/zstd/lib/decompress/zstd_ddict.c +0 -244
  337. package/src/bsdiff/zstd/lib/decompress/zstd_ddict.h +0 -44
  338. package/src/bsdiff/zstd/lib/decompress/zstd_decompress.c +0 -2407
  339. package/src/bsdiff/zstd/lib/decompress/zstd_decompress_block.c +0 -2215
  340. package/src/bsdiff/zstd/lib/decompress/zstd_decompress_block.h +0 -73
  341. package/src/bsdiff/zstd/lib/decompress/zstd_decompress_internal.h +0 -240
  342. package/src/bsdiff/zstd/lib/deprecated/zbuff.h +0 -214
  343. package/src/bsdiff/zstd/lib/deprecated/zbuff_common.c +0 -26
  344. package/src/bsdiff/zstd/lib/deprecated/zbuff_compress.c +0 -167
  345. package/src/bsdiff/zstd/lib/deprecated/zbuff_decompress.c +0 -77
  346. package/src/bsdiff/zstd/lib/dictBuilder/cover.c +0 -1261
  347. package/src/bsdiff/zstd/lib/dictBuilder/cover.h +0 -152
  348. package/src/bsdiff/zstd/lib/dictBuilder/divsufsort.c +0 -1913
  349. package/src/bsdiff/zstd/lib/dictBuilder/divsufsort.h +0 -67
  350. package/src/bsdiff/zstd/lib/dictBuilder/fastcover.c +0 -766
  351. package/src/bsdiff/zstd/lib/dictBuilder/zdict.c +0 -1133
  352. package/src/bsdiff/zstd/lib/dll/example/Makefile +0 -48
  353. package/src/bsdiff/zstd/lib/dll/example/README.md +0 -63
  354. package/src/bsdiff/zstd/lib/dll/example/build_package.bat +0 -20
  355. package/src/bsdiff/zstd/lib/dll/example/fullbench-dll.sln +0 -25
  356. package/src/bsdiff/zstd/lib/dll/example/fullbench-dll.vcxproj +0 -181
  357. package/src/bsdiff/zstd/lib/legacy/zstd_legacy.h +0 -452
  358. package/src/bsdiff/zstd/lib/legacy/zstd_v01.c +0 -2127
  359. package/src/bsdiff/zstd/lib/legacy/zstd_v01.h +0 -94
  360. package/src/bsdiff/zstd/lib/legacy/zstd_v02.c +0 -3465
  361. package/src/bsdiff/zstd/lib/legacy/zstd_v02.h +0 -93
  362. package/src/bsdiff/zstd/lib/legacy/zstd_v03.c +0 -3105
  363. package/src/bsdiff/zstd/lib/legacy/zstd_v03.h +0 -93
  364. package/src/bsdiff/zstd/lib/legacy/zstd_v04.c +0 -3598
  365. package/src/bsdiff/zstd/lib/legacy/zstd_v04.h +0 -142
  366. package/src/bsdiff/zstd/lib/legacy/zstd_v05.c +0 -4005
  367. package/src/bsdiff/zstd/lib/legacy/zstd_v05.h +0 -162
  368. package/src/bsdiff/zstd/lib/legacy/zstd_v06.c +0 -4106
  369. package/src/bsdiff/zstd/lib/legacy/zstd_v06.h +0 -172
  370. package/src/bsdiff/zstd/lib/legacy/zstd_v07.c +0 -4490
  371. package/src/bsdiff/zstd/lib/legacy/zstd_v07.h +0 -187
  372. package/src/bsdiff/zstd/lib/libzstd.mk +0 -237
  373. package/src/bsdiff/zstd/lib/libzstd.pc.in +0 -16
  374. package/src/bsdiff/zstd/lib/module.modulemap +0 -35
  375. package/src/bsdiff/zstd/lib/zdict.h +0 -474
  376. package/src/bsdiff/zstd/lib/zstd.h +0 -3089
  377. package/src/bsdiff/zstd/lib/zstd_errors.h +0 -114
  378. package/src/bsdiff/zstd/programs/BUCK +0 -44
  379. package/src/bsdiff/zstd/programs/Makefile +0 -445
  380. package/src/bsdiff/zstd/programs/README.md +0 -302
  381. package/src/bsdiff/zstd/programs/benchfn.c +0 -256
  382. package/src/bsdiff/zstd/programs/benchfn.h +0 -183
  383. package/src/bsdiff/zstd/programs/benchzstd.c +0 -1264
  384. package/src/bsdiff/zstd/programs/benchzstd.h +0 -198
  385. package/src/bsdiff/zstd/programs/datagen.c +0 -186
  386. package/src/bsdiff/zstd/programs/datagen.h +0 -30
  387. package/src/bsdiff/zstd/programs/dibio.c +0 -440
  388. package/src/bsdiff/zstd/programs/dibio.h +0 -39
  389. package/src/bsdiff/zstd/programs/fileio.c +0 -3470
  390. package/src/bsdiff/zstd/programs/fileio.h +0 -181
  391. package/src/bsdiff/zstd/programs/fileio_asyncio.c +0 -663
  392. package/src/bsdiff/zstd/programs/fileio_asyncio.h +0 -203
  393. package/src/bsdiff/zstd/programs/fileio_common.h +0 -125
  394. package/src/bsdiff/zstd/programs/fileio_types.h +0 -86
  395. package/src/bsdiff/zstd/programs/lorem.c +0 -285
  396. package/src/bsdiff/zstd/programs/lorem.h +0 -32
  397. package/src/bsdiff/zstd/programs/platform.h +0 -218
  398. package/src/bsdiff/zstd/programs/timefn.c +0 -168
  399. package/src/bsdiff/zstd/programs/timefn.h +0 -70
  400. package/src/bsdiff/zstd/programs/util.c +0 -1652
  401. package/src/bsdiff/zstd/programs/util.h +0 -359
  402. package/src/bsdiff/zstd/programs/windres/verrsrc.h +0 -17
  403. package/src/bsdiff/zstd/programs/windres/zstd.rc +0 -51
  404. package/src/bsdiff/zstd/programs/windres/zstd32.res +0 -0
  405. package/src/bsdiff/zstd/programs/windres/zstd64.res +0 -0
  406. package/src/bsdiff/zstd/programs/zstd.1 +0 -566
  407. package/src/bsdiff/zstd/programs/zstd.1.md +0 -695
  408. package/src/bsdiff/zstd/programs/zstdcli.c +0 -1625
  409. package/src/bsdiff/zstd/programs/zstdcli_trace.c +0 -172
  410. package/src/bsdiff/zstd/programs/zstdcli_trace.h +0 -24
  411. package/src/bsdiff/zstd/programs/zstdgrep +0 -134
  412. package/src/bsdiff/zstd/programs/zstdgrep.1 +0 -26
  413. package/src/bsdiff/zstd/programs/zstdgrep.1.md +0 -30
  414. package/src/bsdiff/zstd/programs/zstdless +0 -8
  415. package/src/bsdiff/zstd/programs/zstdless.1 +0 -14
  416. package/src/bsdiff/zstd/programs/zstdless.1.md +0 -16
  417. package/src/bsdiff/zstd/tests/DEPRECATED-test-zstd-speed.py +0 -378
  418. package/src/bsdiff/zstd/tests/Makefile +0 -477
  419. package/src/bsdiff/zstd/tests/README.md +0 -184
  420. package/src/bsdiff/zstd/tests/automated_benchmarking.py +0 -326
  421. package/src/bsdiff/zstd/tests/bigdict.c +0 -128
  422. package/src/bsdiff/zstd/tests/checkTag.c +0 -65
  423. package/src/bsdiff/zstd/tests/check_size.py +0 -31
  424. package/src/bsdiff/zstd/tests/cli-tests/README.md +0 -258
  425. package/src/bsdiff/zstd/tests/cli-tests/basic/args.sh +0 -10
  426. package/src/bsdiff/zstd/tests/cli-tests/basic/args.sh.exit +0 -1
  427. package/src/bsdiff/zstd/tests/cli-tests/basic/args.sh.stderr.glob +0 -28
  428. package/src/bsdiff/zstd/tests/cli-tests/basic/help.sh +0 -10
  429. package/src/bsdiff/zstd/tests/cli-tests/basic/help.sh.stdout.glob +0 -34
  430. package/src/bsdiff/zstd/tests/cli-tests/basic/memlimit.sh +0 -40
  431. package/src/bsdiff/zstd/tests/cli-tests/basic/memlimit.sh.stderr.exact +0 -13
  432. package/src/bsdiff/zstd/tests/cli-tests/basic/memlimit.sh.stdout.exact +0 -13
  433. package/src/bsdiff/zstd/tests/cli-tests/basic/output_dir.sh +0 -7
  434. package/src/bsdiff/zstd/tests/cli-tests/basic/output_dir.sh.stderr.exact +0 -2
  435. package/src/bsdiff/zstd/tests/cli-tests/basic/output_dir.sh.stdout.exact +0 -2
  436. package/src/bsdiff/zstd/tests/cli-tests/basic/version.sh +0 -6
  437. package/src/bsdiff/zstd/tests/cli-tests/basic/version.sh.stdout.glob +0 -2
  438. package/src/bsdiff/zstd/tests/cli-tests/bin/cmp_size +0 -44
  439. package/src/bsdiff/zstd/tests/cli-tests/bin/datagen +0 -3
  440. package/src/bsdiff/zstd/tests/cli-tests/bin/die +0 -4
  441. package/src/bsdiff/zstd/tests/cli-tests/bin/println +0 -2
  442. package/src/bsdiff/zstd/tests/cli-tests/bin/zstd +0 -9
  443. package/src/bsdiff/zstd/tests/cli-tests/bin/zstdgrep +0 -2
  444. package/src/bsdiff/zstd/tests/cli-tests/bin/zstdless +0 -2
  445. package/src/bsdiff/zstd/tests/cli-tests/cltools/setup +0 -6
  446. package/src/bsdiff/zstd/tests/cli-tests/cltools/zstdgrep.sh +0 -8
  447. package/src/bsdiff/zstd/tests/cli-tests/cltools/zstdgrep.sh.exit +0 -1
  448. package/src/bsdiff/zstd/tests/cli-tests/cltools/zstdgrep.sh.stderr.exact +0 -1
  449. package/src/bsdiff/zstd/tests/cli-tests/cltools/zstdgrep.sh.stdout.glob +0 -4
  450. package/src/bsdiff/zstd/tests/cli-tests/cltools/zstdless.sh +0 -10
  451. package/src/bsdiff/zstd/tests/cli-tests/cltools/zstdless.sh.stderr.exact +0 -2
  452. package/src/bsdiff/zstd/tests/cli-tests/cltools/zstdless.sh.stdout.glob +0 -5
  453. package/src/bsdiff/zstd/tests/cli-tests/common/format.sh +0 -19
  454. package/src/bsdiff/zstd/tests/cli-tests/common/mtime.sh +0 -13
  455. package/src/bsdiff/zstd/tests/cli-tests/common/permissions.sh +0 -18
  456. package/src/bsdiff/zstd/tests/cli-tests/common/platform.sh +0 -37
  457. package/src/bsdiff/zstd/tests/cli-tests/compression/adapt.sh +0 -14
  458. package/src/bsdiff/zstd/tests/cli-tests/compression/basic.sh +0 -36
  459. package/src/bsdiff/zstd/tests/cli-tests/compression/compress-literals.sh +0 -10
  460. package/src/bsdiff/zstd/tests/cli-tests/compression/format.sh +0 -16
  461. package/src/bsdiff/zstd/tests/cli-tests/compression/golden.sh +0 -16
  462. package/src/bsdiff/zstd/tests/cli-tests/compression/gzip-compat.sh +0 -17
  463. package/src/bsdiff/zstd/tests/cli-tests/compression/levels.sh +0 -62
  464. package/src/bsdiff/zstd/tests/cli-tests/compression/levels.sh.stderr.exact +0 -69
  465. package/src/bsdiff/zstd/tests/cli-tests/compression/long-distance-matcher.sh +0 -7
  466. package/src/bsdiff/zstd/tests/cli-tests/compression/multi-threaded.sh +0 -15
  467. package/src/bsdiff/zstd/tests/cli-tests/compression/multi-threaded.sh.stderr.exact +0 -11
  468. package/src/bsdiff/zstd/tests/cli-tests/compression/multiple-files.sh +0 -21
  469. package/src/bsdiff/zstd/tests/cli-tests/compression/multiple-files.sh.stdout.exact +0 -12
  470. package/src/bsdiff/zstd/tests/cli-tests/compression/row-match-finder.sh +0 -7
  471. package/src/bsdiff/zstd/tests/cli-tests/compression/setup +0 -7
  472. package/src/bsdiff/zstd/tests/cli-tests/compression/stream-size.sh +0 -7
  473. package/src/bsdiff/zstd/tests/cli-tests/compression/verbose-wlog.sh +0 -11
  474. package/src/bsdiff/zstd/tests/cli-tests/compression/verbose-wlog.sh.stderr.glob +0 -5
  475. package/src/bsdiff/zstd/tests/cli-tests/compression/verbose-wlog.sh.stdout.glob +0 -5
  476. package/src/bsdiff/zstd/tests/cli-tests/compression/window-resize.sh +0 -9
  477. package/src/bsdiff/zstd/tests/cli-tests/compression/window-resize.sh.stderr.ignore +0 -0
  478. package/src/bsdiff/zstd/tests/cli-tests/compression/window-resize.sh.stdout.glob +0 -3
  479. package/src/bsdiff/zstd/tests/cli-tests/decompression/detectErrors.sh +0 -11
  480. package/src/bsdiff/zstd/tests/cli-tests/decompression/golden.sh +0 -7
  481. package/src/bsdiff/zstd/tests/cli-tests/decompression/pass-through.sh +0 -57
  482. package/src/bsdiff/zstd/tests/cli-tests/decompression/pass-through.sh.stderr.exact +0 -11
  483. package/src/bsdiff/zstd/tests/cli-tests/decompression/pass-through.sh.stdout.exact +0 -25
  484. package/src/bsdiff/zstd/tests/cli-tests/dict-builder/empty-input.sh +0 -9
  485. package/src/bsdiff/zstd/tests/cli-tests/dict-builder/empty-input.sh.stderr.exact +0 -1
  486. package/src/bsdiff/zstd/tests/cli-tests/dict-builder/no-inputs.sh +0 -3
  487. package/src/bsdiff/zstd/tests/cli-tests/dict-builder/no-inputs.sh.exit +0 -1
  488. package/src/bsdiff/zstd/tests/cli-tests/dict-builder/no-inputs.sh.stderr.exact +0 -5
  489. package/src/bsdiff/zstd/tests/cli-tests/dictionaries/dictionary-mismatch.sh +0 -29
  490. package/src/bsdiff/zstd/tests/cli-tests/dictionaries/dictionary-mismatch.sh.stderr.exact +0 -7
  491. package/src/bsdiff/zstd/tests/cli-tests/dictionaries/golden.sh +0 -9
  492. package/src/bsdiff/zstd/tests/cli-tests/dictionaries/setup +0 -6
  493. package/src/bsdiff/zstd/tests/cli-tests/dictionaries/setup_once +0 -24
  494. package/src/bsdiff/zstd/tests/cli-tests/file-handling/directory-mirror.sh +0 -49
  495. package/src/bsdiff/zstd/tests/cli-tests/file-handling/directory-mirror.sh.stderr.exact +0 -0
  496. package/src/bsdiff/zstd/tests/cli-tests/file-handling/directory-mirror.sh.stdout.exact +0 -0
  497. package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-file-to-dir-without-write-perm.sh +0 -12
  498. package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-file-to-dir-without-write-perm.sh.stderr.exact +0 -26
  499. package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-file-to-file.sh +0 -9
  500. package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-file-to-file.sh.stderr.exact +0 -42
  501. package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-file-to-stdout.sh +0 -8
  502. package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-file-to-stdout.sh.stderr.exact +0 -24
  503. package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-stdin-to-file.sh +0 -8
  504. package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-stdin-to-file.sh.stderr.exact +0 -24
  505. package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-stdin-to-stdout.sh +0 -8
  506. package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-stdin-to-stdout.sh.stderr.exact +0 -18
  507. package/src/bsdiff/zstd/tests/cli-tests/file-stat/decompress-file-to-file.sh +0 -8
  508. package/src/bsdiff/zstd/tests/cli-tests/file-stat/decompress-file-to-file.sh.stderr.exact +0 -38
  509. package/src/bsdiff/zstd/tests/cli-tests/file-stat/decompress-file-to-stdout.sh +0 -7
  510. package/src/bsdiff/zstd/tests/cli-tests/file-stat/decompress-file-to-stdout.sh.stderr.exact +0 -18
  511. package/src/bsdiff/zstd/tests/cli-tests/file-stat/decompress-stdin-to-file.sh +0 -7
  512. package/src/bsdiff/zstd/tests/cli-tests/file-stat/decompress-stdin-to-file.sh.stderr.exact +0 -20
  513. package/src/bsdiff/zstd/tests/cli-tests/file-stat/decompress-stdin-to-stdout.sh +0 -7
  514. package/src/bsdiff/zstd/tests/cli-tests/file-stat/decompress-stdin-to-stdout.sh.stderr.exact +0 -14
  515. package/src/bsdiff/zstd/tests/cli-tests/progress/no-progress.sh +0 -46
  516. package/src/bsdiff/zstd/tests/cli-tests/progress/no-progress.sh.stderr.glob +0 -96
  517. package/src/bsdiff/zstd/tests/cli-tests/progress/progress.sh +0 -41
  518. package/src/bsdiff/zstd/tests/cli-tests/progress/progress.sh.stderr.glob +0 -62
  519. package/src/bsdiff/zstd/tests/cli-tests/run.py +0 -731
  520. package/src/bsdiff/zstd/tests/cli-tests/zstd-symlinks/setup +0 -6
  521. package/src/bsdiff/zstd/tests/cli-tests/zstd-symlinks/zstdcat.sh +0 -12
  522. package/src/bsdiff/zstd/tests/cli-tests/zstd-symlinks/zstdcat.sh.stdout.exact +0 -8
  523. package/src/bsdiff/zstd/tests/datagencli.c +0 -149
  524. package/src/bsdiff/zstd/tests/decodecorpus.c +0 -1936
  525. package/src/bsdiff/zstd/tests/dict-files/zero-weight-dict +0 -0
  526. package/src/bsdiff/zstd/tests/external_matchfinder.c +0 -140
  527. package/src/bsdiff/zstd/tests/external_matchfinder.h +0 -39
  528. package/src/bsdiff/zstd/tests/fullbench.c +0 -980
  529. package/src/bsdiff/zstd/tests/fuzz/Makefile +0 -277
  530. package/src/bsdiff/zstd/tests/fuzz/README.md +0 -161
  531. package/src/bsdiff/zstd/tests/fuzz/block_decompress.c +0 -53
  532. package/src/bsdiff/zstd/tests/fuzz/block_round_trip.c +0 -103
  533. package/src/bsdiff/zstd/tests/fuzz/decompress_cross_format.c +0 -130
  534. package/src/bsdiff/zstd/tests/fuzz/decompress_dstSize_tooSmall.c +0 -74
  535. package/src/bsdiff/zstd/tests/fuzz/dictionary_decompress.c +0 -77
  536. package/src/bsdiff/zstd/tests/fuzz/dictionary_loader.c +0 -106
  537. package/src/bsdiff/zstd/tests/fuzz/dictionary_round_trip.c +0 -155
  538. package/src/bsdiff/zstd/tests/fuzz/dictionary_stream_round_trip.c +0 -209
  539. package/src/bsdiff/zstd/tests/fuzz/fse_read_ncount.c +0 -100
  540. package/src/bsdiff/zstd/tests/fuzz/fuzz.h +0 -57
  541. package/src/bsdiff/zstd/tests/fuzz/fuzz.py +0 -911
  542. package/src/bsdiff/zstd/tests/fuzz/fuzz_data_producer.c +0 -95
  543. package/src/bsdiff/zstd/tests/fuzz/fuzz_data_producer.h +0 -66
  544. package/src/bsdiff/zstd/tests/fuzz/fuzz_helpers.c +0 -48
  545. package/src/bsdiff/zstd/tests/fuzz/fuzz_helpers.h +0 -81
  546. package/src/bsdiff/zstd/tests/fuzz/fuzz_third_party_seq_prod.h +0 -116
  547. package/src/bsdiff/zstd/tests/fuzz/generate_sequences.c +0 -88
  548. package/src/bsdiff/zstd/tests/fuzz/huf_decompress.c +0 -68
  549. package/src/bsdiff/zstd/tests/fuzz/huf_round_trip.c +0 -137
  550. package/src/bsdiff/zstd/tests/fuzz/raw_dictionary_round_trip.c +0 -119
  551. package/src/bsdiff/zstd/tests/fuzz/regression_driver.c +0 -90
  552. package/src/bsdiff/zstd/tests/fuzz/seekable_roundtrip.c +0 -88
  553. package/src/bsdiff/zstd/tests/fuzz/seq_prod_fuzz_example/Makefile +0 -16
  554. package/src/bsdiff/zstd/tests/fuzz/seq_prod_fuzz_example/README.md +0 -12
  555. package/src/bsdiff/zstd/tests/fuzz/seq_prod_fuzz_example/example_seq_prod.c +0 -52
  556. package/src/bsdiff/zstd/tests/fuzz/sequence_compression_api.c +0 -381
  557. package/src/bsdiff/zstd/tests/fuzz/simple_compress.c +0 -60
  558. package/src/bsdiff/zstd/tests/fuzz/simple_decompress.c +0 -59
  559. package/src/bsdiff/zstd/tests/fuzz/simple_round_trip.c +0 -182
  560. package/src/bsdiff/zstd/tests/fuzz/stream_decompress.c +0 -119
  561. package/src/bsdiff/zstd/tests/fuzz/stream_round_trip.c +0 -218
  562. package/src/bsdiff/zstd/tests/fuzz/zstd_frame_info.c +0 -43
  563. package/src/bsdiff/zstd/tests/fuzz/zstd_helpers.c +0 -207
  564. package/src/bsdiff/zstd/tests/fuzz/zstd_helpers.h +0 -56
  565. package/src/bsdiff/zstd/tests/fuzzer.c +0 -4933
  566. package/src/bsdiff/zstd/tests/golden-compression/PR-3517-block-splitter-corruption-test +0 -1
  567. package/src/bsdiff/zstd/tests/golden-compression/http +0 -1
  568. package/src/bsdiff/zstd/tests/golden-compression/huffman-compressed-larger +0 -0
  569. package/src/bsdiff/zstd/tests/golden-compression/large-literal-and-match-lengths +0 -0
  570. package/src/bsdiff/zstd/tests/golden-decompression/block-128k.zst +0 -0
  571. package/src/bsdiff/zstd/tests/golden-decompression/empty-block.zst +0 -0
  572. package/src/bsdiff/zstd/tests/golden-decompression/rle-first-block.zst +0 -0
  573. package/src/bsdiff/zstd/tests/golden-decompression/zeroSeq_2B.zst +0 -0
  574. package/src/bsdiff/zstd/tests/golden-decompression-errors/off0.bin.zst +0 -0
  575. package/src/bsdiff/zstd/tests/golden-decompression-errors/zeroSeq_extraneous.zst +0 -0
  576. package/src/bsdiff/zstd/tests/golden-dictionaries/http-dict-missing-symbols +0 -0
  577. package/src/bsdiff/zstd/tests/gzip/Makefile +0 -45
  578. package/src/bsdiff/zstd/tests/gzip/gzip-env.sh +0 -46
  579. package/src/bsdiff/zstd/tests/gzip/helin-segv.sh +0 -31
  580. package/src/bsdiff/zstd/tests/gzip/help-version.sh +0 -270
  581. package/src/bsdiff/zstd/tests/gzip/hufts-segv.gz +0 -0
  582. package/src/bsdiff/zstd/tests/gzip/hufts.sh +0 -34
  583. package/src/bsdiff/zstd/tests/gzip/init.cfg +0 -5
  584. package/src/bsdiff/zstd/tests/gzip/init.sh +0 -616
  585. package/src/bsdiff/zstd/tests/gzip/keep.sh +0 -51
  586. package/src/bsdiff/zstd/tests/gzip/list.sh +0 -31
  587. package/src/bsdiff/zstd/tests/gzip/memcpy-abuse.sh +0 -34
  588. package/src/bsdiff/zstd/tests/gzip/mixed.sh +0 -68
  589. package/src/bsdiff/zstd/tests/gzip/null-suffix-clobber.sh +0 -35
  590. package/src/bsdiff/zstd/tests/gzip/stdin.sh +0 -31
  591. package/src/bsdiff/zstd/tests/gzip/test-driver.sh +0 -150
  592. package/src/bsdiff/zstd/tests/gzip/trailing-nul.sh +0 -37
  593. package/src/bsdiff/zstd/tests/gzip/unpack-invalid.sh +0 -36
  594. package/src/bsdiff/zstd/tests/gzip/z-suffix.sh +0 -30
  595. package/src/bsdiff/zstd/tests/gzip/zdiff.sh +0 -48
  596. package/src/bsdiff/zstd/tests/gzip/zgrep-context.sh +0 -47
  597. package/src/bsdiff/zstd/tests/gzip/zgrep-f.sh +0 -43
  598. package/src/bsdiff/zstd/tests/gzip/zgrep-signal.sh +0 -64
  599. package/src/bsdiff/zstd/tests/gzip/znew-k.sh +0 -40
  600. package/src/bsdiff/zstd/tests/invalidDictionaries.c +0 -61
  601. package/src/bsdiff/zstd/tests/legacy.c +0 -260
  602. package/src/bsdiff/zstd/tests/libzstd_builds.sh +0 -104
  603. package/src/bsdiff/zstd/tests/longmatch.c +0 -102
  604. package/src/bsdiff/zstd/tests/loremOut.c +0 -50
  605. package/src/bsdiff/zstd/tests/loremOut.h +0 -15
  606. package/src/bsdiff/zstd/tests/paramgrill.c +0 -2966
  607. package/src/bsdiff/zstd/tests/playTests.sh +0 -1928
  608. package/src/bsdiff/zstd/tests/poolTests.c +0 -271
  609. package/src/bsdiff/zstd/tests/rateLimiter.py +0 -41
  610. package/src/bsdiff/zstd/tests/regression/Makefile +0 -60
  611. package/src/bsdiff/zstd/tests/regression/README.md +0 -28
  612. package/src/bsdiff/zstd/tests/regression/config.c +0 -404
  613. package/src/bsdiff/zstd/tests/regression/config.h +0 -91
  614. package/src/bsdiff/zstd/tests/regression/data.c +0 -631
  615. package/src/bsdiff/zstd/tests/regression/data.h +0 -121
  616. package/src/bsdiff/zstd/tests/regression/levels.h +0 -59
  617. package/src/bsdiff/zstd/tests/regression/method.c +0 -701
  618. package/src/bsdiff/zstd/tests/regression/method.h +0 -65
  619. package/src/bsdiff/zstd/tests/regression/result.c +0 -28
  620. package/src/bsdiff/zstd/tests/regression/result.h +0 -103
  621. package/src/bsdiff/zstd/tests/regression/results.csv +0 -1480
  622. package/src/bsdiff/zstd/tests/regression/test.c +0 -362
  623. package/src/bsdiff/zstd/tests/roundTripCrash.c +0 -241
  624. package/src/bsdiff/zstd/tests/seqgen.c +0 -260
  625. package/src/bsdiff/zstd/tests/seqgen.h +0 -58
  626. package/src/bsdiff/zstd/tests/test-license.py +0 -156
  627. package/src/bsdiff/zstd/tests/test-variants.sh +0 -115
  628. package/src/bsdiff/zstd/tests/test-zstd-versions.py +0 -308
  629. package/src/bsdiff/zstd/tests/zstreamtest.c +0 -3407
  630. package/src/bsdiff/zstd/zlibWrapper/BUCK +0 -22
  631. package/src/bsdiff/zstd/zlibWrapper/Makefile +0 -120
  632. package/src/bsdiff/zstd/zlibWrapper/README.md +0 -163
  633. package/src/bsdiff/zstd/zlibWrapper/examples/example.c +0 -598
  634. package/src/bsdiff/zstd/zlibWrapper/examples/example_original.c +0 -599
  635. package/src/bsdiff/zstd/zlibWrapper/examples/fitblk.c +0 -254
  636. package/src/bsdiff/zstd/zlibWrapper/examples/fitblk_original.c +0 -233
  637. package/src/bsdiff/zstd/zlibWrapper/examples/minigzip.c +0 -605
  638. package/src/bsdiff/zstd/zlibWrapper/examples/zwrapbench.c +0 -1018
  639. package/src/bsdiff/zstd/zlibWrapper/gzclose.c +0 -26
  640. package/src/bsdiff/zstd/zlibWrapper/gzcompatibility.h +0 -68
  641. package/src/bsdiff/zstd/zlibWrapper/gzguts.h +0 -229
  642. package/src/bsdiff/zstd/zlibWrapper/gzlib.c +0 -587
  643. package/src/bsdiff/zstd/zlibWrapper/gzread.c +0 -637
  644. package/src/bsdiff/zstd/zlibWrapper/gzwrite.c +0 -631
  645. package/src/bsdiff/zstd/zlibWrapper/zstd_zlibwrapper.c +0 -1200
  646. package/src/bsdiff/zstd/zlibWrapper/zstd_zlibwrapper.h +0 -91
  647. package/src/objc/build/objcWrapper.o +0 -0
  648. package/src/objc/objcWrapper.m +0 -1380
  649. package/src/zig/build/index.js +0 -782
  650. package/src/zig/build/libObjcWrapper.a +0 -0
  651. package/src/zig/build.zig +0 -29
  652. package/src/zig/macos/application.zig +0 -6
  653. package/src/zig/macos/objc.zig +0 -123
  654. package/src/zig/macos/tray.zig +0 -102
  655. package/src/zig/macos/webview.zig +0 -693
  656. package/src/zig/macos/window.zig +0 -189
  657. package/src/zig/main.zig +0 -16
  658. package/src/zig/rpc/pipesin.zig +0 -202
  659. package/src/zig/rpc/rpc.zig +0 -19
  660. package/src/zig/rpc/schema/handlers.zig +0 -402
  661. package/src/zig/rpc/schema/request.zig +0 -59
  662. package/src/zig/rpc/schema/schema.zig +0 -412
  663. package/src/zig/rpc/stdin.zig +0 -112
  664. package/src/zig/rpc/stdout.zig +0 -106
  665. package/src/zig/rpc/types.zig +0 -41
  666. package/src/zig/utils.zig +0 -49
  667. package/src/zig/zig-out/bin/webview +0 -0
@@ -1,1133 +0,0 @@
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
- /*-**************************************
13
- * Tuning parameters
14
- ****************************************/
15
- #define MINRATIO 4 /* minimum nb of apparition to be selected in dictionary */
16
- #define ZDICT_MAX_SAMPLES_SIZE (2000U << 20)
17
- #define ZDICT_MIN_SAMPLES_SIZE (ZDICT_CONTENTSIZE_MIN * MINRATIO)
18
-
19
-
20
- /*-**************************************
21
- * Compiler Options
22
- ****************************************/
23
- /* Unix Large Files support (>4GB) */
24
- #define _FILE_OFFSET_BITS 64
25
- #if (defined(__sun__) && (!defined(__LP64__))) /* Sun Solaris 32-bits requires specific definitions */
26
- # ifndef _LARGEFILE_SOURCE
27
- # define _LARGEFILE_SOURCE
28
- # endif
29
- #elif ! defined(__LP64__) /* No point defining Large file for 64 bit */
30
- # ifndef _LARGEFILE64_SOURCE
31
- # define _LARGEFILE64_SOURCE
32
- # endif
33
- #endif
34
-
35
-
36
- /*-*************************************
37
- * Dependencies
38
- ***************************************/
39
- #include <stdlib.h> /* malloc, free */
40
- #include <string.h> /* memset */
41
- #include <stdio.h> /* fprintf, fopen, ftello64 */
42
- #include <time.h> /* clock */
43
-
44
- #ifndef ZDICT_STATIC_LINKING_ONLY
45
- # define ZDICT_STATIC_LINKING_ONLY
46
- #endif
47
-
48
- #include "../common/mem.h" /* read */
49
- #include "../common/fse.h" /* FSE_normalizeCount, FSE_writeNCount */
50
- #include "../common/huf.h" /* HUF_buildCTable, HUF_writeCTable */
51
- #include "../common/zstd_internal.h" /* includes zstd.h */
52
- #include "../common/xxhash.h" /* XXH64 */
53
- #include "../compress/zstd_compress_internal.h" /* ZSTD_loadCEntropy() */
54
- #include "../zdict.h"
55
- #include "divsufsort.h"
56
- #include "../common/bits.h" /* ZSTD_NbCommonBytes */
57
-
58
-
59
- /*-*************************************
60
- * Constants
61
- ***************************************/
62
- #define KB *(1 <<10)
63
- #define MB *(1 <<20)
64
- #define GB *(1U<<30)
65
-
66
- #define DICTLISTSIZE_DEFAULT 10000
67
-
68
- #define NOISELENGTH 32
69
-
70
- static const U32 g_selectivity_default = 9;
71
-
72
-
73
- /*-*************************************
74
- * Console display
75
- ***************************************/
76
- #undef DISPLAY
77
- #define DISPLAY(...) do { fprintf(stderr, __VA_ARGS__); fflush( stderr ); } while (0)
78
- #undef DISPLAYLEVEL
79
- #define DISPLAYLEVEL(l, ...) do { if (notificationLevel>=l) { DISPLAY(__VA_ARGS__); } } while (0) /* 0 : no display; 1: errors; 2: default; 3: details; 4: debug */
80
-
81
- static clock_t ZDICT_clockSpan(clock_t nPrevious) { return clock() - nPrevious; }
82
-
83
- static void ZDICT_printHex(const void* ptr, size_t length)
84
- {
85
- const BYTE* const b = (const BYTE*)ptr;
86
- size_t u;
87
- for (u=0; u<length; u++) {
88
- BYTE c = b[u];
89
- if (c<32 || c>126) c = '.'; /* non-printable char */
90
- DISPLAY("%c", c);
91
- }
92
- }
93
-
94
-
95
- /*-********************************************************
96
- * Helper functions
97
- **********************************************************/
98
- unsigned ZDICT_isError(size_t errorCode) { return ERR_isError(errorCode); }
99
-
100
- const char* ZDICT_getErrorName(size_t errorCode) { return ERR_getErrorName(errorCode); }
101
-
102
- unsigned ZDICT_getDictID(const void* dictBuffer, size_t dictSize)
103
- {
104
- if (dictSize < 8) return 0;
105
- if (MEM_readLE32(dictBuffer) != ZSTD_MAGIC_DICTIONARY) return 0;
106
- return MEM_readLE32((const char*)dictBuffer + 4);
107
- }
108
-
109
- size_t ZDICT_getDictHeaderSize(const void* dictBuffer, size_t dictSize)
110
- {
111
- size_t headerSize;
112
- if (dictSize <= 8 || MEM_readLE32(dictBuffer) != ZSTD_MAGIC_DICTIONARY) return ERROR(dictionary_corrupted);
113
-
114
- { ZSTD_compressedBlockState_t* bs = (ZSTD_compressedBlockState_t*)malloc(sizeof(ZSTD_compressedBlockState_t));
115
- U32* wksp = (U32*)malloc(HUF_WORKSPACE_SIZE);
116
- if (!bs || !wksp) {
117
- headerSize = ERROR(memory_allocation);
118
- } else {
119
- ZSTD_reset_compressedBlockState(bs);
120
- headerSize = ZSTD_loadCEntropy(bs, wksp, dictBuffer, dictSize);
121
- }
122
-
123
- free(bs);
124
- free(wksp);
125
- }
126
-
127
- return headerSize;
128
- }
129
-
130
- /*-********************************************************
131
- * Dictionary training functions
132
- **********************************************************/
133
- /*! ZDICT_count() :
134
- Count the nb of common bytes between 2 pointers.
135
- Note : this function presumes end of buffer followed by noisy guard band.
136
- */
137
- static size_t ZDICT_count(const void* pIn, const void* pMatch)
138
- {
139
- const char* const pStart = (const char*)pIn;
140
- for (;;) {
141
- size_t const diff = MEM_readST(pMatch) ^ MEM_readST(pIn);
142
- if (!diff) {
143
- pIn = (const char*)pIn+sizeof(size_t);
144
- pMatch = (const char*)pMatch+sizeof(size_t);
145
- continue;
146
- }
147
- pIn = (const char*)pIn+ZSTD_NbCommonBytes(diff);
148
- return (size_t)((const char*)pIn - pStart);
149
- }
150
- }
151
-
152
-
153
- typedef struct {
154
- U32 pos;
155
- U32 length;
156
- U32 savings;
157
- } dictItem;
158
-
159
- static void ZDICT_initDictItem(dictItem* d)
160
- {
161
- d->pos = 1;
162
- d->length = 0;
163
- d->savings = (U32)(-1);
164
- }
165
-
166
-
167
- #define LLIMIT 64 /* heuristic determined experimentally */
168
- #define MINMATCHLENGTH 7 /* heuristic determined experimentally */
169
- static dictItem ZDICT_analyzePos(
170
- BYTE* doneMarks,
171
- const int* suffix, U32 start,
172
- const void* buffer, U32 minRatio, U32 notificationLevel)
173
- {
174
- U32 lengthList[LLIMIT] = {0};
175
- U32 cumulLength[LLIMIT] = {0};
176
- U32 savings[LLIMIT] = {0};
177
- const BYTE* b = (const BYTE*)buffer;
178
- size_t maxLength = LLIMIT;
179
- size_t pos = (size_t)suffix[start];
180
- U32 end = start;
181
- dictItem solution;
182
-
183
- /* init */
184
- memset(&solution, 0, sizeof(solution));
185
- doneMarks[pos] = 1;
186
-
187
- /* trivial repetition cases */
188
- if ( (MEM_read16(b+pos+0) == MEM_read16(b+pos+2))
189
- ||(MEM_read16(b+pos+1) == MEM_read16(b+pos+3))
190
- ||(MEM_read16(b+pos+2) == MEM_read16(b+pos+4)) ) {
191
- /* skip and mark segment */
192
- U16 const pattern16 = MEM_read16(b+pos+4);
193
- U32 u, patternEnd = 6;
194
- while (MEM_read16(b+pos+patternEnd) == pattern16) patternEnd+=2 ;
195
- if (b[pos+patternEnd] == b[pos+patternEnd-1]) patternEnd++;
196
- for (u=1; u<patternEnd; u++)
197
- doneMarks[pos+u] = 1;
198
- return solution;
199
- }
200
-
201
- /* look forward */
202
- { size_t length;
203
- do {
204
- end++;
205
- length = ZDICT_count(b + pos, b + suffix[end]);
206
- } while (length >= MINMATCHLENGTH);
207
- }
208
-
209
- /* look backward */
210
- { size_t length;
211
- do {
212
- length = ZDICT_count(b + pos, b + *(suffix+start-1));
213
- if (length >=MINMATCHLENGTH) start--;
214
- } while(length >= MINMATCHLENGTH);
215
- }
216
-
217
- /* exit if not found a minimum nb of repetitions */
218
- if (end-start < minRatio) {
219
- U32 idx;
220
- for(idx=start; idx<end; idx++)
221
- doneMarks[suffix[idx]] = 1;
222
- return solution;
223
- }
224
-
225
- { int i;
226
- U32 mml;
227
- U32 refinedStart = start;
228
- U32 refinedEnd = end;
229
-
230
- DISPLAYLEVEL(4, "\n");
231
- DISPLAYLEVEL(4, "found %3u matches of length >= %i at pos %7u ", (unsigned)(end-start), MINMATCHLENGTH, (unsigned)pos);
232
- DISPLAYLEVEL(4, "\n");
233
-
234
- for (mml = MINMATCHLENGTH ; ; mml++) {
235
- BYTE currentChar = 0;
236
- U32 currentCount = 0;
237
- U32 currentID = refinedStart;
238
- U32 id;
239
- U32 selectedCount = 0;
240
- U32 selectedID = currentID;
241
- for (id =refinedStart; id < refinedEnd; id++) {
242
- if (b[suffix[id] + mml] != currentChar) {
243
- if (currentCount > selectedCount) {
244
- selectedCount = currentCount;
245
- selectedID = currentID;
246
- }
247
- currentID = id;
248
- currentChar = b[ suffix[id] + mml];
249
- currentCount = 0;
250
- }
251
- currentCount ++;
252
- }
253
- if (currentCount > selectedCount) { /* for last */
254
- selectedCount = currentCount;
255
- selectedID = currentID;
256
- }
257
-
258
- if (selectedCount < minRatio)
259
- break;
260
- refinedStart = selectedID;
261
- refinedEnd = refinedStart + selectedCount;
262
- }
263
-
264
- /* evaluate gain based on new dict */
265
- start = refinedStart;
266
- pos = suffix[refinedStart];
267
- end = start;
268
- memset(lengthList, 0, sizeof(lengthList));
269
-
270
- /* look forward */
271
- { size_t length;
272
- do {
273
- end++;
274
- length = ZDICT_count(b + pos, b + suffix[end]);
275
- if (length >= LLIMIT) length = LLIMIT-1;
276
- lengthList[length]++;
277
- } while (length >=MINMATCHLENGTH);
278
- }
279
-
280
- /* look backward */
281
- { size_t length = MINMATCHLENGTH;
282
- while ((length >= MINMATCHLENGTH) & (start > 0)) {
283
- length = ZDICT_count(b + pos, b + suffix[start - 1]);
284
- if (length >= LLIMIT) length = LLIMIT - 1;
285
- lengthList[length]++;
286
- if (length >= MINMATCHLENGTH) start--;
287
- }
288
- }
289
-
290
- /* largest useful length */
291
- memset(cumulLength, 0, sizeof(cumulLength));
292
- cumulLength[maxLength-1] = lengthList[maxLength-1];
293
- for (i=(int)(maxLength-2); i>=0; i--)
294
- cumulLength[i] = cumulLength[i+1] + lengthList[i];
295
-
296
- for (i=LLIMIT-1; i>=MINMATCHLENGTH; i--) if (cumulLength[i]>=minRatio) break;
297
- maxLength = i;
298
-
299
- /* reduce maxLength in case of final into repetitive data */
300
- { U32 l = (U32)maxLength;
301
- BYTE const c = b[pos + maxLength-1];
302
- while (b[pos+l-2]==c) l--;
303
- maxLength = l;
304
- }
305
- if (maxLength < MINMATCHLENGTH) return solution; /* skip : no long-enough solution */
306
-
307
- /* calculate savings */
308
- savings[5] = 0;
309
- for (i=MINMATCHLENGTH; i<=(int)maxLength; i++)
310
- savings[i] = savings[i-1] + (lengthList[i] * (i-3));
311
-
312
- DISPLAYLEVEL(4, "Selected dict at position %u, of length %u : saves %u (ratio: %.2f) \n",
313
- (unsigned)pos, (unsigned)maxLength, (unsigned)savings[maxLength], (double)savings[maxLength] / (double)maxLength);
314
-
315
- solution.pos = (U32)pos;
316
- solution.length = (U32)maxLength;
317
- solution.savings = savings[maxLength];
318
-
319
- /* mark positions done */
320
- { U32 id;
321
- for (id=start; id<end; id++) {
322
- U32 p, pEnd, length;
323
- U32 const testedPos = (U32)suffix[id];
324
- if (testedPos == pos)
325
- length = solution.length;
326
- else {
327
- length = (U32)ZDICT_count(b+pos, b+testedPos);
328
- if (length > solution.length) length = solution.length;
329
- }
330
- pEnd = (U32)(testedPos + length);
331
- for (p=testedPos; p<pEnd; p++)
332
- doneMarks[p] = 1;
333
- } } }
334
-
335
- return solution;
336
- }
337
-
338
-
339
- static int isIncluded(const void* in, const void* container, size_t length)
340
- {
341
- const char* const ip = (const char*) in;
342
- const char* const into = (const char*) container;
343
- size_t u;
344
-
345
- for (u=0; u<length; u++) { /* works because end of buffer is a noisy guard band */
346
- if (ip[u] != into[u]) break;
347
- }
348
-
349
- return u==length;
350
- }
351
-
352
- /*! ZDICT_tryMerge() :
353
- check if dictItem can be merged, do it if possible
354
- @return : id of destination elt, 0 if not merged
355
- */
356
- static U32 ZDICT_tryMerge(dictItem* table, dictItem elt, U32 eltNbToSkip, const void* buffer)
357
- {
358
- const U32 tableSize = table->pos;
359
- const U32 eltEnd = elt.pos + elt.length;
360
- const char* const buf = (const char*) buffer;
361
-
362
- /* tail overlap */
363
- U32 u; for (u=1; u<tableSize; u++) {
364
- if (u==eltNbToSkip) continue;
365
- if ((table[u].pos > elt.pos) && (table[u].pos <= eltEnd)) { /* overlap, existing > new */
366
- /* append */
367
- U32 const addedLength = table[u].pos - elt.pos;
368
- table[u].length += addedLength;
369
- table[u].pos = elt.pos;
370
- table[u].savings += elt.savings * addedLength / elt.length; /* rough approx */
371
- table[u].savings += elt.length / 8; /* rough approx bonus */
372
- elt = table[u];
373
- /* sort : improve rank */
374
- while ((u>1) && (table[u-1].savings < elt.savings))
375
- table[u] = table[u-1], u--;
376
- table[u] = elt;
377
- return u;
378
- } }
379
-
380
- /* front overlap */
381
- for (u=1; u<tableSize; u++) {
382
- if (u==eltNbToSkip) continue;
383
-
384
- if ((table[u].pos + table[u].length >= elt.pos) && (table[u].pos < elt.pos)) { /* overlap, existing < new */
385
- /* append */
386
- int const addedLength = (int)eltEnd - (int)(table[u].pos + table[u].length);
387
- table[u].savings += elt.length / 8; /* rough approx bonus */
388
- if (addedLength > 0) { /* otherwise, elt fully included into existing */
389
- table[u].length += addedLength;
390
- table[u].savings += elt.savings * addedLength / elt.length; /* rough approx */
391
- }
392
- /* sort : improve rank */
393
- elt = table[u];
394
- while ((u>1) && (table[u-1].savings < elt.savings))
395
- table[u] = table[u-1], u--;
396
- table[u] = elt;
397
- return u;
398
- }
399
-
400
- if (MEM_read64(buf + table[u].pos) == MEM_read64(buf + elt.pos + 1)) {
401
- if (isIncluded(buf + table[u].pos, buf + elt.pos + 1, table[u].length)) {
402
- size_t const addedLength = MAX( (int)elt.length - (int)table[u].length , 1 );
403
- table[u].pos = elt.pos;
404
- table[u].savings += (U32)(elt.savings * addedLength / elt.length);
405
- table[u].length = MIN(elt.length, table[u].length + 1);
406
- return u;
407
- }
408
- }
409
- }
410
-
411
- return 0;
412
- }
413
-
414
-
415
- static void ZDICT_removeDictItem(dictItem* table, U32 id)
416
- {
417
- /* convention : table[0].pos stores nb of elts */
418
- U32 const max = table[0].pos;
419
- U32 u;
420
- if (!id) return; /* protection, should never happen */
421
- for (u=id; u<max-1; u++)
422
- table[u] = table[u+1];
423
- table->pos--;
424
- }
425
-
426
-
427
- static void ZDICT_insertDictItem(dictItem* table, U32 maxSize, dictItem elt, const void* buffer)
428
- {
429
- /* merge if possible */
430
- U32 mergeId = ZDICT_tryMerge(table, elt, 0, buffer);
431
- if (mergeId) {
432
- U32 newMerge = 1;
433
- while (newMerge) {
434
- newMerge = ZDICT_tryMerge(table, table[mergeId], mergeId, buffer);
435
- if (newMerge) ZDICT_removeDictItem(table, mergeId);
436
- mergeId = newMerge;
437
- }
438
- return;
439
- }
440
-
441
- /* insert */
442
- { U32 current;
443
- U32 nextElt = table->pos;
444
- if (nextElt >= maxSize) nextElt = maxSize-1;
445
- current = nextElt-1;
446
- while (table[current].savings < elt.savings) {
447
- table[current+1] = table[current];
448
- current--;
449
- }
450
- table[current+1] = elt;
451
- table->pos = nextElt+1;
452
- }
453
- }
454
-
455
-
456
- static U32 ZDICT_dictSize(const dictItem* dictList)
457
- {
458
- U32 u, dictSize = 0;
459
- for (u=1; u<dictList[0].pos; u++)
460
- dictSize += dictList[u].length;
461
- return dictSize;
462
- }
463
-
464
-
465
- static size_t ZDICT_trainBuffer_legacy(dictItem* dictList, U32 dictListSize,
466
- const void* const buffer, size_t bufferSize, /* buffer must end with noisy guard band */
467
- const size_t* fileSizes, unsigned nbFiles,
468
- unsigned minRatio, U32 notificationLevel)
469
- {
470
- int* const suffix0 = (int*)malloc((bufferSize+2)*sizeof(*suffix0));
471
- int* const suffix = suffix0+1;
472
- U32* reverseSuffix = (U32*)malloc((bufferSize)*sizeof(*reverseSuffix));
473
- BYTE* doneMarks = (BYTE*)malloc((bufferSize+16)*sizeof(*doneMarks)); /* +16 for overflow security */
474
- U32* filePos = (U32*)malloc(nbFiles * sizeof(*filePos));
475
- size_t result = 0;
476
- clock_t displayClock = 0;
477
- clock_t const refreshRate = CLOCKS_PER_SEC * 3 / 10;
478
-
479
- # undef DISPLAYUPDATE
480
- # define DISPLAYUPDATE(l, ...) \
481
- do { \
482
- if (notificationLevel>=l) { \
483
- if (ZDICT_clockSpan(displayClock) > refreshRate) { \
484
- displayClock = clock(); \
485
- DISPLAY(__VA_ARGS__); \
486
- } \
487
- if (notificationLevel>=4) fflush(stderr); \
488
- } \
489
- } while (0)
490
-
491
- /* init */
492
- DISPLAYLEVEL(2, "\r%70s\r", ""); /* clean display line */
493
- if (!suffix0 || !reverseSuffix || !doneMarks || !filePos) {
494
- result = ERROR(memory_allocation);
495
- goto _cleanup;
496
- }
497
- if (minRatio < MINRATIO) minRatio = MINRATIO;
498
- memset(doneMarks, 0, bufferSize+16);
499
-
500
- /* limit sample set size (divsufsort limitation)*/
501
- if (bufferSize > ZDICT_MAX_SAMPLES_SIZE) DISPLAYLEVEL(3, "sample set too large : reduced to %u MB ...\n", (unsigned)(ZDICT_MAX_SAMPLES_SIZE>>20));
502
- while (bufferSize > ZDICT_MAX_SAMPLES_SIZE) bufferSize -= fileSizes[--nbFiles];
503
-
504
- /* sort */
505
- DISPLAYLEVEL(2, "sorting %u files of total size %u MB ...\n", nbFiles, (unsigned)(bufferSize>>20));
506
- { int const divSuftSortResult = divsufsort((const unsigned char*)buffer, suffix, (int)bufferSize, 0);
507
- if (divSuftSortResult != 0) { result = ERROR(GENERIC); goto _cleanup; }
508
- }
509
- suffix[bufferSize] = (int)bufferSize; /* leads into noise */
510
- suffix0[0] = (int)bufferSize; /* leads into noise */
511
- /* build reverse suffix sort */
512
- { size_t pos;
513
- for (pos=0; pos < bufferSize; pos++)
514
- reverseSuffix[suffix[pos]] = (U32)pos;
515
- /* note filePos tracks borders between samples.
516
- It's not used at this stage, but planned to become useful in a later update */
517
- filePos[0] = 0;
518
- for (pos=1; pos<nbFiles; pos++)
519
- filePos[pos] = (U32)(filePos[pos-1] + fileSizes[pos-1]);
520
- }
521
-
522
- DISPLAYLEVEL(2, "finding patterns ... \n");
523
- DISPLAYLEVEL(3, "minimum ratio : %u \n", minRatio);
524
-
525
- { U32 cursor; for (cursor=0; cursor < bufferSize; ) {
526
- dictItem solution;
527
- if (doneMarks[cursor]) { cursor++; continue; }
528
- solution = ZDICT_analyzePos(doneMarks, suffix, reverseSuffix[cursor], buffer, minRatio, notificationLevel);
529
- if (solution.length==0) { cursor++; continue; }
530
- ZDICT_insertDictItem(dictList, dictListSize, solution, buffer);
531
- cursor += solution.length;
532
- DISPLAYUPDATE(2, "\r%4.2f %% \r", (double)cursor / (double)bufferSize * 100.0);
533
- } }
534
-
535
- _cleanup:
536
- free(suffix0);
537
- free(reverseSuffix);
538
- free(doneMarks);
539
- free(filePos);
540
- return result;
541
- }
542
-
543
-
544
- static void ZDICT_fillNoise(void* buffer, size_t length)
545
- {
546
- unsigned const prime1 = 2654435761U;
547
- unsigned const prime2 = 2246822519U;
548
- unsigned acc = prime1;
549
- size_t p=0;
550
- for (p=0; p<length; p++) {
551
- acc *= prime2;
552
- ((unsigned char*)buffer)[p] = (unsigned char)(acc >> 21);
553
- }
554
- }
555
-
556
-
557
- typedef struct
558
- {
559
- ZSTD_CDict* dict; /* dictionary */
560
- ZSTD_CCtx* zc; /* working context */
561
- void* workPlace; /* must be ZSTD_BLOCKSIZE_MAX allocated */
562
- } EStats_ress_t;
563
-
564
- #define MAXREPOFFSET 1024
565
-
566
- static void ZDICT_countEStats(EStats_ress_t esr, const ZSTD_parameters* params,
567
- unsigned* countLit, unsigned* offsetcodeCount, unsigned* matchlengthCount, unsigned* litlengthCount, U32* repOffsets,
568
- const void* src, size_t srcSize,
569
- U32 notificationLevel)
570
- {
571
- size_t const blockSizeMax = MIN (ZSTD_BLOCKSIZE_MAX, 1 << params->cParams.windowLog);
572
- size_t cSize;
573
-
574
- if (srcSize > blockSizeMax) srcSize = blockSizeMax; /* protection vs large samples */
575
- { size_t const errorCode = ZSTD_compressBegin_usingCDict_deprecated(esr.zc, esr.dict);
576
- if (ZSTD_isError(errorCode)) { DISPLAYLEVEL(1, "warning : ZSTD_compressBegin_usingCDict failed \n"); return; }
577
-
578
- }
579
- cSize = ZSTD_compressBlock_deprecated(esr.zc, esr.workPlace, ZSTD_BLOCKSIZE_MAX, src, srcSize);
580
- if (ZSTD_isError(cSize)) { DISPLAYLEVEL(3, "warning : could not compress sample size %u \n", (unsigned)srcSize); return; }
581
-
582
- if (cSize) { /* if == 0; block is not compressible */
583
- const seqStore_t* const seqStorePtr = ZSTD_getSeqStore(esr.zc);
584
-
585
- /* literals stats */
586
- { const BYTE* bytePtr;
587
- for(bytePtr = seqStorePtr->litStart; bytePtr < seqStorePtr->lit; bytePtr++)
588
- countLit[*bytePtr]++;
589
- }
590
-
591
- /* seqStats */
592
- { U32 const nbSeq = (U32)(seqStorePtr->sequences - seqStorePtr->sequencesStart);
593
- ZSTD_seqToCodes(seqStorePtr);
594
-
595
- { const BYTE* codePtr = seqStorePtr->ofCode;
596
- U32 u;
597
- for (u=0; u<nbSeq; u++) offsetcodeCount[codePtr[u]]++;
598
- }
599
-
600
- { const BYTE* codePtr = seqStorePtr->mlCode;
601
- U32 u;
602
- for (u=0; u<nbSeq; u++) matchlengthCount[codePtr[u]]++;
603
- }
604
-
605
- { const BYTE* codePtr = seqStorePtr->llCode;
606
- U32 u;
607
- for (u=0; u<nbSeq; u++) litlengthCount[codePtr[u]]++;
608
- }
609
-
610
- if (nbSeq >= 2) { /* rep offsets */
611
- const seqDef* const seq = seqStorePtr->sequencesStart;
612
- U32 offset1 = seq[0].offBase - ZSTD_REP_NUM;
613
- U32 offset2 = seq[1].offBase - ZSTD_REP_NUM;
614
- if (offset1 >= MAXREPOFFSET) offset1 = 0;
615
- if (offset2 >= MAXREPOFFSET) offset2 = 0;
616
- repOffsets[offset1] += 3;
617
- repOffsets[offset2] += 1;
618
- } } }
619
- }
620
-
621
- static size_t ZDICT_totalSampleSize(const size_t* fileSizes, unsigned nbFiles)
622
- {
623
- size_t total=0;
624
- unsigned u;
625
- for (u=0; u<nbFiles; u++) total += fileSizes[u];
626
- return total;
627
- }
628
-
629
- typedef struct { U32 offset; U32 count; } offsetCount_t;
630
-
631
- static void ZDICT_insertSortCount(offsetCount_t table[ZSTD_REP_NUM+1], U32 val, U32 count)
632
- {
633
- U32 u;
634
- table[ZSTD_REP_NUM].offset = val;
635
- table[ZSTD_REP_NUM].count = count;
636
- for (u=ZSTD_REP_NUM; u>0; u--) {
637
- offsetCount_t tmp;
638
- if (table[u-1].count >= table[u].count) break;
639
- tmp = table[u-1];
640
- table[u-1] = table[u];
641
- table[u] = tmp;
642
- }
643
- }
644
-
645
- /* ZDICT_flatLit() :
646
- * rewrite `countLit` to contain a mostly flat but still compressible distribution of literals.
647
- * necessary to avoid generating a non-compressible distribution that HUF_writeCTable() cannot encode.
648
- */
649
- static void ZDICT_flatLit(unsigned* countLit)
650
- {
651
- int u;
652
- for (u=1; u<256; u++) countLit[u] = 2;
653
- countLit[0] = 4;
654
- countLit[253] = 1;
655
- countLit[254] = 1;
656
- }
657
-
658
- #define OFFCODE_MAX 30 /* only applicable to first block */
659
- static size_t ZDICT_analyzeEntropy(void* dstBuffer, size_t maxDstSize,
660
- int compressionLevel,
661
- const void* srcBuffer, const size_t* fileSizes, unsigned nbFiles,
662
- const void* dictBuffer, size_t dictBufferSize,
663
- unsigned notificationLevel)
664
- {
665
- unsigned countLit[256];
666
- HUF_CREATE_STATIC_CTABLE(hufTable, 255);
667
- unsigned offcodeCount[OFFCODE_MAX+1];
668
- short offcodeNCount[OFFCODE_MAX+1];
669
- U32 offcodeMax = ZSTD_highbit32((U32)(dictBufferSize + 128 KB));
670
- unsigned matchLengthCount[MaxML+1];
671
- short matchLengthNCount[MaxML+1];
672
- unsigned litLengthCount[MaxLL+1];
673
- short litLengthNCount[MaxLL+1];
674
- U32 repOffset[MAXREPOFFSET];
675
- offsetCount_t bestRepOffset[ZSTD_REP_NUM+1];
676
- EStats_ress_t esr = { NULL, NULL, NULL };
677
- ZSTD_parameters params;
678
- U32 u, huffLog = 11, Offlog = OffFSELog, mlLog = MLFSELog, llLog = LLFSELog, total;
679
- size_t pos = 0, errorCode;
680
- size_t eSize = 0;
681
- size_t const totalSrcSize = ZDICT_totalSampleSize(fileSizes, nbFiles);
682
- size_t const averageSampleSize = totalSrcSize / (nbFiles + !nbFiles);
683
- BYTE* dstPtr = (BYTE*)dstBuffer;
684
- U32 wksp[HUF_CTABLE_WORKSPACE_SIZE_U32];
685
-
686
- /* init */
687
- DEBUGLOG(4, "ZDICT_analyzeEntropy");
688
- if (offcodeMax>OFFCODE_MAX) { eSize = ERROR(dictionaryCreation_failed); goto _cleanup; } /* too large dictionary */
689
- for (u=0; u<256; u++) countLit[u] = 1; /* any character must be described */
690
- for (u=0; u<=offcodeMax; u++) offcodeCount[u] = 1;
691
- for (u=0; u<=MaxML; u++) matchLengthCount[u] = 1;
692
- for (u=0; u<=MaxLL; u++) litLengthCount[u] = 1;
693
- memset(repOffset, 0, sizeof(repOffset));
694
- repOffset[1] = repOffset[4] = repOffset[8] = 1;
695
- memset(bestRepOffset, 0, sizeof(bestRepOffset));
696
- if (compressionLevel==0) compressionLevel = ZSTD_CLEVEL_DEFAULT;
697
- params = ZSTD_getParams(compressionLevel, averageSampleSize, dictBufferSize);
698
-
699
- esr.dict = ZSTD_createCDict_advanced(dictBuffer, dictBufferSize, ZSTD_dlm_byRef, ZSTD_dct_rawContent, params.cParams, ZSTD_defaultCMem);
700
- esr.zc = ZSTD_createCCtx();
701
- esr.workPlace = malloc(ZSTD_BLOCKSIZE_MAX);
702
- if (!esr.dict || !esr.zc || !esr.workPlace) {
703
- eSize = ERROR(memory_allocation);
704
- DISPLAYLEVEL(1, "Not enough memory \n");
705
- goto _cleanup;
706
- }
707
-
708
- /* collect stats on all samples */
709
- for (u=0; u<nbFiles; u++) {
710
- ZDICT_countEStats(esr, &params,
711
- countLit, offcodeCount, matchLengthCount, litLengthCount, repOffset,
712
- (const char*)srcBuffer + pos, fileSizes[u],
713
- notificationLevel);
714
- pos += fileSizes[u];
715
- }
716
-
717
- if (notificationLevel >= 4) {
718
- /* writeStats */
719
- DISPLAYLEVEL(4, "Offset Code Frequencies : \n");
720
- for (u=0; u<=offcodeMax; u++) {
721
- DISPLAYLEVEL(4, "%2u :%7u \n", u, offcodeCount[u]);
722
- } }
723
-
724
- /* analyze, build stats, starting with literals */
725
- { size_t maxNbBits = HUF_buildCTable_wksp(hufTable, countLit, 255, huffLog, wksp, sizeof(wksp));
726
- if (HUF_isError(maxNbBits)) {
727
- eSize = maxNbBits;
728
- DISPLAYLEVEL(1, " HUF_buildCTable error \n");
729
- goto _cleanup;
730
- }
731
- if (maxNbBits==8) { /* not compressible : will fail on HUF_writeCTable() */
732
- DISPLAYLEVEL(2, "warning : pathological dataset : literals are not compressible : samples are noisy or too regular \n");
733
- ZDICT_flatLit(countLit); /* replace distribution by a fake "mostly flat but still compressible" distribution, that HUF_writeCTable() can encode */
734
- maxNbBits = HUF_buildCTable_wksp(hufTable, countLit, 255, huffLog, wksp, sizeof(wksp));
735
- assert(maxNbBits==9);
736
- }
737
- huffLog = (U32)maxNbBits;
738
- }
739
-
740
- /* looking for most common first offsets */
741
- { U32 offset;
742
- for (offset=1; offset<MAXREPOFFSET; offset++)
743
- ZDICT_insertSortCount(bestRepOffset, offset, repOffset[offset]);
744
- }
745
- /* note : the result of this phase should be used to better appreciate the impact on statistics */
746
-
747
- total=0; for (u=0; u<=offcodeMax; u++) total+=offcodeCount[u];
748
- errorCode = FSE_normalizeCount(offcodeNCount, Offlog, offcodeCount, total, offcodeMax, /* useLowProbCount */ 1);
749
- if (FSE_isError(errorCode)) {
750
- eSize = errorCode;
751
- DISPLAYLEVEL(1, "FSE_normalizeCount error with offcodeCount \n");
752
- goto _cleanup;
753
- }
754
- Offlog = (U32)errorCode;
755
-
756
- total=0; for (u=0; u<=MaxML; u++) total+=matchLengthCount[u];
757
- errorCode = FSE_normalizeCount(matchLengthNCount, mlLog, matchLengthCount, total, MaxML, /* useLowProbCount */ 1);
758
- if (FSE_isError(errorCode)) {
759
- eSize = errorCode;
760
- DISPLAYLEVEL(1, "FSE_normalizeCount error with matchLengthCount \n");
761
- goto _cleanup;
762
- }
763
- mlLog = (U32)errorCode;
764
-
765
- total=0; for (u=0; u<=MaxLL; u++) total+=litLengthCount[u];
766
- errorCode = FSE_normalizeCount(litLengthNCount, llLog, litLengthCount, total, MaxLL, /* useLowProbCount */ 1);
767
- if (FSE_isError(errorCode)) {
768
- eSize = errorCode;
769
- DISPLAYLEVEL(1, "FSE_normalizeCount error with litLengthCount \n");
770
- goto _cleanup;
771
- }
772
- llLog = (U32)errorCode;
773
-
774
- /* write result to buffer */
775
- { size_t const hhSize = HUF_writeCTable_wksp(dstPtr, maxDstSize, hufTable, 255, huffLog, wksp, sizeof(wksp));
776
- if (HUF_isError(hhSize)) {
777
- eSize = hhSize;
778
- DISPLAYLEVEL(1, "HUF_writeCTable error \n");
779
- goto _cleanup;
780
- }
781
- dstPtr += hhSize;
782
- maxDstSize -= hhSize;
783
- eSize += hhSize;
784
- }
785
-
786
- { size_t const ohSize = FSE_writeNCount(dstPtr, maxDstSize, offcodeNCount, OFFCODE_MAX, Offlog);
787
- if (FSE_isError(ohSize)) {
788
- eSize = ohSize;
789
- DISPLAYLEVEL(1, "FSE_writeNCount error with offcodeNCount \n");
790
- goto _cleanup;
791
- }
792
- dstPtr += ohSize;
793
- maxDstSize -= ohSize;
794
- eSize += ohSize;
795
- }
796
-
797
- { size_t const mhSize = FSE_writeNCount(dstPtr, maxDstSize, matchLengthNCount, MaxML, mlLog);
798
- if (FSE_isError(mhSize)) {
799
- eSize = mhSize;
800
- DISPLAYLEVEL(1, "FSE_writeNCount error with matchLengthNCount \n");
801
- goto _cleanup;
802
- }
803
- dstPtr += mhSize;
804
- maxDstSize -= mhSize;
805
- eSize += mhSize;
806
- }
807
-
808
- { size_t const lhSize = FSE_writeNCount(dstPtr, maxDstSize, litLengthNCount, MaxLL, llLog);
809
- if (FSE_isError(lhSize)) {
810
- eSize = lhSize;
811
- DISPLAYLEVEL(1, "FSE_writeNCount error with litlengthNCount \n");
812
- goto _cleanup;
813
- }
814
- dstPtr += lhSize;
815
- maxDstSize -= lhSize;
816
- eSize += lhSize;
817
- }
818
-
819
- if (maxDstSize<12) {
820
- eSize = ERROR(dstSize_tooSmall);
821
- DISPLAYLEVEL(1, "not enough space to write RepOffsets \n");
822
- goto _cleanup;
823
- }
824
- # if 0
825
- MEM_writeLE32(dstPtr+0, bestRepOffset[0].offset);
826
- MEM_writeLE32(dstPtr+4, bestRepOffset[1].offset);
827
- MEM_writeLE32(dstPtr+8, bestRepOffset[2].offset);
828
- #else
829
- /* at this stage, we don't use the result of "most common first offset",
830
- * as the impact of statistics is not properly evaluated */
831
- MEM_writeLE32(dstPtr+0, repStartValue[0]);
832
- MEM_writeLE32(dstPtr+4, repStartValue[1]);
833
- MEM_writeLE32(dstPtr+8, repStartValue[2]);
834
- #endif
835
- eSize += 12;
836
-
837
- _cleanup:
838
- ZSTD_freeCDict(esr.dict);
839
- ZSTD_freeCCtx(esr.zc);
840
- free(esr.workPlace);
841
-
842
- return eSize;
843
- }
844
-
845
-
846
- /**
847
- * @returns the maximum repcode value
848
- */
849
- static U32 ZDICT_maxRep(U32 const reps[ZSTD_REP_NUM])
850
- {
851
- U32 maxRep = reps[0];
852
- int r;
853
- for (r = 1; r < ZSTD_REP_NUM; ++r)
854
- maxRep = MAX(maxRep, reps[r]);
855
- return maxRep;
856
- }
857
-
858
- size_t ZDICT_finalizeDictionary(void* dictBuffer, size_t dictBufferCapacity,
859
- const void* customDictContent, size_t dictContentSize,
860
- const void* samplesBuffer, const size_t* samplesSizes,
861
- unsigned nbSamples, ZDICT_params_t params)
862
- {
863
- size_t hSize;
864
- #define HBUFFSIZE 256 /* should prove large enough for all entropy headers */
865
- BYTE header[HBUFFSIZE];
866
- int const compressionLevel = (params.compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT : params.compressionLevel;
867
- U32 const notificationLevel = params.notificationLevel;
868
- /* The final dictionary content must be at least as large as the largest repcode */
869
- size_t const minContentSize = (size_t)ZDICT_maxRep(repStartValue);
870
- size_t paddingSize;
871
-
872
- /* check conditions */
873
- DEBUGLOG(4, "ZDICT_finalizeDictionary");
874
- if (dictBufferCapacity < dictContentSize) return ERROR(dstSize_tooSmall);
875
- if (dictBufferCapacity < ZDICT_DICTSIZE_MIN) return ERROR(dstSize_tooSmall);
876
-
877
- /* dictionary header */
878
- MEM_writeLE32(header, ZSTD_MAGIC_DICTIONARY);
879
- { U64 const randomID = XXH64(customDictContent, dictContentSize, 0);
880
- U32 const compliantID = (randomID % ((1U<<31)-32768)) + 32768;
881
- U32 const dictID = params.dictID ? params.dictID : compliantID;
882
- MEM_writeLE32(header+4, dictID);
883
- }
884
- hSize = 8;
885
-
886
- /* entropy tables */
887
- DISPLAYLEVEL(2, "\r%70s\r", ""); /* clean display line */
888
- DISPLAYLEVEL(2, "statistics ... \n");
889
- { size_t const eSize = ZDICT_analyzeEntropy(header+hSize, HBUFFSIZE-hSize,
890
- compressionLevel,
891
- samplesBuffer, samplesSizes, nbSamples,
892
- customDictContent, dictContentSize,
893
- notificationLevel);
894
- if (ZDICT_isError(eSize)) return eSize;
895
- hSize += eSize;
896
- }
897
-
898
- /* Shrink the content size if it doesn't fit in the buffer */
899
- if (hSize + dictContentSize > dictBufferCapacity) {
900
- dictContentSize = dictBufferCapacity - hSize;
901
- }
902
-
903
- /* Pad the dictionary content with zeros if it is too small */
904
- if (dictContentSize < minContentSize) {
905
- RETURN_ERROR_IF(hSize + minContentSize > dictBufferCapacity, dstSize_tooSmall,
906
- "dictBufferCapacity too small to fit max repcode");
907
- paddingSize = minContentSize - dictContentSize;
908
- } else {
909
- paddingSize = 0;
910
- }
911
-
912
- {
913
- size_t const dictSize = hSize + paddingSize + dictContentSize;
914
-
915
- /* The dictionary consists of the header, optional padding, and the content.
916
- * The padding comes before the content because the "best" position in the
917
- * dictionary is the last byte.
918
- */
919
- BYTE* const outDictHeader = (BYTE*)dictBuffer;
920
- BYTE* const outDictPadding = outDictHeader + hSize;
921
- BYTE* const outDictContent = outDictPadding + paddingSize;
922
-
923
- assert(dictSize <= dictBufferCapacity);
924
- assert(outDictContent + dictContentSize == (BYTE*)dictBuffer + dictSize);
925
-
926
- /* First copy the customDictContent into its final location.
927
- * `customDictContent` and `dictBuffer` may overlap, so we must
928
- * do this before any other writes into the output buffer.
929
- * Then copy the header & padding into the output buffer.
930
- */
931
- memmove(outDictContent, customDictContent, dictContentSize);
932
- memcpy(outDictHeader, header, hSize);
933
- memset(outDictPadding, 0, paddingSize);
934
-
935
- return dictSize;
936
- }
937
- }
938
-
939
-
940
- static size_t ZDICT_addEntropyTablesFromBuffer_advanced(
941
- void* dictBuffer, size_t dictContentSize, size_t dictBufferCapacity,
942
- const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples,
943
- ZDICT_params_t params)
944
- {
945
- int const compressionLevel = (params.compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT : params.compressionLevel;
946
- U32 const notificationLevel = params.notificationLevel;
947
- size_t hSize = 8;
948
-
949
- /* calculate entropy tables */
950
- DISPLAYLEVEL(2, "\r%70s\r", ""); /* clean display line */
951
- DISPLAYLEVEL(2, "statistics ... \n");
952
- { size_t const eSize = ZDICT_analyzeEntropy((char*)dictBuffer+hSize, dictBufferCapacity-hSize,
953
- compressionLevel,
954
- samplesBuffer, samplesSizes, nbSamples,
955
- (char*)dictBuffer + dictBufferCapacity - dictContentSize, dictContentSize,
956
- notificationLevel);
957
- if (ZDICT_isError(eSize)) return eSize;
958
- hSize += eSize;
959
- }
960
-
961
- /* add dictionary header (after entropy tables) */
962
- MEM_writeLE32(dictBuffer, ZSTD_MAGIC_DICTIONARY);
963
- { U64 const randomID = XXH64((char*)dictBuffer + dictBufferCapacity - dictContentSize, dictContentSize, 0);
964
- U32 const compliantID = (randomID % ((1U<<31)-32768)) + 32768;
965
- U32 const dictID = params.dictID ? params.dictID : compliantID;
966
- MEM_writeLE32((char*)dictBuffer+4, dictID);
967
- }
968
-
969
- if (hSize + dictContentSize < dictBufferCapacity)
970
- memmove((char*)dictBuffer + hSize, (char*)dictBuffer + dictBufferCapacity - dictContentSize, dictContentSize);
971
- return MIN(dictBufferCapacity, hSize+dictContentSize);
972
- }
973
-
974
- /*! ZDICT_trainFromBuffer_unsafe_legacy() :
975
- * Warning : `samplesBuffer` must be followed by noisy guard band !!!
976
- * @return : size of dictionary, or an error code which can be tested with ZDICT_isError()
977
- */
978
- static size_t ZDICT_trainFromBuffer_unsafe_legacy(
979
- void* dictBuffer, size_t maxDictSize,
980
- const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples,
981
- ZDICT_legacy_params_t params)
982
- {
983
- U32 const dictListSize = MAX(MAX(DICTLISTSIZE_DEFAULT, nbSamples), (U32)(maxDictSize/16));
984
- dictItem* const dictList = (dictItem*)malloc(dictListSize * sizeof(*dictList));
985
- unsigned const selectivity = params.selectivityLevel == 0 ? g_selectivity_default : params.selectivityLevel;
986
- unsigned const minRep = (selectivity > 30) ? MINRATIO : nbSamples >> selectivity;
987
- size_t const targetDictSize = maxDictSize;
988
- size_t const samplesBuffSize = ZDICT_totalSampleSize(samplesSizes, nbSamples);
989
- size_t dictSize = 0;
990
- U32 const notificationLevel = params.zParams.notificationLevel;
991
-
992
- /* checks */
993
- if (!dictList) return ERROR(memory_allocation);
994
- if (maxDictSize < ZDICT_DICTSIZE_MIN) { free(dictList); return ERROR(dstSize_tooSmall); } /* requested dictionary size is too small */
995
- if (samplesBuffSize < ZDICT_MIN_SAMPLES_SIZE) { free(dictList); return ERROR(dictionaryCreation_failed); } /* not enough source to create dictionary */
996
-
997
- /* init */
998
- ZDICT_initDictItem(dictList);
999
-
1000
- /* build dictionary */
1001
- ZDICT_trainBuffer_legacy(dictList, dictListSize,
1002
- samplesBuffer, samplesBuffSize,
1003
- samplesSizes, nbSamples,
1004
- minRep, notificationLevel);
1005
-
1006
- /* display best matches */
1007
- if (params.zParams.notificationLevel>= 3) {
1008
- unsigned const nb = MIN(25, dictList[0].pos);
1009
- unsigned const dictContentSize = ZDICT_dictSize(dictList);
1010
- unsigned u;
1011
- DISPLAYLEVEL(3, "\n %u segments found, of total size %u \n", (unsigned)dictList[0].pos-1, dictContentSize);
1012
- DISPLAYLEVEL(3, "list %u best segments \n", nb-1);
1013
- for (u=1; u<nb; u++) {
1014
- unsigned const pos = dictList[u].pos;
1015
- unsigned const length = dictList[u].length;
1016
- U32 const printedLength = MIN(40, length);
1017
- if ((pos > samplesBuffSize) || ((pos + length) > samplesBuffSize)) {
1018
- free(dictList);
1019
- return ERROR(GENERIC); /* should never happen */
1020
- }
1021
- DISPLAYLEVEL(3, "%3u:%3u bytes at pos %8u, savings %7u bytes |",
1022
- u, length, pos, (unsigned)dictList[u].savings);
1023
- ZDICT_printHex((const char*)samplesBuffer+pos, printedLength);
1024
- DISPLAYLEVEL(3, "| \n");
1025
- } }
1026
-
1027
-
1028
- /* create dictionary */
1029
- { unsigned dictContentSize = ZDICT_dictSize(dictList);
1030
- if (dictContentSize < ZDICT_CONTENTSIZE_MIN) { free(dictList); return ERROR(dictionaryCreation_failed); } /* dictionary content too small */
1031
- if (dictContentSize < targetDictSize/4) {
1032
- DISPLAYLEVEL(2, "! warning : selected content significantly smaller than requested (%u < %u) \n", dictContentSize, (unsigned)maxDictSize);
1033
- if (samplesBuffSize < 10 * targetDictSize)
1034
- DISPLAYLEVEL(2, "! consider increasing the number of samples (total size : %u MB)\n", (unsigned)(samplesBuffSize>>20));
1035
- if (minRep > MINRATIO) {
1036
- DISPLAYLEVEL(2, "! consider increasing selectivity to produce larger dictionary (-s%u) \n", selectivity+1);
1037
- DISPLAYLEVEL(2, "! note : larger dictionaries are not necessarily better, test its efficiency on samples \n");
1038
- }
1039
- }
1040
-
1041
- if ((dictContentSize > targetDictSize*3) && (nbSamples > 2*MINRATIO) && (selectivity>1)) {
1042
- unsigned proposedSelectivity = selectivity-1;
1043
- while ((nbSamples >> proposedSelectivity) <= MINRATIO) { proposedSelectivity--; }
1044
- DISPLAYLEVEL(2, "! note : calculated dictionary significantly larger than requested (%u > %u) \n", dictContentSize, (unsigned)maxDictSize);
1045
- DISPLAYLEVEL(2, "! consider increasing dictionary size, or produce denser dictionary (-s%u) \n", proposedSelectivity);
1046
- DISPLAYLEVEL(2, "! always test dictionary efficiency on real samples \n");
1047
- }
1048
-
1049
- /* limit dictionary size */
1050
- { U32 const max = dictList->pos; /* convention : nb of useful elts within dictList */
1051
- U32 currentSize = 0;
1052
- U32 n; for (n=1; n<max; n++) {
1053
- currentSize += dictList[n].length;
1054
- if (currentSize > targetDictSize) { currentSize -= dictList[n].length; break; }
1055
- }
1056
- dictList->pos = n;
1057
- dictContentSize = currentSize;
1058
- }
1059
-
1060
- /* build dict content */
1061
- { U32 u;
1062
- BYTE* ptr = (BYTE*)dictBuffer + maxDictSize;
1063
- for (u=1; u<dictList->pos; u++) {
1064
- U32 l = dictList[u].length;
1065
- ptr -= l;
1066
- if (ptr<(BYTE*)dictBuffer) { free(dictList); return ERROR(GENERIC); } /* should not happen */
1067
- memcpy(ptr, (const char*)samplesBuffer+dictList[u].pos, l);
1068
- } }
1069
-
1070
- dictSize = ZDICT_addEntropyTablesFromBuffer_advanced(dictBuffer, dictContentSize, maxDictSize,
1071
- samplesBuffer, samplesSizes, nbSamples,
1072
- params.zParams);
1073
- }
1074
-
1075
- /* clean up */
1076
- free(dictList);
1077
- return dictSize;
1078
- }
1079
-
1080
-
1081
- /* ZDICT_trainFromBuffer_legacy() :
1082
- * issue : samplesBuffer need to be followed by a noisy guard band.
1083
- * work around : duplicate the buffer, and add the noise */
1084
- size_t ZDICT_trainFromBuffer_legacy(void* dictBuffer, size_t dictBufferCapacity,
1085
- const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples,
1086
- ZDICT_legacy_params_t params)
1087
- {
1088
- size_t result;
1089
- void* newBuff;
1090
- size_t const sBuffSize = ZDICT_totalSampleSize(samplesSizes, nbSamples);
1091
- if (sBuffSize < ZDICT_MIN_SAMPLES_SIZE) return 0; /* not enough content => no dictionary */
1092
-
1093
- newBuff = malloc(sBuffSize + NOISELENGTH);
1094
- if (!newBuff) return ERROR(memory_allocation);
1095
-
1096
- memcpy(newBuff, samplesBuffer, sBuffSize);
1097
- ZDICT_fillNoise((char*)newBuff + sBuffSize, NOISELENGTH); /* guard band, for end of buffer condition */
1098
-
1099
- result =
1100
- ZDICT_trainFromBuffer_unsafe_legacy(dictBuffer, dictBufferCapacity, newBuff,
1101
- samplesSizes, nbSamples, params);
1102
- free(newBuff);
1103
- return result;
1104
- }
1105
-
1106
-
1107
- size_t ZDICT_trainFromBuffer(void* dictBuffer, size_t dictBufferCapacity,
1108
- const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples)
1109
- {
1110
- ZDICT_fastCover_params_t params;
1111
- DEBUGLOG(3, "ZDICT_trainFromBuffer");
1112
- memset(&params, 0, sizeof(params));
1113
- params.d = 8;
1114
- params.steps = 4;
1115
- /* Use default level since no compression level information is available */
1116
- params.zParams.compressionLevel = ZSTD_CLEVEL_DEFAULT;
1117
- #if defined(DEBUGLEVEL) && (DEBUGLEVEL>=1)
1118
- params.zParams.notificationLevel = DEBUGLEVEL;
1119
- #endif
1120
- return ZDICT_optimizeTrainFromBuffer_fastCover(dictBuffer, dictBufferCapacity,
1121
- samplesBuffer, samplesSizes, nbSamples,
1122
- &params);
1123
- }
1124
-
1125
- size_t ZDICT_addEntropyTablesFromBuffer(void* dictBuffer, size_t dictContentSize, size_t dictBufferCapacity,
1126
- const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples)
1127
- {
1128
- ZDICT_params_t params;
1129
- memset(&params, 0, sizeof(params));
1130
- return ZDICT_addEntropyTablesFromBuffer_advanced(dictBuffer, dictContentSize, dictBufferCapacity,
1131
- samplesBuffer, samplesSizes, nbSamples,
1132
- params);
1133
- }