koffi 2.3.6 → 2.3.8

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 (280) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/package.json +2 -2
  3. package/src/cnoke/cnoke.js +3 -7
  4. package/src/cnoke/src/builder.js +7 -4
  5. package/src/cnoke/src/index.js +2 -2
  6. package/src/koffi/build/2.3.8/koffi_darwin_arm64/koffi.node +0 -0
  7. package/src/koffi/build/2.3.8/koffi_darwin_x64/koffi.node +0 -0
  8. package/src/koffi/build/2.3.8/koffi_freebsd_arm64/koffi.node +0 -0
  9. package/src/koffi/build/2.3.8/koffi_freebsd_ia32/koffi.node +0 -0
  10. package/src/koffi/build/2.3.8/koffi_freebsd_x64/koffi.node +0 -0
  11. package/src/koffi/build/2.3.8/koffi_linux_arm32hf/koffi.node +0 -0
  12. package/src/koffi/build/2.3.8/koffi_linux_arm64/koffi.node +0 -0
  13. package/src/koffi/build/2.3.8/koffi_linux_ia32/koffi.node +0 -0
  14. package/src/koffi/build/2.3.8/koffi_linux_riscv64hf64/koffi.node +0 -0
  15. package/src/koffi/build/2.3.8/koffi_linux_x64/koffi.node +0 -0
  16. package/src/koffi/build/2.3.8/koffi_openbsd_ia32/koffi.node +0 -0
  17. package/src/koffi/build/2.3.8/koffi_openbsd_x64/koffi.node +0 -0
  18. package/src/koffi/build/2.3.8/koffi_win32_arm64/koffi.node +0 -0
  19. package/src/koffi/build/2.3.8/koffi_win32_ia32/koffi.node +0 -0
  20. package/src/koffi/build/2.3.8/koffi_win32_x64/koffi.node +0 -0
  21. package/src/koffi/src/abi_arm64.cc +8 -2
  22. package/src/koffi/src/abi_x64_win.cc +8 -2
  23. package/src/koffi/src/abi_x86.cc +8 -2
  24. package/src/koffi/src/ffi.cc +3 -22
  25. package/src/koffi/src/index.d.ts +1 -1
  26. package/src/koffi/src/index.js +1 -0
  27. package/src/koffi/src/win32.hh +10 -4
  28. package/src/koffi/build/2.3.6/koffi_darwin_arm64/koffi.node +0 -0
  29. package/src/koffi/build/2.3.6/koffi_darwin_x64/koffi.node +0 -0
  30. package/src/koffi/build/2.3.6/koffi_freebsd_arm64/koffi.node +0 -0
  31. package/src/koffi/build/2.3.6/koffi_freebsd_ia32/koffi.node +0 -0
  32. package/src/koffi/build/2.3.6/koffi_freebsd_x64/koffi.node +0 -0
  33. package/src/koffi/build/2.3.6/koffi_linux_arm32hf/koffi.node +0 -0
  34. package/src/koffi/build/2.3.6/koffi_linux_arm64/koffi.node +0 -0
  35. package/src/koffi/build/2.3.6/koffi_linux_ia32/koffi.node +0 -0
  36. package/src/koffi/build/2.3.6/koffi_linux_riscv64hf64/koffi.node +0 -0
  37. package/src/koffi/build/2.3.6/koffi_linux_x64/koffi.node +0 -0
  38. package/src/koffi/build/2.3.6/koffi_openbsd_ia32/koffi.node +0 -0
  39. package/src/koffi/build/2.3.6/koffi_openbsd_x64/koffi.node +0 -0
  40. package/src/koffi/build/2.3.6/koffi_win32_arm64/koffi.node +0 -0
  41. package/src/koffi/build/2.3.6/koffi_win32_arm64/koffi.pdb +0 -0
  42. package/src/koffi/build/2.3.6/koffi_win32_ia32/koffi.node +0 -0
  43. package/src/koffi/build/2.3.6/koffi_win32_ia32/koffi.pdb +0 -0
  44. package/src/koffi/build/2.3.6/koffi_win32_x64/koffi.node +0 -0
  45. package/src/koffi/build/2.3.6/koffi_win32_x64/koffi.pdb +0 -0
  46. package/vendor/brotli/BUILD +0 -144
  47. package/vendor/brotli/CMakeLists.txt +0 -421
  48. package/vendor/brotli/CONTRIBUTING.md +0 -27
  49. package/vendor/brotli/LICENSE +0 -19
  50. package/vendor/brotli/MANIFEST.in +0 -17
  51. package/vendor/brotli/Makefile +0 -55
  52. package/vendor/brotli/Makefile.am +0 -38
  53. package/vendor/brotli/README +0 -15
  54. package/vendor/brotli/README.md +0 -104
  55. package/vendor/brotli/WORKSPACE +0 -21
  56. package/vendor/brotli/bootstrap +0 -35
  57. package/vendor/brotli/c/common/constants.c +0 -15
  58. package/vendor/brotli/c/common/constants.h +0 -200
  59. package/vendor/brotli/c/common/context.c +0 -156
  60. package/vendor/brotli/c/common/context.h +0 -113
  61. package/vendor/brotli/c/common/dictionary.c +0 -5914
  62. package/vendor/brotli/c/common/dictionary.h +0 -64
  63. package/vendor/brotli/c/common/platform.c +0 -22
  64. package/vendor/brotli/c/common/platform.h +0 -596
  65. package/vendor/brotli/c/common/transform.c +0 -291
  66. package/vendor/brotli/c/common/transform.h +0 -85
  67. package/vendor/brotli/c/common/version.h +0 -26
  68. package/vendor/brotli/c/dec/bit_reader.c +0 -76
  69. package/vendor/brotli/c/dec/bit_reader.h +0 -351
  70. package/vendor/brotli/c/dec/decode.c +0 -2608
  71. package/vendor/brotli/c/dec/huffman.c +0 -339
  72. package/vendor/brotli/c/dec/huffman.h +0 -121
  73. package/vendor/brotli/c/dec/prefix.h +0 -732
  74. package/vendor/brotli/c/dec/state.c +0 -159
  75. package/vendor/brotli/c/dec/state.h +0 -365
  76. package/vendor/brotli/c/enc/backward_references.c +0 -145
  77. package/vendor/brotli/c/enc/backward_references.h +0 -39
  78. package/vendor/brotli/c/enc/backward_references_hq.c +0 -843
  79. package/vendor/brotli/c/enc/backward_references_hq.h +0 -95
  80. package/vendor/brotli/c/enc/backward_references_inc.h +0 -163
  81. package/vendor/brotli/c/enc/bit_cost.c +0 -35
  82. package/vendor/brotli/c/enc/bit_cost.h +0 -63
  83. package/vendor/brotli/c/enc/bit_cost_inc.h +0 -127
  84. package/vendor/brotli/c/enc/block_encoder_inc.h +0 -34
  85. package/vendor/brotli/c/enc/block_splitter.c +0 -194
  86. package/vendor/brotli/c/enc/block_splitter.h +0 -51
  87. package/vendor/brotli/c/enc/block_splitter_inc.h +0 -440
  88. package/vendor/brotli/c/enc/brotli_bit_stream.c +0 -1314
  89. package/vendor/brotli/c/enc/brotli_bit_stream.h +0 -84
  90. package/vendor/brotli/c/enc/cluster.c +0 -56
  91. package/vendor/brotli/c/enc/cluster.h +0 -48
  92. package/vendor/brotli/c/enc/cluster_inc.h +0 -320
  93. package/vendor/brotli/c/enc/command.c +0 -28
  94. package/vendor/brotli/c/enc/command.h +0 -190
  95. package/vendor/brotli/c/enc/compress_fragment.c +0 -790
  96. package/vendor/brotli/c/enc/compress_fragment.h +0 -61
  97. package/vendor/brotli/c/enc/compress_fragment_two_pass.c +0 -645
  98. package/vendor/brotli/c/enc/compress_fragment_two_pass.h +0 -54
  99. package/vendor/brotli/c/enc/dictionary_hash.c +0 -1846
  100. package/vendor/brotli/c/enc/dictionary_hash.h +0 -25
  101. package/vendor/brotli/c/enc/encode.c +0 -1927
  102. package/vendor/brotli/c/enc/encoder_dict.c +0 -33
  103. package/vendor/brotli/c/enc/encoder_dict.h +0 -43
  104. package/vendor/brotli/c/enc/entropy_encode.c +0 -503
  105. package/vendor/brotli/c/enc/entropy_encode.h +0 -122
  106. package/vendor/brotli/c/enc/entropy_encode_static.h +0 -539
  107. package/vendor/brotli/c/enc/fast_log.c +0 -105
  108. package/vendor/brotli/c/enc/fast_log.h +0 -66
  109. package/vendor/brotli/c/enc/find_match_length.h +0 -79
  110. package/vendor/brotli/c/enc/hash.h +0 -488
  111. package/vendor/brotli/c/enc/hash_composite_inc.h +0 -125
  112. package/vendor/brotli/c/enc/hash_forgetful_chain_inc.h +0 -293
  113. package/vendor/brotli/c/enc/hash_longest_match64_inc.h +0 -267
  114. package/vendor/brotli/c/enc/hash_longest_match_inc.h +0 -262
  115. package/vendor/brotli/c/enc/hash_longest_match_quickly_inc.h +0 -266
  116. package/vendor/brotli/c/enc/hash_rolling_inc.h +0 -212
  117. package/vendor/brotli/c/enc/hash_to_binary_tree_inc.h +0 -329
  118. package/vendor/brotli/c/enc/histogram.c +0 -100
  119. package/vendor/brotli/c/enc/histogram.h +0 -63
  120. package/vendor/brotli/c/enc/histogram_inc.h +0 -51
  121. package/vendor/brotli/c/enc/literal_cost.c +0 -175
  122. package/vendor/brotli/c/enc/literal_cost.h +0 -30
  123. package/vendor/brotli/c/enc/memory.c +0 -170
  124. package/vendor/brotli/c/enc/memory.h +0 -114
  125. package/vendor/brotli/c/enc/metablock.c +0 -663
  126. package/vendor/brotli/c/enc/metablock.h +0 -105
  127. package/vendor/brotli/c/enc/metablock_inc.h +0 -183
  128. package/vendor/brotli/c/enc/params.h +0 -46
  129. package/vendor/brotli/c/enc/prefix.h +0 -53
  130. package/vendor/brotli/c/enc/quality.h +0 -165
  131. package/vendor/brotli/c/enc/ringbuffer.h +0 -167
  132. package/vendor/brotli/c/enc/static_dict.c +0 -486
  133. package/vendor/brotli/c/enc/static_dict.h +0 -40
  134. package/vendor/brotli/c/enc/static_dict_lut.h +0 -5864
  135. package/vendor/brotli/c/enc/utf8_util.c +0 -85
  136. package/vendor/brotli/c/enc/utf8_util.h +0 -32
  137. package/vendor/brotli/c/enc/write_bits.h +0 -87
  138. package/vendor/brotli/c/include/brotli/decode.h +0 -344
  139. package/vendor/brotli/c/include/brotli/encode.h +0 -448
  140. package/vendor/brotli/c/include/brotli/port.h +0 -288
  141. package/vendor/brotli/c/include/brotli/types.h +0 -83
  142. package/vendor/brotli/c/tools/brotli.c +0 -1116
  143. package/vendor/brotli/c/tools/brotli.md +0 -107
  144. package/vendor/brotli/compiler_config_setting.bzl +0 -28
  145. package/vendor/brotli/configure +0 -8
  146. package/vendor/brotli/configure-cmake +0 -318
  147. package/vendor/brotli/configure.ac +0 -14
  148. package/vendor/brotli/docs/brotli.1 +0 -132
  149. package/vendor/brotli/docs/constants.h.3 +0 -47
  150. package/vendor/brotli/docs/decode.h.3 +0 -415
  151. package/vendor/brotli/docs/encode.h.3 +0 -586
  152. package/vendor/brotli/docs/types.h.3 +0 -117
  153. package/vendor/brotli/premake5.lua +0 -78
  154. package/vendor/brotli/python/Makefile +0 -57
  155. package/vendor/brotli/python/README.md +0 -54
  156. package/vendor/brotli/python/_brotli.cc +0 -753
  157. package/vendor/brotli/python/bro.py +0 -160
  158. package/vendor/brotli/python/brotli.py +0 -56
  159. package/vendor/brotli/python/tests/__init__.py +0 -0
  160. package/vendor/brotli/python/tests/_test_utils.py +0 -112
  161. package/vendor/brotli/python/tests/bro_test.py +0 -102
  162. package/vendor/brotli/python/tests/compress_test.py +0 -41
  163. package/vendor/brotli/python/tests/compressor_test.py +0 -94
  164. package/vendor/brotli/python/tests/decompress_test.py +0 -42
  165. package/vendor/brotli/python/tests/decompressor_test.py +0 -59
  166. package/vendor/brotli/scripts/libbrotlicommon.pc.in +0 -11
  167. package/vendor/brotli/scripts/libbrotlidec.pc.in +0 -12
  168. package/vendor/brotli/scripts/libbrotlienc.pc.in +0 -12
  169. package/vendor/brotli/scripts/sources.lst +0 -104
  170. package/vendor/brotli/setup.cfg +0 -5
  171. package/vendor/brotli/setup.py +0 -293
  172. package/vendor/brotli/tests/Makefile +0 -17
  173. package/vendor/brotli/tests/compatibility_test.sh +0 -25
  174. package/vendor/brotli/tests/roundtrip_test.sh +0 -36
  175. package/vendor/brotli/tests/run-compatibility-test.cmake +0 -31
  176. package/vendor/brotli/tests/run-roundtrip-test.cmake +0 -36
  177. package/vendor/brotli/tests/testdata/empty +0 -0
  178. package/vendor/brotli/tests/testdata/empty.compressed +0 -1
  179. package/vendor/brotli/tests/testdata/ukkonooa +0 -1
  180. package/vendor/brotli/tests/testdata/ukkonooa.compressed +0 -0
  181. package/vendor/dragonbox/CMakeLists.txt +0 -123
  182. package/vendor/dragonbox/LICENSE-Apache2-LLVM +0 -218
  183. package/vendor/dragonbox/LICENSE-Boost +0 -23
  184. package/vendor/dragonbox/README.md +0 -277
  185. package/vendor/dragonbox/cmake/dragonboxConfig.cmake +0 -1
  186. package/vendor/dragonbox/include/dragonbox/dragonbox.h +0 -2674
  187. package/vendor/dragonbox/include/dragonbox/dragonbox_to_chars.h +0 -108
  188. package/vendor/dragonbox/other_files/Dragonbox.pdf +0 -0
  189. package/vendor/dragonbox/other_files/Dragonbox_old.pdf +0 -0
  190. package/vendor/dragonbox/other_files/milo_benchmark.png +0 -0
  191. package/vendor/dragonbox/other_files/unknown_win64_vc2019.html +0 -540
  192. package/vendor/dragonbox/other_files/unknown_win64_vc2019_randomdigit_time.png +0 -0
  193. package/vendor/dragonbox/source/dragonbox_to_chars.cpp +0 -303
  194. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/CMakeLists.txt +0 -24
  195. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/fp_to_chars.cpp +0 -238
  196. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/fp_to_chars.h +0 -95
  197. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/grisu_exact.h +0 -2666
  198. package/vendor/dragonbox/subproject/3rdparty/ryu/CMakeLists.txt +0 -16
  199. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/common.h +0 -114
  200. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s.c +0 -509
  201. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s_full_table.h +0 -367
  202. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s_intrinsics.h +0 -357
  203. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/digit_table.h +0 -35
  204. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s.c +0 -345
  205. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s_full_table.h +0 -55
  206. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s_intrinsics.h +0 -128
  207. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/ryu.h +0 -46
  208. package/vendor/dragonbox/subproject/3rdparty/schubfach/CMakeLists.txt +0 -22
  209. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_32.cc +0 -699
  210. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_32.h +0 -31
  211. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_64.cc +0 -1354
  212. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_64.h +0 -31
  213. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/example_shaded_plots.m +0 -68
  214. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/license.txt +0 -25
  215. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_distribution.m +0 -92
  216. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_distribution_prctile.m +0 -121
  217. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_histogram_shaded.m +0 -99
  218. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_shaded.m +0 -93
  219. package/vendor/dragonbox/subproject/benchmark/CMakeLists.txt +0 -65
  220. package/vendor/dragonbox/subproject/benchmark/include/benchmark.h +0 -40
  221. package/vendor/dragonbox/subproject/benchmark/matlab/plot_benchmarks.m +0 -22
  222. package/vendor/dragonbox/subproject/benchmark/matlab/plot_digit_benchmark.m +0 -78
  223. package/vendor/dragonbox/subproject/benchmark/matlab/plot_uniform_benchmark.m +0 -95
  224. package/vendor/dragonbox/subproject/benchmark/results/digits_benchmark_binary32_clang.png +0 -0
  225. package/vendor/dragonbox/subproject/benchmark/results/digits_benchmark_binary32_msvc.png +0 -0
  226. package/vendor/dragonbox/subproject/benchmark/results/digits_benchmark_binary64_clang.png +0 -0
  227. package/vendor/dragonbox/subproject/benchmark/results/digits_benchmark_binary64_msvc.png +0 -0
  228. package/vendor/dragonbox/subproject/benchmark/results/uniform_benchmark_binary32_clang.png +0 -0
  229. package/vendor/dragonbox/subproject/benchmark/results/uniform_benchmark_binary32_msvc.png +0 -0
  230. package/vendor/dragonbox/subproject/benchmark/results/uniform_benchmark_binary64_clang.png +0 -0
  231. package/vendor/dragonbox/subproject/benchmark/results/uniform_benchmark_binary64_msvc.png +0 -0
  232. package/vendor/dragonbox/subproject/benchmark/source/benchmark.cpp +0 -238
  233. package/vendor/dragonbox/subproject/benchmark/source/dragonbox.cpp +0 -30
  234. package/vendor/dragonbox/subproject/benchmark/source/grisu_exact.cpp +0 -36
  235. package/vendor/dragonbox/subproject/benchmark/source/ryu.cpp +0 -27
  236. package/vendor/dragonbox/subproject/benchmark/source/schubfach.cpp +0 -31
  237. package/vendor/dragonbox/subproject/common/CMakeLists.txt +0 -42
  238. package/vendor/dragonbox/subproject/common/include/best_rational_approx.h +0 -97
  239. package/vendor/dragonbox/subproject/common/include/big_uint.h +0 -218
  240. package/vendor/dragonbox/subproject/common/include/continued_fractions.h +0 -174
  241. package/vendor/dragonbox/subproject/common/include/good_rational_approx.h +0 -267
  242. package/vendor/dragonbox/subproject/common/include/random_float.h +0 -182
  243. package/vendor/dragonbox/subproject/common/include/rational_continued_fractions.h +0 -57
  244. package/vendor/dragonbox/subproject/common/source/big_uint.cpp +0 -602
  245. package/vendor/dragonbox/subproject/meta/CMakeLists.txt +0 -41
  246. package/vendor/dragonbox/subproject/meta/results/binary32_generated_cache.txt +0 -82
  247. package/vendor/dragonbox/subproject/meta/results/binary64_compressed_cache_error_table.txt +0 -10
  248. package/vendor/dragonbox/subproject/meta/results/binary64_generated_cache.txt +0 -623
  249. package/vendor/dragonbox/subproject/meta/source/generate_cache.cpp +0 -126
  250. package/vendor/dragonbox/subproject/meta/source/live_test.cpp +0 -81
  251. package/vendor/dragonbox/subproject/meta/source/perf_test.cpp +0 -104
  252. package/vendor/dragonbox/subproject/meta/source/sandbox.cpp +0 -20
  253. package/vendor/dragonbox/subproject/test/CMakeLists.txt +0 -70
  254. package/vendor/dragonbox/subproject/test/results/binary32.csv +0 -255
  255. package/vendor/dragonbox/subproject/test/results/binary64.csv +0 -2047
  256. package/vendor/dragonbox/subproject/test/results/plot_required_bits.m +0 -18
  257. package/vendor/dragonbox/subproject/test/source/test_all_shorter_interval_cases.cpp +0 -88
  258. package/vendor/dragonbox/subproject/test/source/uniform_random_test.cpp +0 -95
  259. package/vendor/dragonbox/subproject/test/source/verify_cache_precision.cpp +0 -338
  260. package/vendor/dragonbox/subproject/test/source/verify_compressed_cache.cpp +0 -154
  261. package/vendor/dragonbox/subproject/test/source/verify_fast_multiplication.cpp +0 -168
  262. package/vendor/dragonbox/subproject/test/source/verify_log_computation.cpp +0 -251
  263. package/vendor/dragonbox/subproject/test/source/verify_magic_division.cpp +0 -113
  264. package/vendor/miniz/ChangeLog.md +0 -239
  265. package/vendor/miniz/LICENSE +0 -22
  266. package/vendor/miniz/examples/example1.c +0 -105
  267. package/vendor/miniz/examples/example2.c +0 -164
  268. package/vendor/miniz/examples/example3.c +0 -269
  269. package/vendor/miniz/examples/example4.c +0 -102
  270. package/vendor/miniz/examples/example5.c +0 -327
  271. package/vendor/miniz/examples/example6.c +0 -166
  272. package/vendor/miniz/miniz.c +0 -7835
  273. package/vendor/miniz/miniz.h +0 -1422
  274. package/vendor/miniz/readme.md +0 -46
  275. /package/src/koffi/build/{2.3.6 → 2.3.8}/koffi_win32_arm64/koffi.exp +0 -0
  276. /package/src/koffi/build/{2.3.6 → 2.3.8}/koffi_win32_arm64/koffi.lib +0 -0
  277. /package/src/koffi/build/{2.3.6 → 2.3.8}/koffi_win32_ia32/koffi.exp +0 -0
  278. /package/src/koffi/build/{2.3.6 → 2.3.8}/koffi_win32_ia32/koffi.lib +0 -0
  279. /package/src/koffi/build/{2.3.6 → 2.3.8}/koffi_win32_x64/koffi.exp +0 -0
  280. /package/src/koffi/build/{2.3.6 → 2.3.8}/koffi_win32_x64/koffi.lib +0 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,21 @@
