koffi 2.1.2 → 2.1.4

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 (401) hide show
  1. package/package.json +44 -68
  2. package/{LICENSE.txt → src/cnoke/LICENSE.txt} +0 -0
  3. package/src/cnoke/README.md +97 -0
  4. package/src/cnoke/assets/FindCNoke.cmake +71 -0
  5. package/src/cnoke/assets/win_delay_hook.c +34 -0
  6. package/src/cnoke/cnoke.js +968 -0
  7. package/src/cnoke/package.json +25 -0
  8. package/{vendor → src/core}/libcc/libcc.cc +38 -11
  9. package/{vendor → src/core}/libcc/libcc.hh +4 -2
  10. package/{CMakeLists.txt → src/koffi/CMakeLists.txt} +3 -3
  11. package/{ChangeLog.md → src/koffi/ChangeLog.md} +17 -0
  12. package/src/koffi/LICENSE.txt +661 -0
  13. package/{README.md → src/koffi/README.md} +0 -0
  14. package/{benchmark → src/koffi/benchmark}/CMakeLists.txt +9 -6
  15. package/{benchmark → src/koffi/benchmark}/atoi_koffi.js +0 -0
  16. package/{benchmark → src/koffi/benchmark}/atoi_napi.cc +1 -1
  17. package/{benchmark → src/koffi/benchmark}/atoi_napi.js +0 -0
  18. package/{benchmark → src/koffi/benchmark}/atoi_node_ffi.js +0 -0
  19. package/src/koffi/benchmark/benchmark.js +118 -0
  20. package/src/koffi/benchmark/rand_koffi.js +52 -0
  21. package/src/koffi/benchmark/rand_napi.cc +69 -0
  22. package/src/koffi/benchmark/rand_napi.js +47 -0
  23. package/src/koffi/benchmark/rand_node_ffi.js +55 -0
  24. package/{benchmark → src/koffi/benchmark}/raylib_cc.cc +2 -2
  25. package/{benchmark → src/koffi/benchmark}/raylib_cc.js +0 -0
  26. package/{benchmark → src/koffi/benchmark}/raylib_koffi.js +0 -0
  27. package/{benchmark → src/koffi/benchmark}/raylib_node_ffi.js +0 -0
  28. package/{benchmark → src/koffi/benchmark}/raylib_node_raylib.js +0 -0
  29. package/src/koffi/build/2.1.4/koffi_darwin_arm64.tar.gz +0 -0
  30. package/src/koffi/build/2.1.4/koffi_darwin_x64.tar.gz +0 -0
  31. package/src/koffi/build/2.1.4/koffi_freebsd_arm64.tar.gz +0 -0
  32. package/src/koffi/build/2.1.4/koffi_freebsd_ia32.tar.gz +0 -0
  33. package/src/koffi/build/2.1.4/koffi_freebsd_x64.tar.gz +0 -0
  34. package/src/koffi/build/2.1.4/koffi_linux_arm32hf.tar.gz +0 -0
  35. package/src/koffi/build/2.1.4/koffi_linux_arm64.tar.gz +0 -0
  36. package/src/koffi/build/2.1.4/koffi_linux_ia32.tar.gz +0 -0
  37. package/src/koffi/build/2.1.4/koffi_linux_riscv64hf64.tar.gz +0 -0
  38. package/src/koffi/build/2.1.4/koffi_linux_x64.tar.gz +0 -0
  39. package/src/koffi/build/2.1.4/koffi_openbsd_ia32.tar.gz +0 -0
  40. package/src/koffi/build/2.1.4/koffi_openbsd_x64.tar.gz +0 -0
  41. package/src/koffi/build/2.1.4/koffi_win32_arm64.tar.gz +0 -0
  42. package/src/koffi/build/2.1.4/koffi_win32_ia32.tar.gz +0 -0
  43. package/src/koffi/build/2.1.4/koffi_win32_x64.tar.gz +0 -0
  44. package/{doc → src/koffi/doc}/Makefile +0 -0
  45. package/{doc → src/koffi/doc}/benchmarks.md +0 -0
  46. package/{doc → src/koffi/doc}/benchmarks.xlsx +0 -0
  47. package/{doc → src/koffi/doc}/changes.md +0 -0
  48. package/{doc → src/koffi/doc}/conf.py +0 -0
  49. package/{doc → src/koffi/doc}/contribute.md +5 -5
  50. package/{doc → src/koffi/doc}/functions.md +0 -0
  51. package/{doc → src/koffi/doc}/index.rst +1 -1
  52. package/{doc → src/koffi/doc}/make.bat +0 -0
  53. package/{doc → src/koffi/doc}/memory.md +1 -0
  54. package/{doc → src/koffi/doc}/platforms.md +0 -0
  55. package/{doc → src/koffi/doc}/poetry.lock +0 -0
  56. package/{doc → src/koffi/doc}/pyproject.toml +0 -0
  57. package/{doc → src/koffi/doc}/start.md +0 -0
  58. package/{doc → src/koffi/doc}/static/bench_linux.png +0 -0
  59. package/{doc → src/koffi/doc}/static/bench_windows.png +0 -0
  60. package/{doc → src/koffi/doc}/static/custom.css +0 -0
  61. package/{doc → src/koffi/doc}/static/perf_linux_20220623.png +0 -0
  62. package/{doc → src/koffi/doc}/static/perf_linux_20220623_2.png +0 -0
  63. package/{doc → src/koffi/doc}/static/perf_linux_20220627.png +0 -0
  64. package/{doc → src/koffi/doc}/static/perf_linux_20220628.png +0 -0
  65. package/{doc → src/koffi/doc}/static/perf_linux_20220812.png +0 -0
  66. package/{doc → src/koffi/doc}/static/perf_windows_20220623.png +0 -0
  67. package/{doc → src/koffi/doc}/static/perf_windows_20220623_2.png +0 -0
  68. package/{doc → src/koffi/doc}/static/perf_windows_20220627.png +0 -0
  69. package/{doc → src/koffi/doc}/static/perf_windows_20220628.png +0 -0
  70. package/{doc → src/koffi/doc}/static/perf_windows_20220812.png +0 -0
  71. package/{doc → src/koffi/doc}/templates/badges.html +1 -1
  72. package/{doc → src/koffi/doc}/types.md +0 -0
  73. package/src/koffi/qemu/qemu/.gitkeep +0 -0
  74. package/{qemu → src/koffi/qemu}/qemu.js +217 -131
  75. package/{qemu → src/koffi/qemu}/registry/machines.json +24 -0
  76. package/{qemu → src/koffi/qemu}/registry/sha256sum.txt +0 -0
  77. package/src/{abi_arm32.cc → koffi/src/abi_arm32.cc} +1 -1
  78. package/src/{abi_arm32_fwd.S → koffi/src/abi_arm32_fwd.S} +0 -0
  79. package/src/{abi_arm64.cc → koffi/src/abi_arm64.cc} +1 -1
  80. package/src/{abi_arm64_fwd.S → koffi/src/abi_arm64_fwd.S} +0 -0
  81. package/src/{abi_arm64_fwd.asm → koffi/src/abi_arm64_fwd.asm} +0 -0
  82. package/src/{abi_riscv64.cc → koffi/src/abi_riscv64.cc} +1 -1
  83. package/src/{abi_riscv64_fwd.S → koffi/src/abi_riscv64_fwd.S} +0 -0
  84. package/src/{abi_x64_sysv.cc → koffi/src/abi_x64_sysv.cc} +1 -1
  85. package/src/{abi_x64_sysv_fwd.S → koffi/src/abi_x64_sysv_fwd.S} +0 -0
  86. package/src/{abi_x64_win.cc → koffi/src/abi_x64_win.cc} +1 -1
  87. package/src/{abi_x64_win_fwd.asm → koffi/src/abi_x64_win_fwd.asm} +0 -0
  88. package/src/{abi_x86.cc → koffi/src/abi_x86.cc} +1 -1
  89. package/src/{abi_x86_fwd.S → koffi/src/abi_x86_fwd.S} +0 -0
  90. package/src/{abi_x86_fwd.asm → koffi/src/abi_x86_fwd.asm} +0 -0
  91. package/src/{call.cc → koffi/src/call.cc} +1 -1
  92. package/src/{call.hh → koffi/src/call.hh} +2 -2
  93. package/src/{ffi.cc → koffi/src/ffi.cc} +36 -20
  94. package/src/{ffi.hh → koffi/src/ffi.hh} +6 -4
  95. package/src/{index.js → koffi/src/index.js} +0 -0
  96. package/src/{parser.cc → koffi/src/parser.cc} +1 -1
  97. package/src/{parser.hh → koffi/src/parser.hh} +1 -1
  98. package/src/{util.cc → koffi/src/util.cc} +1 -1
  99. package/src/{util.hh → koffi/src/util.hh} +1 -1
  100. package/{test → src/koffi/test}/CMakeLists.txt +14 -15
  101. package/{test → src/koffi/test}/async.js +0 -0
  102. package/{test → src/koffi/test}/callbacks.js +0 -0
  103. package/{test → src/koffi/test}/misc.c +13 -0
  104. package/{test → src/koffi/test}/misc.def +0 -0
  105. package/{test → src/koffi/test}/raylib.js +0 -0
  106. package/{test → src/koffi/test}/sqlite.js +1 -1
  107. package/{test → src/koffi/test}/sync.js +17 -0
  108. package/vendor/brotli/BUILD +144 -0
  109. package/vendor/brotli/CMakeLists.txt +421 -0
  110. package/vendor/brotli/CONTRIBUTING.md +27 -0
  111. package/vendor/brotli/LICENSE +19 -0
  112. package/vendor/brotli/MANIFEST.in +17 -0
  113. package/vendor/brotli/Makefile +55 -0
  114. package/vendor/brotli/Makefile.am +38 -0
  115. package/vendor/brotli/README +15 -0
  116. package/vendor/brotli/README.md +104 -0
  117. package/vendor/brotli/WORKSPACE +21 -0
  118. package/vendor/brotli/bootstrap +35 -0
  119. package/vendor/brotli/c/common/constants.c +15 -0
  120. package/vendor/brotli/c/common/constants.h +200 -0
  121. package/vendor/brotli/c/common/context.c +156 -0
  122. package/vendor/brotli/c/common/context.h +113 -0
  123. package/vendor/brotli/c/common/dictionary.c +5914 -0
  124. package/vendor/brotli/c/common/dictionary.h +64 -0
  125. package/vendor/brotli/c/common/platform.c +22 -0
  126. package/vendor/brotli/c/common/platform.h +594 -0
  127. package/vendor/brotli/c/common/transform.c +291 -0
  128. package/vendor/brotli/c/common/transform.h +85 -0
  129. package/vendor/brotli/c/common/version.h +26 -0
  130. package/vendor/brotli/c/dec/bit_reader.c +76 -0
  131. package/vendor/brotli/c/dec/bit_reader.h +351 -0
  132. package/vendor/brotli/c/dec/decode.c +2608 -0
  133. package/vendor/brotli/c/dec/huffman.c +339 -0
  134. package/vendor/brotli/c/dec/huffman.h +121 -0
  135. package/vendor/brotli/c/dec/prefix.h +732 -0
  136. package/vendor/brotli/c/dec/state.c +159 -0
  137. package/vendor/brotli/c/dec/state.h +365 -0
  138. package/vendor/brotli/c/enc/backward_references.c +145 -0
  139. package/vendor/brotli/c/enc/backward_references.h +39 -0
  140. package/vendor/brotli/c/enc/backward_references_hq.c +843 -0
  141. package/vendor/brotli/c/enc/backward_references_hq.h +95 -0
  142. package/vendor/brotli/c/enc/backward_references_inc.h +163 -0
  143. package/vendor/brotli/c/enc/bit_cost.c +35 -0
  144. package/vendor/brotli/c/enc/bit_cost.h +63 -0
  145. package/vendor/brotli/c/enc/bit_cost_inc.h +127 -0
  146. package/vendor/brotli/c/enc/block_encoder_inc.h +34 -0
  147. package/vendor/brotli/c/enc/block_splitter.c +194 -0
  148. package/vendor/brotli/c/enc/block_splitter.h +51 -0
  149. package/vendor/brotli/c/enc/block_splitter_inc.h +440 -0
  150. package/vendor/brotli/c/enc/brotli_bit_stream.c +1314 -0
  151. package/vendor/brotli/c/enc/brotli_bit_stream.h +84 -0
  152. package/vendor/brotli/c/enc/cluster.c +56 -0
  153. package/vendor/brotli/c/enc/cluster.h +48 -0
  154. package/vendor/brotli/c/enc/cluster_inc.h +320 -0
  155. package/vendor/brotli/c/enc/command.c +28 -0
  156. package/vendor/brotli/c/enc/command.h +190 -0
  157. package/vendor/brotli/c/enc/compress_fragment.c +790 -0
  158. package/vendor/brotli/c/enc/compress_fragment.h +61 -0
  159. package/vendor/brotli/c/enc/compress_fragment_two_pass.c +645 -0
  160. package/vendor/brotli/c/enc/compress_fragment_two_pass.h +54 -0
  161. package/vendor/brotli/c/enc/dictionary_hash.c +1846 -0
  162. package/vendor/brotli/c/enc/dictionary_hash.h +25 -0
  163. package/vendor/brotli/c/enc/encode.c +1927 -0
  164. package/vendor/brotli/c/enc/encoder_dict.c +33 -0
  165. package/vendor/brotli/c/enc/encoder_dict.h +43 -0
  166. package/vendor/brotli/c/enc/entropy_encode.c +503 -0
  167. package/vendor/brotli/c/enc/entropy_encode.h +122 -0
  168. package/vendor/brotli/c/enc/entropy_encode_static.h +539 -0
  169. package/vendor/brotli/c/enc/fast_log.c +105 -0
  170. package/vendor/brotli/c/enc/fast_log.h +66 -0
  171. package/vendor/brotli/c/enc/find_match_length.h +79 -0
  172. package/vendor/brotli/c/enc/hash.h +488 -0
  173. package/vendor/brotli/c/enc/hash_composite_inc.h +125 -0
  174. package/vendor/brotli/c/enc/hash_forgetful_chain_inc.h +293 -0
  175. package/vendor/brotli/c/enc/hash_longest_match64_inc.h +267 -0
  176. package/vendor/brotli/c/enc/hash_longest_match_inc.h +262 -0
  177. package/vendor/brotli/c/enc/hash_longest_match_quickly_inc.h +266 -0
  178. package/vendor/brotli/c/enc/hash_rolling_inc.h +212 -0
  179. package/vendor/brotli/c/enc/hash_to_binary_tree_inc.h +329 -0
  180. package/vendor/brotli/c/enc/histogram.c +100 -0
  181. package/vendor/brotli/c/enc/histogram.h +63 -0
  182. package/vendor/brotli/c/enc/histogram_inc.h +51 -0
  183. package/vendor/brotli/c/enc/literal_cost.c +175 -0
  184. package/vendor/brotli/c/enc/literal_cost.h +30 -0
  185. package/vendor/brotli/c/enc/memory.c +170 -0
  186. package/vendor/brotli/c/enc/memory.h +114 -0
  187. package/vendor/brotli/c/enc/metablock.c +663 -0
  188. package/vendor/brotli/c/enc/metablock.h +105 -0
  189. package/vendor/brotli/c/enc/metablock_inc.h +183 -0
  190. package/vendor/brotli/c/enc/params.h +46 -0
  191. package/vendor/brotli/c/enc/prefix.h +53 -0
  192. package/vendor/brotli/c/enc/quality.h +165 -0
  193. package/vendor/brotli/c/enc/ringbuffer.h +167 -0
  194. package/vendor/brotli/c/enc/static_dict.c +486 -0
  195. package/vendor/brotli/c/enc/static_dict.h +40 -0
  196. package/vendor/brotli/c/enc/static_dict_lut.h +5864 -0
  197. package/vendor/brotli/c/enc/utf8_util.c +85 -0
  198. package/vendor/brotli/c/enc/utf8_util.h +32 -0
  199. package/vendor/brotli/c/enc/write_bits.h +87 -0
  200. package/vendor/brotli/c/include/brotli/decode.h +344 -0
  201. package/vendor/brotli/c/include/brotli/encode.h +448 -0
  202. package/vendor/brotli/c/include/brotli/port.h +288 -0
  203. package/vendor/brotli/c/include/brotli/types.h +83 -0
  204. package/vendor/brotli/c/tools/brotli.c +1116 -0
  205. package/vendor/brotli/c/tools/brotli.md +107 -0
  206. package/vendor/brotli/compiler_config_setting.bzl +28 -0
  207. package/vendor/brotli/configure +8 -0
  208. package/vendor/brotli/configure-cmake +318 -0
  209. package/vendor/brotli/configure.ac +14 -0
  210. package/vendor/brotli/docs/brotli.1 +132 -0
  211. package/vendor/brotli/docs/constants.h.3 +47 -0
  212. package/vendor/brotli/docs/decode.h.3 +415 -0
  213. package/vendor/brotli/docs/encode.h.3 +586 -0
  214. package/vendor/brotli/docs/types.h.3 +117 -0
  215. package/vendor/brotli/premake5.lua +78 -0
  216. package/vendor/brotli/python/Makefile +57 -0
  217. package/vendor/brotli/python/README.md +54 -0
  218. package/vendor/brotli/python/_brotli.cc +753 -0
  219. package/vendor/brotli/python/bro.py +160 -0
  220. package/vendor/brotli/python/brotli.py +56 -0
  221. package/vendor/brotli/python/tests/__init__.py +0 -0
  222. package/vendor/brotli/python/tests/_test_utils.py +112 -0
  223. package/vendor/brotli/python/tests/bro_test.py +102 -0
  224. package/vendor/brotli/python/tests/compress_test.py +41 -0
  225. package/vendor/brotli/python/tests/compressor_test.py +94 -0
  226. package/vendor/brotli/python/tests/decompress_test.py +42 -0
  227. package/vendor/brotli/python/tests/decompressor_test.py +59 -0
  228. package/vendor/brotli/scripts/libbrotlicommon.pc.in +11 -0
  229. package/vendor/brotli/scripts/libbrotlidec.pc.in +12 -0
  230. package/vendor/brotli/scripts/libbrotlienc.pc.in +12 -0
  231. package/vendor/brotli/scripts/sources.lst +104 -0
  232. package/vendor/brotli/setup.cfg +5 -0
  233. package/vendor/brotli/setup.py +293 -0
  234. package/vendor/brotli/tests/Makefile +17 -0
  235. package/vendor/brotli/tests/compatibility_test.sh +25 -0
  236. package/vendor/brotli/tests/roundtrip_test.sh +36 -0
  237. package/vendor/brotli/tests/run-compatibility-test.cmake +31 -0
  238. package/vendor/brotli/tests/run-roundtrip-test.cmake +36 -0
  239. package/vendor/brotli/tests/testdata/empty +0 -0
  240. package/vendor/brotli/tests/testdata/empty.compressed +1 -0
  241. package/vendor/brotli/tests/testdata/ukkonooa +1 -0
  242. package/vendor/brotli/tests/testdata/ukkonooa.compressed +0 -0
  243. package/vendor/miniz/ChangeLog.md +235 -0
  244. package/vendor/miniz/LICENSE +22 -0
  245. package/vendor/miniz/examples/example1.c +105 -0
  246. package/vendor/miniz/examples/example2.c +164 -0
  247. package/vendor/miniz/examples/example3.c +269 -0
  248. package/vendor/miniz/examples/example4.c +102 -0
  249. package/vendor/miniz/examples/example5.c +327 -0
  250. package/vendor/miniz/examples/example6.c +166 -0
  251. package/vendor/miniz/miniz.c +7835 -0
  252. package/vendor/miniz/miniz.h +1422 -0
  253. package/vendor/miniz/readme.md +46 -0
  254. package/vendor/{sqlite3 → sqlite3mc}/sqlite3ext.h +18 -2
  255. package/vendor/{sqlite3/sqlite3.c → sqlite3mc/sqlite3mc.c} +60872 -4890
  256. package/vendor/sqlite3mc/sqlite3mc.def +312 -0
  257. package/vendor/{sqlite3/sqlite3.h → sqlite3mc/sqlite3mc.h} +480 -36
  258. package/build/qemu/2.1.2/koffi_darwin_arm64.tar.gz +0 -0
  259. package/build/qemu/2.1.2/koffi_darwin_x64.tar.gz +0 -0
  260. package/build/qemu/2.1.2/koffi_freebsd_arm64.tar.gz +0 -0
  261. package/build/qemu/2.1.2/koffi_freebsd_ia32.tar.gz +0 -0
  262. package/build/qemu/2.1.2/koffi_freebsd_x64.tar.gz +0 -0
  263. package/build/qemu/2.1.2/koffi_linux_arm32hf.tar.gz +0 -0
  264. package/build/qemu/2.1.2/koffi_linux_arm64.tar.gz +0 -0
  265. package/build/qemu/2.1.2/koffi_linux_ia32.tar.gz +0 -0
  266. package/build/qemu/2.1.2/koffi_linux_riscv64hf64.tar.gz +0 -0
  267. package/build/qemu/2.1.2/koffi_linux_x64.tar.gz +0 -0
  268. package/build/qemu/2.1.2/koffi_openbsd_ia32.tar.gz +0 -0
  269. package/build/qemu/2.1.2/koffi_openbsd_x64.tar.gz +0 -0
  270. package/build/qemu/2.1.2/koffi_win32_arm64.tar.gz +0 -0
  271. package/build/qemu/2.1.2/koffi_win32_ia32.tar.gz +0 -0
  272. package/build/qemu/2.1.2/koffi_win32_x64.tar.gz +0 -0
  273. package/vendor/_patches/glfw_001_fix_openbsd_xlib_soname.patch +0 -145
  274. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj +0 -226
  275. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj.filters +0 -10
  276. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj.user +0 -4
  277. package/vendor/raylib/projects/VS2019-Android/raylib_android.sln +0 -75
  278. package/vendor/raylib/projects/VS2022/examples/audio_module_playing.vcxproj +0 -390
  279. package/vendor/raylib/projects/VS2022/examples/audio_multichannel_sound.vcxproj +0 -390
  280. package/vendor/raylib/projects/VS2022/examples/audio_music_stream.vcxproj +0 -390
  281. package/vendor/raylib/projects/VS2022/examples/audio_raw_stream.vcxproj +0 -390
  282. package/vendor/raylib/projects/VS2022/examples/audio_sound_loading.vcxproj +0 -390
  283. package/vendor/raylib/projects/VS2022/examples/audio_stream_effects.vcxproj +0 -390
  284. package/vendor/raylib/projects/VS2022/examples/core_2d_camera.vcxproj +0 -390
  285. package/vendor/raylib/projects/VS2022/examples/core_2d_camera_mouse_zoom.vcxproj +0 -390
  286. package/vendor/raylib/projects/VS2022/examples/core_2d_camera_platformer.vcxproj +0 -390
  287. package/vendor/raylib/projects/VS2022/examples/core_3d_camera_first_person.vcxproj +0 -390
  288. package/vendor/raylib/projects/VS2022/examples/core_3d_camera_free.vcxproj +0 -390
  289. package/vendor/raylib/projects/VS2022/examples/core_3d_camera_mode.vcxproj +0 -390
  290. package/vendor/raylib/projects/VS2022/examples/core_3d_picking.vcxproj +0 -390
  291. package/vendor/raylib/projects/VS2022/examples/core_basic_screen_manager.vcxproj +0 -390
  292. package/vendor/raylib/projects/VS2022/examples/core_basic_window.vcxproj +0 -390
  293. package/vendor/raylib/projects/VS2022/examples/core_custom_frame_control.vcxproj +0 -390
  294. package/vendor/raylib/projects/VS2022/examples/core_custom_logging.vcxproj +0 -390
  295. package/vendor/raylib/projects/VS2022/examples/core_drop_files.vcxproj +0 -390
  296. package/vendor/raylib/projects/VS2022/examples/core_input_gamepad.vcxproj +0 -387
  297. package/vendor/raylib/projects/VS2022/examples/core_input_gestures.vcxproj +0 -387
  298. package/vendor/raylib/projects/VS2022/examples/core_input_keys.vcxproj +0 -387
  299. package/vendor/raylib/projects/VS2022/examples/core_input_mouse.vcxproj +0 -387
  300. package/vendor/raylib/projects/VS2022/examples/core_input_mouse_wheel.vcxproj +0 -387
  301. package/vendor/raylib/projects/VS2022/examples/core_input_multitouch.vcxproj +0 -387
  302. package/vendor/raylib/projects/VS2022/examples/core_loading_thread.vcxproj +0 -387
  303. package/vendor/raylib/projects/VS2022/examples/core_random_values.vcxproj +0 -387
  304. package/vendor/raylib/projects/VS2022/examples/core_scissor_test.vcxproj +0 -387
  305. package/vendor/raylib/projects/VS2022/examples/core_split_screen.vcxproj +0 -387
  306. package/vendor/raylib/projects/VS2022/examples/core_storage_values.vcxproj +0 -387
  307. package/vendor/raylib/projects/VS2022/examples/core_vr_simulator.vcxproj +0 -387
  308. package/vendor/raylib/projects/VS2022/examples/core_window_flags.vcxproj +0 -387
  309. package/vendor/raylib/projects/VS2022/examples/core_window_letterbox.vcxproj +0 -387
  310. package/vendor/raylib/projects/VS2022/examples/core_window_should_close.vcxproj +0 -390
  311. package/vendor/raylib/projects/VS2022/examples/core_world_screen.vcxproj +0 -387
  312. package/vendor/raylib/projects/VS2022/examples/easings_testbed.vcxproj +0 -387
  313. package/vendor/raylib/projects/VS2022/examples/embedded_files_loading.vcxproj +0 -387
  314. package/vendor/raylib/projects/VS2022/examples/models_animation.vcxproj +0 -387
  315. package/vendor/raylib/projects/VS2022/examples/models_billboard.vcxproj +0 -387
  316. package/vendor/raylib/projects/VS2022/examples/models_box_collisions.vcxproj +0 -387
  317. package/vendor/raylib/projects/VS2022/examples/models_cubicmap.vcxproj +0 -387
  318. package/vendor/raylib/projects/VS2022/examples/models_first_person_maze.vcxproj +0 -387
  319. package/vendor/raylib/projects/VS2022/examples/models_geometric_shapes.vcxproj +0 -387
  320. package/vendor/raylib/projects/VS2022/examples/models_heightmap.vcxproj +0 -387
  321. package/vendor/raylib/projects/VS2022/examples/models_loading.vcxproj +0 -387
  322. package/vendor/raylib/projects/VS2022/examples/models_loading_gltf.vcxproj +0 -387
  323. package/vendor/raylib/projects/VS2022/examples/models_loading_vox.vcxproj +0 -387
  324. package/vendor/raylib/projects/VS2022/examples/models_mesh_generation.vcxproj +0 -387
  325. package/vendor/raylib/projects/VS2022/examples/models_mesh_picking.vcxproj +0 -387
  326. package/vendor/raylib/projects/VS2022/examples/models_orthographic_projection.vcxproj +0 -387
  327. package/vendor/raylib/projects/VS2022/examples/models_rlgl_solar_system.vcxproj +0 -387
  328. package/vendor/raylib/projects/VS2022/examples/models_skybox.vcxproj +0 -387
  329. package/vendor/raylib/projects/VS2022/examples/models_waving_cubes.vcxproj +0 -387
  330. package/vendor/raylib/projects/VS2022/examples/models_yaw_pitch_roll.vcxproj +0 -387
  331. package/vendor/raylib/projects/VS2022/examples/rlgl_compute_shaders.vcxproj +0 -391
  332. package/vendor/raylib/projects/VS2022/examples/rlgl_standalone.vcxproj +0 -391
  333. package/vendor/raylib/projects/VS2022/examples/shaders_basic_lighting.vcxproj +0 -387
  334. package/vendor/raylib/projects/VS2022/examples/shaders_custom_uniform.vcxproj +0 -387
  335. package/vendor/raylib/projects/VS2022/examples/shaders_eratosthenes.vcxproj +0 -387
  336. package/vendor/raylib/projects/VS2022/examples/shaders_fog.vcxproj +0 -387
  337. package/vendor/raylib/projects/VS2022/examples/shaders_hot_reloading.vcxproj +0 -387
  338. package/vendor/raylib/projects/VS2022/examples/shaders_julia_set.vcxproj +0 -387
  339. package/vendor/raylib/projects/VS2022/examples/shaders_mesh_instancing.vcxproj +0 -387
  340. package/vendor/raylib/projects/VS2022/examples/shaders_model_shader.vcxproj +0 -387
  341. package/vendor/raylib/projects/VS2022/examples/shaders_multi_sample2d.vcxproj +0 -387
  342. package/vendor/raylib/projects/VS2022/examples/shaders_palette_switch.vcxproj +0 -387
  343. package/vendor/raylib/projects/VS2022/examples/shaders_postprocessing.vcxproj +0 -387
  344. package/vendor/raylib/projects/VS2022/examples/shaders_raymarching.vcxproj +0 -387
  345. package/vendor/raylib/projects/VS2022/examples/shaders_shapes_textures.vcxproj +0 -387
  346. package/vendor/raylib/projects/VS2022/examples/shaders_simple_mask.vcxproj +0 -387
  347. package/vendor/raylib/projects/VS2022/examples/shaders_spotlight.vcxproj +0 -387
  348. package/vendor/raylib/projects/VS2022/examples/shaders_texture_drawing.vcxproj +0 -387
  349. package/vendor/raylib/projects/VS2022/examples/shaders_texture_waves.vcxproj +0 -387
  350. package/vendor/raylib/projects/VS2022/examples/shapes_basic_shapes.vcxproj +0 -387
  351. package/vendor/raylib/projects/VS2022/examples/shapes_bouncing_ball.vcxproj +0 -387
  352. package/vendor/raylib/projects/VS2022/examples/shapes_collision_area.vcxproj +0 -387
  353. package/vendor/raylib/projects/VS2022/examples/shapes_colors_palette.vcxproj +0 -387
  354. package/vendor/raylib/projects/VS2022/examples/shapes_draw_circle_sector.vcxproj +0 -387
  355. package/vendor/raylib/projects/VS2022/examples/shapes_draw_rectangle_rounded.vcxproj +0 -387
  356. package/vendor/raylib/projects/VS2022/examples/shapes_draw_ring.vcxproj +0 -387
  357. package/vendor/raylib/projects/VS2022/examples/shapes_easings_ball_anim.vcxproj +0 -387
  358. package/vendor/raylib/projects/VS2022/examples/shapes_easings_box_anim.vcxproj +0 -387
  359. package/vendor/raylib/projects/VS2022/examples/shapes_easings_rectangle_array.vcxproj +0 -387
  360. package/vendor/raylib/projects/VS2022/examples/shapes_following_eyes.vcxproj +0 -387
  361. package/vendor/raylib/projects/VS2022/examples/shapes_lines_bezier.vcxproj +0 -387
  362. package/vendor/raylib/projects/VS2022/examples/shapes_logo_raylib.vcxproj +0 -387
  363. package/vendor/raylib/projects/VS2022/examples/shapes_logo_raylib_anim.vcxproj +0 -387
  364. package/vendor/raylib/projects/VS2022/examples/shapes_rectangle_scaling.vcxproj +0 -387
  365. package/vendor/raylib/projects/VS2022/examples/text_codepoints_loading.vcxproj +0 -387
  366. package/vendor/raylib/projects/VS2022/examples/text_draw_3d.vcxproj +0 -387
  367. package/vendor/raylib/projects/VS2022/examples/text_font_filters.vcxproj +0 -387
  368. package/vendor/raylib/projects/VS2022/examples/text_font_loading.vcxproj +0 -387
  369. package/vendor/raylib/projects/VS2022/examples/text_font_sdf.vcxproj +0 -387
  370. package/vendor/raylib/projects/VS2022/examples/text_font_spritefont.vcxproj +0 -387
  371. package/vendor/raylib/projects/VS2022/examples/text_format_text.vcxproj +0 -387
  372. package/vendor/raylib/projects/VS2022/examples/text_input_box.vcxproj +0 -387
  373. package/vendor/raylib/projects/VS2022/examples/text_raylib_fonts.vcxproj +0 -387
  374. package/vendor/raylib/projects/VS2022/examples/text_rectangle_bounds.vcxproj +0 -387
  375. package/vendor/raylib/projects/VS2022/examples/text_unicode.vcxproj +0 -387
  376. package/vendor/raylib/projects/VS2022/examples/text_writing_anim.vcxproj +0 -387
  377. package/vendor/raylib/projects/VS2022/examples/textures_background_scrolling.vcxproj +0 -387
  378. package/vendor/raylib/projects/VS2022/examples/textures_blend_modes.vcxproj +0 -387
  379. package/vendor/raylib/projects/VS2022/examples/textures_bunnymark.vcxproj +0 -387
  380. package/vendor/raylib/projects/VS2022/examples/textures_draw_tiled.vcxproj +0 -387
  381. package/vendor/raylib/projects/VS2022/examples/textures_fog_of_war.vcxproj +0 -387
  382. package/vendor/raylib/projects/VS2022/examples/textures_gif_player.vcxproj +0 -387
  383. package/vendor/raylib/projects/VS2022/examples/textures_image_drawing.vcxproj +0 -387
  384. package/vendor/raylib/projects/VS2022/examples/textures_image_generation.vcxproj +0 -387
  385. package/vendor/raylib/projects/VS2022/examples/textures_image_loading.vcxproj +0 -387
  386. package/vendor/raylib/projects/VS2022/examples/textures_image_processing.vcxproj +0 -387
  387. package/vendor/raylib/projects/VS2022/examples/textures_image_text.vcxproj +0 -387
  388. package/vendor/raylib/projects/VS2022/examples/textures_logo_raylib.vcxproj +0 -387
  389. package/vendor/raylib/projects/VS2022/examples/textures_mouse_painting.vcxproj +0 -387
  390. package/vendor/raylib/projects/VS2022/examples/textures_npatch_drawing.vcxproj +0 -387
  391. package/vendor/raylib/projects/VS2022/examples/textures_particles_blending.vcxproj +0 -387
  392. package/vendor/raylib/projects/VS2022/examples/textures_polygon.vcxproj +0 -387
  393. package/vendor/raylib/projects/VS2022/examples/textures_raw_data.vcxproj +0 -387
  394. package/vendor/raylib/projects/VS2022/examples/textures_sprite_anim.vcxproj +0 -387
  395. package/vendor/raylib/projects/VS2022/examples/textures_sprite_button.vcxproj +0 -387
  396. package/vendor/raylib/projects/VS2022/examples/textures_sprite_explosion.vcxproj +0 -387
  397. package/vendor/raylib/projects/VS2022/examples/textures_srcrec_dstrec.vcxproj +0 -387
  398. package/vendor/raylib/projects/VS2022/examples/textures_to_image.vcxproj +0 -387
  399. package/vendor/raylib/projects/VS2022/raylib/raylib.vcxproj +0 -340
  400. package/vendor/raylib/projects/VS2022/raylib.sln +0 -2347
  401. package/vendor/sqlite3/shell.c +0 -23496