4
4
 
5
5
  ### Koffi 2.3
6
6
 
7
+ #### Koffi 2.3.8
8
+
9
+ **Main fixes:**
10
+
11
+ - Disable non-ready union support
12
+ - Simplify Windows stack allocation and drop NOACCESS and GUARD pages
13
+ - Adjust Windows TEB SEH chain and GuaranteedStackBytes for Koffi calls
14
+
15
+ #### Koffi 2.3.7
16
+
17
+ **Main fixes:**
18
+
19
+ - Fix missing require in index.js ([@gastonFrecceroNapse](https://github.com/gastonFrecceroNapse))
20
+ - Reduce NPM package bloat (from 65 MB to 20 MB) caused by changes in 2.3.6
21
+
7
22
  #### Koffi 2.3.6
8
23
 
9
24
  **Main changes:**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koffi",
3
- "version": "2.3.6",
4
- "stable": "2.3.6",
3
+ "version": "2.3.8",
4
+ "stable": "2.3.8",
5
5
  "description": "Fast and simple C FFI (foreign function interface) for Node.js",
6
6
  "keywords": [
7
7
  "foreign",
@@ -16,10 +16,9 @@
16
16
  'use strict';
17
17
 
18
18
  const fs = require('fs');
19
- const { Builder } = require('./src/index.js');
19
+ const cnoke = require('./src/index.js');
20
20
 
21
21
  const VALID_COMMANDS = ['build', 'configure', 'clean'];
22
- const DEFAULT_MODE = 'RelWithDebInfo';
23
22
 
24
23
  main();
25
24
 
@@ -27,9 +26,6 @@ async function main() {
27
26
  let config = {};
28
27
  let command = 'build';
29
28
 
30
- // Default options
31
- config.mode = DEFAULT_MODE;
32
-
33
29
  // Parse options
34
30
  {
35
31
  let i = 2;
@@ -127,7 +123,7 @@ async function main() {
127
123
  }
128
124
 
129
125
  try {
130
- let builder = new Builder(config);
126
+ let builder = new cnoke.Builder(config);
131
127
  await builder[command]();
132
128
  } catch (err) {
133
129
  console.error(err);
@@ -148,7 +144,7 @@ Options:
148
144
  (default: current working directory)
149
145
 
150
146
  -B, --config <CONFIG> Change build type: RelWithDebInfo, Debug, Release
151
- (default: ${DEFAULT_MODE})
147
+ (default: ${cnoke.DefaultOptions.mode})
152
148
  -D, --debug Shortcut for --config Debug
153
149
 
154
150
  --prebuild Use prebuilt binari if available
@@ -19,6 +19,10 @@ const path = require('path');
19
19
  const { spawnSync } = require('child_process');
20
20
  const tools = require('./tools.js');
21
21
 
22
+ const DefaultOptions = {
23
+ mode: 'RelWithDebInfo'
24
+ };
25
+
22
26
  function Builder(config = {}) {
23
27
  let self = this;
24
28
 
@@ -38,7 +42,7 @@ function Builder(config = {}) {
38
42
  let arch = config.arch;
39
43
  let toolset = config.toolset || null;
40
44
  let prefer_clang = config.prefer_clang || false;
41
- let mode = config.mode;
45
+ let mode = config.mode || DefaultOptions.mode;
42
46
  let targets = config.targets || [];
43
47
  let verbose = config.verbose || false;
44
48
  let prebuild = config.prebuild || false;
@@ -49,8 +53,6 @@ function Builder(config = {}) {
49
53
  runtime_version = runtime_version.substr(1);
50
54
  if (arch == null)
51
55
  arch = tools.determine_arch();
52
- if (mode == null)
53
- throw new Error('Missing required mode setting');
54
56
 
55
57
  let cache_dir = get_cache_directory();
56
58
  let build_dir = config.build_dir;
@@ -447,5 +449,6 @@ function Builder(config = {}) {
447
449
  }
448
450
 
449
451
  module.exports = {
450
- Builder
452
+ Builder,
453
+ DefaultOptions
451
454
  };
@@ -11,10 +11,10 @@
11
11
  // You should have received a copy of the GNU Lesser General Public License
12
12
  // along with this program. If not, see https://www.gnu.org/licenses/.
13
13
 
14
- const { Builder } = require('./builder.js');
14
+ const builder = require('./builder.js');
15
15
  const tools = require('./tools.js');
16
16
 
17
17
  module.exports = {
18
- Builder,
18
+ ...builder,
19
19
  ...tools
20
20
  };
@@ -559,18 +559,24 @@ void CallData::Execute(const FunctionInfo *func)
559
559
  TEB *teb = GetTEB();
560
560
 
561
561
  // Restore previous stack limits at the end
562
- RG_DEFER_C(base = teb->StackBase,
562
+ RG_DEFER_C(exception_list = teb->ExceptionList,
563
+ base = teb->StackBase,
563
564
  limit = teb->StackLimit,
564
- dealloc = teb->DeallocationStack) {
565
+ dealloc = teb->DeallocationStack,
566
+ guaranteed = teb->GuaranteedStackBytes) {
567
+ teb->ExceptionList = exception_list;
565
568
  teb->StackBase = base;
566
569
  teb->StackLimit = limit;
567
570
  teb->DeallocationStack = dealloc;
571
+ teb->GuaranteedStackBytes = guaranteed;
568
572
  };
569
573
 
570
574
  // Adjust stack limits so SEH works correctly
575
+ teb->ExceptionList = (void *)-1; // EXCEPTION_CHAIN_END
571
576
  teb->StackBase = mem->stack0.end();
572
577
  teb->StackLimit = mem->stack0.ptr;
573
578
  teb->DeallocationStack = mem->stack0.ptr;
579
+ teb->GuaranteedStackBytes = 0;
574
580
  #endif
575
581
 
576
582
  #define PERFORM_CALL(Suffix) \
@@ -221,18 +221,24 @@ void CallData::Execute(const FunctionInfo *func)
221
221
  TEB *teb = GetTEB();
222
222
 
223
223
  // Restore previous stack limits at the end
224
- RG_DEFER_C(base = teb->StackBase,
224
+ RG_DEFER_C(exception_list = teb->ExceptionList,
225
+ base = teb->StackBase,
225
226
  limit = teb->StackLimit,
226
- dealloc = teb->DeallocationStack) {
227
+ dealloc = teb->DeallocationStack,
228
+ guaranteed = teb->GuaranteedStackBytes) {
229
+ teb->ExceptionList = exception_list;
227
230
  teb->StackBase = base;
228
231
  teb->StackLimit = limit;
229
232
  teb->DeallocationStack = dealloc;
233
+ teb->GuaranteedStackBytes = guaranteed;
230
234
  };
231
235
 
232
236
  // Adjust stack limits so SEH works correctly
237
+ teb->ExceptionList = (void *)-1; // EXCEPTION_CHAIN_END
233
238
  teb->StackBase = mem->stack0.end();
234
239
  teb->StackLimit = mem->stack0.ptr;
235
240
  teb->DeallocationStack = mem->stack0.ptr;
241
+ teb->GuaranteedStackBytes = 0;
236
242
 
237
243
  #define PERFORM_CALL(Suffix) \
238
244
  ([&]() { \
@@ -306,18 +306,24 @@ void CallData::Execute(const FunctionInfo *func)
306
306
  TEB *teb = GetTEB();
307
307
 
308
308
  // Restore previous stack limits at the end
309
- RG_DEFER_C(base = teb->StackBase,
309
+ RG_DEFER_C(exception_list = teb->ExceptionList,
310
+ base = teb->StackBase,
310
311
  limit = teb->StackLimit,
311
- dealloc = teb->DeallocationStack) {
312
+ dealloc = teb->DeallocationStack,
313
+ guaranteed = teb->GuaranteedStackBytes) {
314
+ teb->ExceptionList = exception_list;
312
315
  teb->StackBase = base;
313
316
  teb->StackLimit = limit;
314
317
  teb->DeallocationStack = dealloc;
318
+ teb->GuaranteedStackBytes = guaranteed;
315
319
  };
316
320
 
317
321
  // Adjust stack limits so SEH works correctly
322
+ teb->ExceptionList = (void *)-1; // EXCEPTION_CHAIN_END
318
323
  teb->StackBase = mem->stack0.end();
319
324
  teb->StackLimit = mem->stack0.ptr;
320
325
  teb->DeallocationStack = mem->stack0.ptr;
326
+ teb->GuaranteedStackBytes = 0;
321
327
  #endif
322
328
 
323
329
  #define PERFORM_CALL(Suffix) \
@@ -1144,30 +1144,11 @@ static InstanceMemory *AllocateMemory(InstanceData *instance, Size stack_size, S
1144
1144
  stack_size = AlignLen(stack_size, Kibibytes(64));
1145
1145
 
1146
1146
  #if defined(_WIN32)
1147
- static const int PageSize = ([]() {
1148
- SYSTEM_INFO info = {};
1149
-
1150
- GetNativeSystemInfo(&info);
1151
- RG_ASSERT(info.dwPageSize);
1152
-
1153
- return (int)info.dwPageSize;
1154
- })();
1155
-
1156
1147
  // Allocate stack memory
1157
- {
1158
- mem->stack.len = stack_size;
1159
- mem->stack.ptr = (uint8_t *)VirtualAlloc(nullptr, mem->stack.len + 2 * PageSize, MEM_RESERVE, PAGE_NOACCESS);
1160
-
1161
- RG_CRITICAL(mem->stack.ptr, "Failed to allocate %1 of memory", mem->stack.len);
1162
-
1163
- bool success = true;
1164
-
1165
- success &= !!VirtualAlloc(mem->stack.ptr + 0 * PageSize, PageSize, MEM_COMMIT, PAGE_NOACCESS);
1166
- success &= !!VirtualAlloc(mem->stack.ptr + 1 * PageSize, PageSize, MEM_COMMIT, PAGE_READWRITE | PAGE_GUARD);
1167
- success &= !!VirtualAlloc(mem->stack.ptr + 2 * PageSize, mem->stack.len, MEM_COMMIT, PAGE_READWRITE);
1148
+ mem->stack.len = stack_size;
1149
+ mem->stack.ptr = (uint8_t *)VirtualAlloc(nullptr, mem->stack.len, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
1168
1150
 
1169
- RG_CRITICAL(success, "Cannot commit stack memory: %1", GetWin32ErrorString());
1170
- }
1151
+ RG_CRITICAL(mem->stack.ptr, "Failed to allocate %1 of memory", mem->stack.len);
1171
1152
  #else
1172
1153
  mem->stack.len = stack_size;
1173
1154
  mem->stack.ptr = (uint8_t *)mmap(nullptr, mem->stack.len, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON | MAP_STACK, -1, 0);
@@ -20,7 +20,7 @@ declare module 'koffi' {
20
20
 
21
21
  type PrimitiveKind = 'Void' | 'Bool' | 'Int8' | 'UInt8' | 'Int16' | 'Int16S' | 'UInt16' | 'UInt16S' |
22
22
  'Int32' | 'Int32S' | 'UInt32' | 'UInt32S' | 'Int64' | 'Int64S' | 'UInt64' | 'UInt64S' |
23
- 'String' | 'String16' | 'Pointer' | 'Record' | 'Union' | 'Array' | 'Float32' | 'Float64' |
23
+ 'String' | 'String16' | 'Pointer' | 'Record' /* | 'Union' */ | 'Array' | 'Float32' | 'Float64' |
24
24
  'Prototype' | 'Callback';
25
25
  type ArrayHint = 'Array' | 'Typed' | 'String';
26
26
 
@@ -15,6 +15,7 @@
15
15
 
16
16
  const cnoke = require('../../cnoke/src/index.js');
17
17
  const util = require('util');
18
+ const fs = require('fs');
18
19
 
19
20
  const pkg = (() => {
20
21
  try {
@@ -22,24 +22,30 @@ namespace RG {
22
22
  #if _WIN64
23
23
 
24
24
  struct TEB {
25
- char _pad1[8];
25
+ void *ExceptionList;
26
26
  void *StackBase;
27
27
  void *StackLimit;
28
- char _pad2[5216];
28
+ char _pad1[5216];
29
29
  void *DeallocationStack;
30
+ char _pad2[712];
31
+ uint32_t GuaranteedStackBytes;
30
32
  };
31
33
  RG_STATIC_ASSERT(RG_OFFSET_OF(TEB, DeallocationStack) == 0x1478);
34
+ RG_STATIC_ASSERT(RG_OFFSET_OF(TEB, GuaranteedStackBytes) == 0x1748);
32
35
 
33
36
  #else
34
37
 
35
38
  struct TEB {
36
- char _pad1[4];
39
+ void *ExceptionList;
37
40
  void *StackBase;
38
41
  void *StackLimit;
39
- char _pad2[3584];
42
+ char _pad1[3584];
40
43
  void *DeallocationStack;
44
+ char _pad2[360];
45
+ uint32_t GuaranteedStackBytes;
41
46
  };
42
47
  RG_STATIC_ASSERT(RG_OFFSET_OF(TEB, DeallocationStack) == 0xE0C);
48
+ RG_STATIC_ASSERT(RG_OFFSET_OF(TEB, GuaranteedStackBytes) == 0x0F78);
43
49
 
44
50
  #endif
45
51
 
@@ -1,144 +0,0 @@
1
- # Description:
2
- # Brotli is a generic-purpose lossless compression algorithm.
3
-
4
- package(
5
- default_visibility = ["//visibility:public"],
6
- )
7
-
8
- licenses(["notice"]) # MIT
9
-
10
- exports_files(["LICENSE"])
11
-
12
- config_setting(
13
- name = "darwin",
14
- values = {"cpu": "darwin"},
15
- visibility = ["//visibility:public"],
16
- )
17
-
18
- config_setting(
19
- name = "darwin_x86_64",
20
- values = {"cpu": "darwin_x86_64"},
21
- visibility = ["//visibility:public"],
22
- )
23
-
24
- config_setting(
25
- name = "windows",
26
- values = {"cpu": "x64_windows"},
27
- visibility = ["//visibility:public"],
28
- )
29
-
30
- config_setting(
31
- name = "windows_msvc",
32
- values = {"cpu": "x64_windows_msvc"},
33
- visibility = ["//visibility:public"],
34
- )
35
-
36
- config_setting(
37
- name = "windows_msys",
38
- values = {"cpu": "x64_windows_msys"},
39
- visibility = ["//visibility:public"],
40
- )
41
-
42
- load(":compiler_config_setting.bzl", "create_msvc_config")
43
-
44
- create_msvc_config()
45
-
46
- STRICT_C_OPTIONS = select({
47
- ":msvc": [],
48
- "//conditions:default": [
49
- "--pedantic-errors",
50
- "-Wall",
51
- "-Wconversion",
52
- "-Werror",
53
- "-Wextra",
54
- "-Wlong-long",
55
- "-Wmissing-declarations",
56
- "-Wmissing-prototypes",
57
- "-Wno-strict-aliasing",
58
- "-Wshadow",
59
- "-Wsign-compare",
60
- ],
61
- })
62
-
63
- filegroup(
64
- name = "public_headers",
65
- srcs = glob(["c/include/brotli/*.h"]),
66
- )
67
-
68
- filegroup(
69
- name = "common_headers",
70
- srcs = glob(["c/common/*.h"]),
71
- )
72
-
73
- filegroup(
74
- name = "common_sources",
75
- srcs = glob(["c/common/*.c"]),
76
- )
77
-
78
- filegroup(
79
- name = "dec_headers",
80
- srcs = glob(["c/dec/*.h"]),
81
- )
82
-
83
- filegroup(
84
- name = "dec_sources",
85
- srcs = glob(["c/dec/*.c"]),
86
- )
87
-
88
- filegroup(
89
- name = "enc_headers",
90
- srcs = glob(["c/enc/*.h"]),
91
- )
92
-
93
- filegroup(
94
- name = "enc_sources",
95
- srcs = glob(["c/enc/*.c"]),
96
- )
97
-
98
- cc_library(
99
- name = "brotli_inc",
100
- hdrs = [":public_headers"],
101
- copts = STRICT_C_OPTIONS,
102
- strip_include_prefix = "c/include",
103
- )
104
-
105
- cc_library(
106
- name = "brotlicommon",
107
- srcs = [":common_sources"],
108
- hdrs = [":common_headers"],
109
- copts = STRICT_C_OPTIONS,
110
- deps = [":brotli_inc"],
111
- )
112
-
113
- cc_library(
114
- name = "brotlidec",
115
- srcs = [":dec_sources"],
116
- hdrs = [":dec_headers"],
117
- copts = STRICT_C_OPTIONS,
118
- deps = [":brotlicommon"],
119
- )
120
-
121
- cc_library(
122
- name = "brotlienc",
123
- srcs = [":enc_sources"],
124
- hdrs = [":enc_headers"],
125
- copts = STRICT_C_OPTIONS,
126
- linkopts = ["-lm"],
127
- deps = [":brotlicommon"],
128
- )
129
-
130
- cc_binary(
131
- name = "brotli",
132
- srcs = ["c/tools/brotli.c"],
133
- copts = STRICT_C_OPTIONS,
134
- linkstatic = 1,
135
- deps = [
136
- ":brotlidec",
137
- ":brotlienc",
138
- ],
139
- )
140
-
141
- filegroup(
142
- name = "dictionary",
143
- srcs = ["c/common/dictionary.bin"],
144
- )