@@ -11,7 +11,7 @@
11
11
  // You should have received a copy of the GNU Affero General Public License
12
12
  // along with this program. If not, see https://www.gnu.org/licenses/.
13
13
 
14
- #include "vendor/libcc/libcc.hh"
14
+ #include "src/core/libcc/libcc.hh"
15
15
  #include "call.hh"
16
16
  #include "ffi.hh"
17
17
  #include "util.hh"
@@ -13,7 +13,7 @@
13
13
 
14
14
  #pragma once
15
15
 
16
- #include "vendor/libcc/libcc.hh"
16
+ #include "src/core/libcc/libcc.hh"
17
17
  #include "ffi.hh"
18
18
  #include "util.hh"
19
19
 
@@ -156,7 +156,7 @@ inline T *CallData::AllocHeap(Size size, Size align)
156
156
  return ptr;
157
157
  } else {
158
158
  #ifdef RG_DEBUG
159
- int flags = (int)Allocator::Flag::Zero;
159
+ int flags = (int)AllocFlag::Zero;
160
160
  #else
161
161
  int flags = 0;
162
162
  #endif
@@ -11,7 +11,7 @@
11
11
  // You should have received a copy of the GNU Affero General Public License
12
12
  // along with this program. If not, see https://www.gnu.org/licenses/.
13
13
 
14
- #include "vendor/libcc/libcc.hh"
14
+ #include "src/core/libcc/libcc.hh"
15
15
  #include "ffi.hh"
16
16
  #include "call.hh"
17
17
  #include "parser.hh"
@@ -44,11 +44,8 @@ namespace RG {
44
44
  const int TypeInfoMarker = 0xDEADBEEF;
45
45
  const int CastMarker = 0xDEADBEEF;
46
46
 
47
- static bool ChangeMemorySize(const char *name, Napi::Value value, Size *out_size)
47
+ static bool ChangeSize(const char *name, Napi::Value value, Size min_size, Size max_size, Size *out_size)
48
48
  {
49
- const Size MinSize = Kibibytes(1);
50
- const Size MaxSize = Mebibytes(16);
51
-
52
49
  Napi::Env env = value.Env();
53
50
 
54
51
  if (!value.IsNumber()) {
@@ -60,8 +57,8 @@ static bool ChangeMemorySize(const char *name, Napi::Value value, Size *out_size
60
57
 
61
58
  int64_t size = value.As<Napi::Number>().Int64Value();
62
59
 
63
- if (size < MinSize || size > MaxSize) {
64
- ThrowError<Napi::Error>(env, "Setting '%1' must be between %2 and %3", name, FmtMemSize(MinSize), FmtMemSize(MaxSize));
60
+ if (size < min_size || size > max_size) {
61
+ ThrowError<Napi::Error>(env, "Setting '%1' must be between %2 and %3", name, FmtMemSize(min_size), FmtMemSize(max_size));
65
62
  return false;
66
63
  }
67
64
 
@@ -69,6 +66,14 @@ static bool ChangeMemorySize(const char *name, Napi::Value value, Size *out_size
69
66
  return true;
70
67
  }
71
68
 
69
+ static bool ChangeMemorySize(const char *name, Napi::Value value, Size *out_size)
70
+ {
71
+ const Size MinSize = Kibibytes(1);
72
+ const Size MaxSize = Mebibytes(16);
73
+
74
+ return ChangeSize(name, value, MinSize, MaxSize, out_size);
75
+ }
76
+
72
77
  static bool ChangeAsyncLimit(const char *name, Napi::Value value, int max, int *out_limit)
73
78
  {
74
79
  Napi::Env env = value.Env();
@@ -113,6 +118,7 @@ static Napi::Value GetSetConfig(const Napi::CallbackInfo &info)
113
118
  Size async_heap_size = instance->async_heap_size;
114
119
  int resident_async_pools = instance->resident_async_pools;
115
120
  int max_async_calls = resident_async_pools + instance->max_temporaries;
121
+ Size max_type_size = instance->max_type_size;
116
122
 
117
123
  Napi::Object obj = info[0].As<Napi::Object>();
118
124
  Napi::Array keys = obj.GetPropertyNames();
@@ -139,6 +145,9 @@ static Napi::Value GetSetConfig(const Napi::CallbackInfo &info)
139
145
  } else if (key == "max_async_calls") {
140
146
  if (!ChangeAsyncLimit(key.c_str(), value, MaxAsyncCalls, &max_async_calls))
141
147
  return env.Null();
148
+ } else if (key == "max_type_size") {
149
+ if (!ChangeSize(key.c_str(), value, 32, Mebibytes(512), &max_type_size))
150
+ return env.Null();
142
151
  } else {
143
152
  ThrowError<Napi::Error>(env, "Unexpected config member '%1'", key.c_str());
144
153
  return env.Null();
@@ -156,6 +165,7 @@ static Napi::Value GetSetConfig(const Napi::CallbackInfo &info)
156
165
  instance->async_heap_size = async_heap_size;
157
166
  instance->resident_async_pools = resident_async_pools;
158
167
  instance->max_temporaries = max_async_calls - resident_async_pools;
168
+ instance->max_type_size = max_type_size;
159
169
  }
160
170
 
161
171
  Napi::Object obj = Napi::Object::New(env);
@@ -166,6 +176,7 @@ static Napi::Value GetSetConfig(const Napi::CallbackInfo &info)
166
176
  obj.Set("async_heap_size", instance->async_heap_size);
167
177
  obj.Set("resident_async_pools", instance->resident_async_pools);
168
178
  obj.Set("max_async_calls", instance->resident_async_pools + instance->max_temporaries);
179
+ obj.Set("max_type_size", instance->max_type_size);
169
180
 
170
181
  return obj;
171
182
  }
@@ -210,6 +221,7 @@ static Napi::Value CreateStructType(const Napi::CallbackInfo &info, bool pad)
210
221
  type->align = 1;
211
222
 
212
223
  HashSet<const char *> members;
224
+ int64_t size = 0;
213
225
 
214
226
  for (uint32_t i = 0; i < keys.Length(); i++) {
215
227
  RecordMember member = {};
@@ -250,11 +262,15 @@ static Napi::Value CreateStructType(const Napi::CallbackInfo &info, bool pad)
250
262
  if (!align) {
251
263
  align = pad ? member.type->align : 1;
252
264
  }
253
- member.offset = (int16_t)AlignLen(type->size, align);
265
+ member.offset = (int32_t)AlignLen(size, align);
254
266
 
255
- type->size = (int16_t)(member.offset + member.type->size);
267
+ size = member.offset + member.type->size;
256
268
  type->align = std::max(type->align, align);
257
269
 
270
+ if (size > instance->max_type_size) {
271
+ ThrowError<Napi::Error>(env, "Struct '%1' size is too high (max = %2)", type->name, FmtMemSize(size));
272
+ return env.Null();
273
+ }
258
274
  if (!members.TrySet(member.name).second) {
259
275
  ThrowError<Napi::Error>(env, "Duplicate member '%1' in struct '%2'", member.name, type->name);
260
276
  return env.Null();
@@ -263,12 +279,12 @@ static Napi::Value CreateStructType(const Napi::CallbackInfo &info, bool pad)
263
279
  type->members.Append(member);
264
280
  }
265
281
 
266
- if (!type->size) {
267
- ThrowError<Napi::TypeError>(env, "Empty struct '%1' is not allowed in C", type->name);
282
+ size = (int32_t)AlignLen(size, type->align);
283
+ if (!size) {
284
+ ThrowError<Napi::Error>(env, "Empty struct '%1' is not allowed in C", type->name);
268
285
  return env.Null();
269
286
  }
270
-
271
- type->size = (int16_t)AlignLen(type->size, type->align);
287
+ type->size = (int32_t)size;
272
288
 
273
289
  // If the insert succeeds, we cannot fail anymore
274
290
  if (named && !instance->types_map.TrySet(type->name, type).second) {
@@ -565,7 +581,7 @@ static Napi::Value CreateArrayType(const Napi::CallbackInfo &info)
565
581
  }
566
582
 
567
583
  const TypeInfo *ref = ResolveType(info[0]);
568
- int64_t len = (uint16_t)info[1].As<Napi::Number>().Int64Value();
584
+ int64_t len = info[1].As<Napi::Number>().Int64Value();
569
585
 
570
586
  if (!ref)
571
587
  return env.Null();
@@ -573,8 +589,8 @@ static Napi::Value CreateArrayType(const Napi::CallbackInfo &info)
573
589
  ThrowError<Napi::TypeError>(env, "Array length must be positive and non-zero");
574
590
  return env.Null();
575
591
  }
576
- if (len > INT16_MAX / ref->size) {
577
- ThrowError<Napi::TypeError>(env, "Array length is too high (max = %1)", INT16_MAX / ref->size);
592
+ if (len > instance->max_type_size / ref->size) {
593
+ ThrowError<Napi::TypeError>(env, "Array length is too high (max = %1)", instance->max_type_size / ref->size);
578
594
  return env.Null();
579
595
  }
580
596
 
@@ -615,7 +631,7 @@ static Napi::Value CreateArrayType(const Napi::CallbackInfo &info)
615
631
 
616
632
  type->primitive = PrimitiveKind::Array;
617
633
  type->align = ref->align;
618
- type->size = (int16_t)(len * ref->size);
634
+ type->size = (int32_t)(len * ref->size);
619
635
  type->ref.type = ref;
620
636
  type->hint = hint;
621
637
 
@@ -684,7 +700,7 @@ static bool ParseClassicFunction(Napi::Env env, Napi::String name, Napi::Value r
684
700
  return false;
685
701
  }
686
702
  if ((param.directions & 2) && ++func->out_parameters >= MaxOutParameters) {
687
- ThrowError<Napi::TypeError>(env, "Functions cannot have more than out %1 parameters", MaxOutParameters);
703
+ ThrowError<Napi::TypeError>(env, "Functions cannot have more than %1 output parameters", MaxOutParameters);
688
704
  return false;
689
705
  }
690
706
 
@@ -1031,7 +1047,7 @@ static Napi::Value TranslateVariadicCall(const Napi::CallbackInfo &info)
1031
1047
  return env.Null();
1032
1048
  }
1033
1049
  if (RG_UNLIKELY((param.directions & 2) && ++func.out_parameters >= MaxOutParameters)) {
1034
- ThrowError<Napi::TypeError>(env, "Functions cannot have more than out %1 parameters", MaxOutParameters);
1050
+ ThrowError<Napi::TypeError>(env, "Functions cannot have more than %1 output parameters", MaxOutParameters);
1035
1051
  return env.Null();
1036
1052
  }
1037
1053
 
@@ -1417,7 +1433,7 @@ void LibraryHolder::Unref() const
1417
1433
 
1418
1434
 
1419
1435
  static void RegisterPrimitiveType(Napi::Env env, Napi::Object map, std::initializer_list<const char *> names,
1420
- PrimitiveKind primitive, int16_t size, int16_t align, const char *ref = nullptr)
1436
+ PrimitiveKind primitive, int32_t size, int16_t align, const char *ref = nullptr)
1421
1437
  {
1422
1438
  RG_ASSERT(names.size() > 0);
1423
1439
  RG_ASSERT(align <= size);
@@ -13,7 +13,7 @@
13
13
 
14
14
  #pragma once
15
15
 
16
- #include "vendor/libcc/libcc.hh"
16
+ #include "src/core/libcc/libcc.hh"
17
17
 
18
18
  #include <napi.h>
19
19
 
@@ -25,10 +25,11 @@ static const Size DefaultAsyncStackSize = Kibibytes(256);
25
25
  static const Size DefaultAsyncHeapSize = Kibibytes(512);
26
26
  static const int DefaultResidentAsyncPools = 2;
27
27
  static const int DefaultMaxAsyncCalls = 64;
28
+ static const Size DefaultMaxTypeSize = Mebibytes(64);
28
29
 
29
30
  static const int MaxAsyncCalls = 256;
30
31
  static const Size MaxParameters = 32;
31
- static const Size MaxOutParameters = 8;
32
+ static const Size MaxOutParameters = 16;
32
33
  static const Size MaxTrampolines = 16;
33
34
 
34
35
  extern const int TypeInfoMarker;
@@ -105,7 +106,7 @@ struct TypeInfo {
105
106
  const char *name;
106
107
 
107
108
  PrimitiveKind primitive;
108
- int16_t size;
109
+ int32_t size;
109
110
  int16_t align;
110
111
 
111
112
  DisposeFunc *dispose;
@@ -127,7 +128,7 @@ struct TypeInfo {
127
128
  struct RecordMember {
128
129
  const char *name;
129
130
  const TypeInfo *type;
130
- int16_t offset;
131
+ int32_t offset;
131
132
  };
132
133
 
133
134
  struct LibraryHolder {
@@ -266,6 +267,7 @@ struct InstanceData {
266
267
  Size async_heap_size = DefaultAsyncHeapSize;
267
268
  int resident_async_pools = DefaultResidentAsyncPools;
268
269
  int max_temporaries = DefaultMaxAsyncCalls - DefaultResidentAsyncPools;
270
+ Size max_type_size = DefaultMaxTypeSize;
269
271
  };
270
272
  RG_STATIC_ASSERT(DefaultResidentAsyncPools <= RG_LEN(InstanceData::memories.data) - 1);
271
273
  RG_STATIC_ASSERT(DefaultMaxAsyncCalls >= DefaultResidentAsyncPools);
File without changes
@@ -11,7 +11,7 @@
11
11
  // You should have received a copy of the GNU Affero General Public License
12
12
  // along with this program. If not, see https://www.gnu.org/licenses/.
13
13
 
14
- #include "vendor/libcc/libcc.hh"
14
+ #include "src/core/libcc/libcc.hh"
15
15
  #include "ffi.hh"
16
16
  #include "parser.hh"
17
17
 
@@ -13,7 +13,7 @@
13
13
 
14
14
  #pragma once
15
15
 
16
- #include "vendor/libcc/libcc.hh"
16
+ #include "src/core/libcc/libcc.hh"
17
17
  #include "util.hh"
18
18
 
19
19
  #include <napi.h>
@@ -11,7 +11,7 @@
11
11
  // You should have received a copy of the GNU Affero General Public License
12
12
  // along with this program. If not, see https://www.gnu.org/licenses/.
13
13
 
14
- #include "vendor/libcc/libcc.hh"
14
+ #include "src/core/libcc/libcc.hh"
15
15
  #include "call.hh"
16
16
  #include "ffi.hh"
17
17
  #include "util.hh"
@@ -13,7 +13,7 @@
13
13
 
14
14
  #pragma once
15
15
 
16
- #include "vendor/libcc/libcc.hh"
16
+ #include "src/core/libcc/libcc.hh"
17
17
 
18
18
  #include <napi.h>
19
19
 
@@ -21,19 +21,18 @@ endif()
21
21
  # ---- Raylib ----
22
22
 
23
23
  add_library(raylib SHARED
24
- ../vendor/raylib/src/rcore.c
25
- ../vendor/raylib/src/rshapes.c
26
- ../vendor/raylib/src/rtextures.c
27
- ../vendor/raylib/src/rtext.c
28
- ../vendor/raylib/src/rmodels.c
29
- ../vendor/raylib/src/utils.c
30
- ../vendor/raylib/src/rglfw.c
31
- ../vendor/raylib/src/raudio.c
24
+ ../../../vendor/raylib/src/rcore.c
25
+ ../../../vendor/raylib/src/rshapes.c
26
+ ../../../vendor/raylib/src/rtextures.c
27
+ ../../../vendor/raylib/src/rtext.c
28
+ ../../../vendor/raylib/src/rmodels.c
29
+ ../../../vendor/raylib/src/utils.c
30
+ ../../../vendor/raylib/src/rglfw.c
31
+ ../../../vendor/raylib/src/raudio.c
32
32
  )
33
33
  set_target_properties(raylib PROPERTIES PREFIX "")
34
- target_include_directories(raylib PRIVATE ../vendor/raylib/src/external/glfw/include)
35
- target_compile_definitions(raylib PRIVATE PLATFORM_DESKTOP GRAPHICS_API_OPENGL_21
36
- BUILD_LIBTYPE_SHARED NDEBUG)
34
+ target_include_directories(raylib PRIVATE ../../../vendor/raylib/src/external/glfw/include)
35
+ target_compile_definitions(raylib PRIVATE PLATFORM_DESKTOP GRAPHICS_API_OPENGL_21 BUILD_LIBTYPE_SHARED NDEBUG)
37
36
 
38
37
  if(MSVC)
39
38
  target_compile_options(raylib PRIVATE /wd4244 /wd4305)
@@ -59,7 +58,7 @@ endif()
59
58
  if(APPLE)
60
59
  target_compile_options(raylib PRIVATE -Wno-unknown-warning-option -Wno-macro-redefined)
61
60
  target_compile_definitions(raylib PRIVATE GL_SILENCE_DEPRECATION)
62
- set_source_files_properties(../vendor/raylib/src/rglfw.c PROPERTIES COMPILE_FLAGS "-x objective-c")
61
+ set_source_files_properties(../../../vendor/raylib/src/rglfw.c PROPERTIES COMPILE_FLAGS "-x objective-c")
63
62
  target_link_libraries(raylib PRIVATE "-framework Cocoa" "-framework IOKit" "-framework CoreFoundation" "-framework OpenGL")
64
63
  endif()
65
64
 
@@ -101,11 +100,11 @@ endif()
101
100
 
102
101
  # ---- SQLite ----
103
102
 
104
- add_library(sqlite3 SHARED ../vendor/sqlite3/sqlite3.c)
105
- set_target_properties(sqlite3 PROPERTIES PREFIX "")
103
+ add_library(sqlite3mc SHARED ../../../vendor/sqlite3mc/sqlite3mc.c)
104
+ set_target_properties(sqlite3mc PROPERTIES PREFIX "")
106
105
 
107
106
  if(WIN32)
108
- target_compile_definitions(sqlite3 PRIVATE SQLITE_API=__declspec\(dllexport\))
107
+ target_compile_definitions(sqlite3mc PRIVATE SQLITE_API=__declspec\(dllexport\))
109
108
  endif()
110
109
 
111
110
  # ---- Misc ----
File without changes
File without changes
@@ -158,6 +158,10 @@ typedef struct EndianInts {
158
158
  uint64_t u64be;
159
159
  } EndianInts;
160
160
 
161
+ typedef struct BigText {
162
+ char text[262145];
163
+ } BigText;
164
+
161
165
  EXPORT int8_t GetMinusOne1(void)
162
166
  {
163
167
  return -1;
@@ -696,3 +700,12 @@ EXPORT void CopyEndianInts2(int16_t i16le, int16_t i16be, uint16_t u16le, uint16
696
700
  EXPORT uint16_t ReturnEndianInt2(uint16_t v) { return v; }
697
701
  EXPORT uint32_t ReturnEndianInt4(uint32_t v) { return v; }
698
702
  EXPORT uint64_t ReturnEndianInt8(uint64_t v) { return v; }
703
+
704
+ EXPORT BigText ReverseBigText(BigText buf)
705
+ {
706
+ BigText ret;
707
+ for (int i = 0; i < sizeof(buf.text); i++) {
708
+ ret.text[sizeof(buf.text) - 1 - i] = buf.text[i];
709
+ }
710
+ return ret;
711
+ }
File without changes
File without changes
@@ -36,7 +36,7 @@ async function main() {
36
36
  }
37
37
 
38
38
  async function test() {
39
- let lib_filename = __dirname + '/build/sqlite3' + koffi.extension;
39
+ let lib_filename = __dirname + '/build/sqlite3mc' + koffi.extension;
40
40
  let lib = koffi.load(lib_filename);
41
41
 
42
42
  const sqlite3_open_v2 = lib.func('sqlite3_open_v2', 'int', ['str', koffi.out(koffi.pointer(sqlite3, 2)), 'int', 'str']);
@@ -129,6 +129,10 @@ const EndianInts = koffi.struct('EndianInts', {
129
129
  u64be: 'uint64_be_t'
130
130
  });
131
131
 
132
+ const BigText = koffi.struct('BigText', {
133
+ text: koffi.array('uint8_t', 262145)
134
+ });
135
+
132
136
  main();
133
137
 
134
138
  async function main() {
@@ -219,6 +223,7 @@ async function test() {
219
223
  const ReturnEndianInt8SB = lib.func('int64_be_t ReturnEndianInt8(int64_le_t v)');
220
224
  const ReturnEndianInt8UL = lib.func('uint64_le_t ReturnEndianInt8(uint64_be_t v)');
221
225
  const ReturnEndianInt8UB = lib.func('uint64_be_t ReturnEndianInt8(uint64_le_t v)');
226
+ const ReverseBigText = lib.func('BigText ReverseBigText(BigText buf)');
222
227
 
223
228
  // Simple signed value returns
224
229
  assert.equal(GetMinusOne1(), -1);
@@ -499,4 +504,16 @@ async function test() {
499
504
  assert.equal(ReturnEndianInt8UL(0x0123456789ABCD3Fn), 0x3FCDAB8967452301n);
500
505
  assert.equal(ReturnEndianInt8UB(0x0123456789ABCD3Fn), 0x3FCDAB8967452301n);
501
506
  }
507
+
508
+ // Test big structs
509
+ {
510
+ let text = 'hello!foo!bar'.repeat(20165);
511
+ let expected = text.split('').reverse().join('');
512
+
513
+ let big = { text: Buffer.from(text) };
514
+ let ret = ReverseBigText(big);
515
+
516
+ assert.equal(ret.len, big.len);
517
+ assert.equal(Buffer.from(ret.text).toString(), expected);
518
+ }
502
519
  }
@@ -0,0 +1,144 @@
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
+ )