koffi 2.1.3 → 2.1.5
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.
- package/ChangeLog.md +17 -0
- package/doc/contribute.md +5 -5
- package/doc/index.rst +1 -1
- package/doc/memory.md +1 -0
- package/doc/templates/badges.html +1 -1
- package/package.json +44 -68
- package/src/cnoke/LICENSE.txt +661 -0
- package/src/cnoke/README.md +97 -0
- package/src/cnoke/assets/FindCNoke.cmake +71 -0
- package/src/cnoke/assets/win_delay_hook.c +34 -0
- package/src/cnoke/cnoke.js +968 -0
- package/src/cnoke/package.json +25 -0
- package/{vendor → src/core}/libcc/libcc.cc +38 -11
- package/{vendor → src/core}/libcc/libcc.hh +4 -2
- package/{CMakeLists.txt → src/koffi/CMakeLists.txt} +3 -3
- package/{benchmark → src/koffi/benchmark}/CMakeLists.txt +9 -6
- package/{benchmark → src/koffi/benchmark}/atoi_koffi.js +0 -0
- package/{benchmark → src/koffi/benchmark}/atoi_napi.cc +1 -1
- package/{benchmark → src/koffi/benchmark}/atoi_napi.js +0 -0
- package/{benchmark → src/koffi/benchmark}/atoi_node_ffi.js +0 -0
- package/src/koffi/benchmark/benchmark.js +118 -0
- package/src/koffi/benchmark/rand_koffi.js +52 -0
- package/src/koffi/benchmark/rand_napi.cc +69 -0
- package/src/koffi/benchmark/rand_napi.js +47 -0
- package/src/koffi/benchmark/rand_node_ffi.js +55 -0
- package/{benchmark → src/koffi/benchmark}/raylib_cc.cc +2 -2
- package/{benchmark → src/koffi/benchmark}/raylib_cc.js +0 -0
- package/{benchmark → src/koffi/benchmark}/raylib_koffi.js +0 -0
- package/{benchmark → src/koffi/benchmark}/raylib_node_ffi.js +0 -0
- package/{benchmark → src/koffi/benchmark}/raylib_node_raylib.js +0 -0
- package/src/koffi/build/2.1.5/koffi_darwin_arm64.tar.gz +0 -0
- package/src/koffi/build/2.1.5/koffi_darwin_x64.tar.gz +0 -0
- package/src/koffi/build/2.1.5/koffi_freebsd_arm64.tar.gz +0 -0
- package/src/koffi/build/2.1.5/koffi_freebsd_ia32.tar.gz +0 -0
- package/src/koffi/build/2.1.5/koffi_freebsd_x64.tar.gz +0 -0
- package/src/koffi/build/2.1.5/koffi_linux_arm32hf.tar.gz +0 -0
- package/src/koffi/build/2.1.5/koffi_linux_arm64.tar.gz +0 -0
- package/src/koffi/build/2.1.5/koffi_linux_ia32.tar.gz +0 -0
- package/src/koffi/build/2.1.5/koffi_linux_riscv64hf64.tar.gz +0 -0
- package/src/koffi/build/2.1.5/koffi_linux_x64.tar.gz +0 -0
- package/src/koffi/build/2.1.5/koffi_openbsd_ia32.tar.gz +0 -0
- package/src/koffi/build/2.1.5/koffi_openbsd_x64.tar.gz +0 -0
- package/src/koffi/build/2.1.5/koffi_win32_arm64.tar.gz +0 -0
- package/src/koffi/build/2.1.5/koffi_win32_ia32.tar.gz +0 -0
- package/src/koffi/build/2.1.5/koffi_win32_x64.tar.gz +0 -0
- package/src/koffi/qemu/qemu/.gitkeep +0 -0
- package/{qemu → src/koffi/qemu}/qemu.js +227 -133
- package/{qemu → src/koffi/qemu}/registry/machines.json +24 -0
- package/{qemu → src/koffi/qemu}/registry/sha256sum.txt +0 -0
- package/src/{abi_arm32.cc → koffi/src/abi_arm32.cc} +1 -1
- package/src/{abi_arm32_fwd.S → koffi/src/abi_arm32_fwd.S} +0 -0
- package/src/{abi_arm64.cc → koffi/src/abi_arm64.cc} +1 -1
- package/src/{abi_arm64_fwd.S → koffi/src/abi_arm64_fwd.S} +0 -0
- package/src/{abi_arm64_fwd.asm → koffi/src/abi_arm64_fwd.asm} +0 -0
- package/src/{abi_riscv64.cc → koffi/src/abi_riscv64.cc} +1 -1
- package/src/{abi_riscv64_fwd.S → koffi/src/abi_riscv64_fwd.S} +0 -0
- package/src/{abi_x64_sysv.cc → koffi/src/abi_x64_sysv.cc} +1 -1
- package/src/{abi_x64_sysv_fwd.S → koffi/src/abi_x64_sysv_fwd.S} +0 -0
- package/src/{abi_x64_win.cc → koffi/src/abi_x64_win.cc} +1 -1
- package/src/{abi_x64_win_fwd.asm → koffi/src/abi_x64_win_fwd.asm} +0 -0
- package/src/{abi_x86.cc → koffi/src/abi_x86.cc} +1 -1
- package/src/{abi_x86_fwd.S → koffi/src/abi_x86_fwd.S} +0 -0
- package/src/{abi_x86_fwd.asm → koffi/src/abi_x86_fwd.asm} +0 -0
- package/src/{call.cc → koffi/src/call.cc} +1 -1
- package/src/{call.hh → koffi/src/call.hh} +2 -2
- package/src/{ffi.cc → koffi/src/ffi.cc} +34 -18
- package/src/{ffi.hh → koffi/src/ffi.hh} +5 -3
- package/src/{index.js → koffi/src/index.js} +0 -0
- package/src/{parser.cc → koffi/src/parser.cc} +1 -1
- package/src/{parser.hh → koffi/src/parser.hh} +1 -1
- package/src/{util.cc → koffi/src/util.cc} +1 -1
- package/src/{util.hh → koffi/src/util.hh} +1 -1
- package/{test → src/koffi/test}/CMakeLists.txt +14 -15
- package/{test → src/koffi/test}/async.js +0 -0
- package/{test → src/koffi/test}/callbacks.js +0 -0
- package/{test → src/koffi/test}/misc.c +13 -0
- package/{test → src/koffi/test}/misc.def +0 -0
- package/{test → src/koffi/test}/raylib.js +0 -0
- package/{test → src/koffi/test}/sqlite.js +1 -1
- package/{test → src/koffi/test}/sync.js +17 -0
- package/vendor/brotli/BUILD +144 -0
- package/vendor/brotli/CMakeLists.txt +421 -0
- package/vendor/brotli/CONTRIBUTING.md +27 -0
- package/vendor/brotli/LICENSE +19 -0
- package/vendor/brotli/MANIFEST.in +17 -0
- package/vendor/brotli/Makefile +55 -0
- package/vendor/brotli/Makefile.am +38 -0
- package/vendor/brotli/README +15 -0
- package/vendor/brotli/README.md +104 -0
- package/vendor/brotli/WORKSPACE +21 -0
- package/vendor/brotli/bootstrap +35 -0
- package/vendor/brotli/c/common/constants.c +15 -0
- package/vendor/brotli/c/common/constants.h +200 -0
- package/vendor/brotli/c/common/context.c +156 -0
- package/vendor/brotli/c/common/context.h +113 -0
- package/vendor/brotli/c/common/dictionary.c +5914 -0
- package/vendor/brotli/c/common/dictionary.h +64 -0
- package/vendor/brotli/c/common/platform.c +22 -0
- package/vendor/brotli/c/common/platform.h +594 -0
- package/vendor/brotli/c/common/transform.c +291 -0
- package/vendor/brotli/c/common/transform.h +85 -0
- package/vendor/brotli/c/common/version.h +26 -0
- package/vendor/brotli/c/dec/bit_reader.c +76 -0
- package/vendor/brotli/c/dec/bit_reader.h +351 -0
- package/vendor/brotli/c/dec/decode.c +2608 -0
- package/vendor/brotli/c/dec/huffman.c +339 -0
- package/vendor/brotli/c/dec/huffman.h +121 -0
- package/vendor/brotli/c/dec/prefix.h +732 -0
- package/vendor/brotli/c/dec/state.c +159 -0
- package/vendor/brotli/c/dec/state.h +365 -0
- package/vendor/brotli/c/enc/backward_references.c +145 -0
- package/vendor/brotli/c/enc/backward_references.h +39 -0
- package/vendor/brotli/c/enc/backward_references_hq.c +843 -0
- package/vendor/brotli/c/enc/backward_references_hq.h +95 -0
- package/vendor/brotli/c/enc/backward_references_inc.h +163 -0
- package/vendor/brotli/c/enc/bit_cost.c +35 -0
- package/vendor/brotli/c/enc/bit_cost.h +63 -0
- package/vendor/brotli/c/enc/bit_cost_inc.h +127 -0
- package/vendor/brotli/c/enc/block_encoder_inc.h +34 -0
- package/vendor/brotli/c/enc/block_splitter.c +194 -0
- package/vendor/brotli/c/enc/block_splitter.h +51 -0
- package/vendor/brotli/c/enc/block_splitter_inc.h +440 -0
- package/vendor/brotli/c/enc/brotli_bit_stream.c +1314 -0
- package/vendor/brotli/c/enc/brotli_bit_stream.h +84 -0
- package/vendor/brotli/c/enc/cluster.c +56 -0
- package/vendor/brotli/c/enc/cluster.h +48 -0
- package/vendor/brotli/c/enc/cluster_inc.h +320 -0
- package/vendor/brotli/c/enc/command.c +28 -0
- package/vendor/brotli/c/enc/command.h +190 -0
- package/vendor/brotli/c/enc/compress_fragment.c +790 -0
- package/vendor/brotli/c/enc/compress_fragment.h +61 -0
- package/vendor/brotli/c/enc/compress_fragment_two_pass.c +645 -0
- package/vendor/brotli/c/enc/compress_fragment_two_pass.h +54 -0
- package/vendor/brotli/c/enc/dictionary_hash.c +1846 -0
- package/vendor/brotli/c/enc/dictionary_hash.h +25 -0
- package/vendor/brotli/c/enc/encode.c +1927 -0
- package/vendor/brotli/c/enc/encoder_dict.c +33 -0
- package/vendor/brotli/c/enc/encoder_dict.h +43 -0
- package/vendor/brotli/c/enc/entropy_encode.c +503 -0
- package/vendor/brotli/c/enc/entropy_encode.h +122 -0
- package/vendor/brotli/c/enc/entropy_encode_static.h +539 -0
- package/vendor/brotli/c/enc/fast_log.c +105 -0
- package/vendor/brotli/c/enc/fast_log.h +66 -0
- package/vendor/brotli/c/enc/find_match_length.h +79 -0
- package/vendor/brotli/c/enc/hash.h +488 -0
- package/vendor/brotli/c/enc/hash_composite_inc.h +125 -0
- package/vendor/brotli/c/enc/hash_forgetful_chain_inc.h +293 -0
- package/vendor/brotli/c/enc/hash_longest_match64_inc.h +267 -0
- package/vendor/brotli/c/enc/hash_longest_match_inc.h +262 -0
- package/vendor/brotli/c/enc/hash_longest_match_quickly_inc.h +266 -0
- package/vendor/brotli/c/enc/hash_rolling_inc.h +212 -0
- package/vendor/brotli/c/enc/hash_to_binary_tree_inc.h +329 -0
- package/vendor/brotli/c/enc/histogram.c +100 -0
- package/vendor/brotli/c/enc/histogram.h +63 -0
- package/vendor/brotli/c/enc/histogram_inc.h +51 -0
- package/vendor/brotli/c/enc/literal_cost.c +175 -0
- package/vendor/brotli/c/enc/literal_cost.h +30 -0
- package/vendor/brotli/c/enc/memory.c +170 -0
- package/vendor/brotli/c/enc/memory.h +114 -0
- package/vendor/brotli/c/enc/metablock.c +663 -0
- package/vendor/brotli/c/enc/metablock.h +105 -0
- package/vendor/brotli/c/enc/metablock_inc.h +183 -0
- package/vendor/brotli/c/enc/params.h +46 -0
- package/vendor/brotli/c/enc/prefix.h +53 -0
- package/vendor/brotli/c/enc/quality.h +165 -0
- package/vendor/brotli/c/enc/ringbuffer.h +167 -0
- package/vendor/brotli/c/enc/static_dict.c +486 -0
- package/vendor/brotli/c/enc/static_dict.h +40 -0
- package/vendor/brotli/c/enc/static_dict_lut.h +5864 -0
- package/vendor/brotli/c/enc/utf8_util.c +85 -0
- package/vendor/brotli/c/enc/utf8_util.h +32 -0
- package/vendor/brotli/c/enc/write_bits.h +87 -0
- package/vendor/brotli/c/include/brotli/decode.h +344 -0
- package/vendor/brotli/c/include/brotli/encode.h +448 -0
- package/vendor/brotli/c/include/brotli/port.h +288 -0
- package/vendor/brotli/c/include/brotli/types.h +83 -0
- package/vendor/brotli/c/tools/brotli.c +1116 -0
- package/vendor/brotli/c/tools/brotli.md +107 -0
- package/vendor/brotli/compiler_config_setting.bzl +28 -0
- package/vendor/brotli/configure +8 -0
- package/vendor/brotli/configure-cmake +318 -0
- package/vendor/brotli/configure.ac +14 -0
- package/vendor/brotli/docs/brotli.1 +132 -0
- package/vendor/brotli/docs/constants.h.3 +47 -0
- package/vendor/brotli/docs/decode.h.3 +415 -0
- package/vendor/brotli/docs/encode.h.3 +586 -0
- package/vendor/brotli/docs/types.h.3 +117 -0
- package/vendor/brotli/premake5.lua +78 -0
- package/vendor/brotli/python/Makefile +57 -0
- package/vendor/brotli/python/README.md +54 -0
- package/vendor/brotli/python/_brotli.cc +753 -0
- package/vendor/brotli/python/bro.py +160 -0
- package/vendor/brotli/python/brotli.py +56 -0
- package/vendor/brotli/python/tests/__init__.py +0 -0
- package/vendor/brotli/python/tests/_test_utils.py +112 -0
- package/vendor/brotli/python/tests/bro_test.py +102 -0
- package/vendor/brotli/python/tests/compress_test.py +41 -0
- package/vendor/brotli/python/tests/compressor_test.py +94 -0
- package/vendor/brotli/python/tests/decompress_test.py +42 -0
- package/vendor/brotli/python/tests/decompressor_test.py +59 -0
- package/vendor/brotli/scripts/libbrotlicommon.pc.in +11 -0
- package/vendor/brotli/scripts/libbrotlidec.pc.in +12 -0
- package/vendor/brotli/scripts/libbrotlienc.pc.in +12 -0
- package/vendor/brotli/scripts/sources.lst +104 -0
- package/vendor/brotli/setup.cfg +5 -0
- package/vendor/brotli/setup.py +293 -0
- package/vendor/brotli/tests/Makefile +17 -0
- package/vendor/brotli/tests/compatibility_test.sh +25 -0
- package/vendor/brotli/tests/roundtrip_test.sh +36 -0
- package/vendor/brotli/tests/run-compatibility-test.cmake +31 -0
- package/vendor/brotli/tests/run-roundtrip-test.cmake +36 -0
- package/vendor/brotli/tests/testdata/empty +0 -0
- package/vendor/brotli/tests/testdata/empty.compressed +1 -0
- package/vendor/brotli/tests/testdata/ukkonooa +1 -0
- package/vendor/brotli/tests/testdata/ukkonooa.compressed +0 -0
- package/vendor/miniz/ChangeLog.md +235 -0
- package/vendor/miniz/LICENSE +22 -0
- package/vendor/miniz/examples/example1.c +105 -0
- package/vendor/miniz/examples/example2.c +164 -0
- package/vendor/miniz/examples/example3.c +269 -0
- package/vendor/miniz/examples/example4.c +102 -0
- package/vendor/miniz/examples/example5.c +327 -0
- package/vendor/miniz/examples/example6.c +166 -0
- package/vendor/miniz/miniz.c +7835 -0
- package/vendor/miniz/miniz.h +1422 -0
- package/vendor/miniz/readme.md +46 -0
- package/vendor/{sqlite3 → sqlite3mc}/sqlite3ext.h +18 -2
- package/vendor/{sqlite3/sqlite3.c → sqlite3mc/sqlite3mc.c} +60872 -4890
- package/vendor/sqlite3mc/sqlite3mc.def +312 -0
- package/vendor/{sqlite3/sqlite3.h → sqlite3mc/sqlite3mc.h} +480 -36
- package/build/qemu/2.1.3/koffi_darwin_arm64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_darwin_x64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_freebsd_arm64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_freebsd_ia32.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_freebsd_x64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_linux_arm32hf.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_linux_arm64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_linux_ia32.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_linux_riscv64hf64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_linux_x64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_openbsd_ia32.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_openbsd_x64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_win32_arm64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_win32_ia32.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_win32_x64.tar.gz +0 -0
- package/vendor/_patches/glfw_001_fix_openbsd_xlib_soname.patch +0 -145
- package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj +0 -226
- package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj.filters +0 -10
- package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj.user +0 -4
- package/vendor/raylib/projects/VS2019-Android/raylib_android.sln +0 -75
- package/vendor/raylib/projects/VS2022/examples/audio_module_playing.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/audio_multichannel_sound.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/audio_music_stream.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/audio_raw_stream.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/audio_sound_loading.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/audio_stream_effects.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_2d_camera.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_2d_camera_mouse_zoom.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_2d_camera_platformer.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_3d_camera_first_person.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_3d_camera_free.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_3d_camera_mode.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_3d_picking.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_basic_screen_manager.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_basic_window.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_custom_frame_control.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_custom_logging.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_drop_files.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_input_gamepad.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_input_gestures.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_input_keys.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_input_mouse.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_input_mouse_wheel.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_input_multitouch.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_loading_thread.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_random_values.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_scissor_test.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_split_screen.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_storage_values.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_vr_simulator.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_window_flags.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_window_letterbox.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/core_window_should_close.vcxproj +0 -390
- package/vendor/raylib/projects/VS2022/examples/core_world_screen.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/easings_testbed.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/embedded_files_loading.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_animation.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_billboard.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_box_collisions.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_cubicmap.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_first_person_maze.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_geometric_shapes.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_heightmap.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_loading.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_loading_gltf.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_loading_vox.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_mesh_generation.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_mesh_picking.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_orthographic_projection.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_rlgl_solar_system.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_skybox.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_waving_cubes.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/models_yaw_pitch_roll.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/rlgl_compute_shaders.vcxproj +0 -391
- package/vendor/raylib/projects/VS2022/examples/rlgl_standalone.vcxproj +0 -391
- package/vendor/raylib/projects/VS2022/examples/shaders_basic_lighting.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_custom_uniform.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_eratosthenes.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_fog.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_hot_reloading.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_julia_set.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_mesh_instancing.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_model_shader.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_multi_sample2d.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_palette_switch.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_postprocessing.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_raymarching.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_shapes_textures.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_simple_mask.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_spotlight.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_texture_drawing.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shaders_texture_waves.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_basic_shapes.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_bouncing_ball.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_collision_area.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_colors_palette.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_draw_circle_sector.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_draw_rectangle_rounded.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_draw_ring.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_easings_ball_anim.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_easings_box_anim.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_easings_rectangle_array.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_following_eyes.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_lines_bezier.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_logo_raylib.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_logo_raylib_anim.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/shapes_rectangle_scaling.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_codepoints_loading.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_draw_3d.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_font_filters.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_font_loading.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_font_sdf.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_font_spritefont.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_format_text.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_input_box.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_raylib_fonts.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_rectangle_bounds.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_unicode.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/text_writing_anim.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_background_scrolling.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_blend_modes.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_bunnymark.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_draw_tiled.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_fog_of_war.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_gif_player.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_image_drawing.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_image_generation.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_image_loading.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_image_processing.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_image_text.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_logo_raylib.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_mouse_painting.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_npatch_drawing.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_particles_blending.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_polygon.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_raw_data.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_sprite_anim.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_sprite_button.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_sprite_explosion.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_srcrec_dstrec.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/examples/textures_to_image.vcxproj +0 -387
- package/vendor/raylib/projects/VS2022/raylib/raylib.vcxproj +0 -340
- package/vendor/raylib/projects/VS2022/raylib.sln +0 -2347
- package/vendor/sqlite3/shell.c +0 -23496
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cnoke",
|
|
3
|
+
"version": "3.2.1",
|
|
4
|
+
"description": "Build native Node addons based on CMake, without extra dependency",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"native",
|
|
7
|
+
"addon",
|
|
8
|
+
"cmake",
|
|
9
|
+
"c",
|
|
10
|
+
"c++"
|
|
11
|
+
],
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "https://github.com/Koromix/rygel.git"
|
|
15
|
+
},
|
|
16
|
+
"author": "Niels Martignène <niels.martignene@protonmail.com>",
|
|
17
|
+
"bin": "cnoke.js",
|
|
18
|
+
"license": "AGPL-3.0",
|
|
19
|
+
"files": [
|
|
20
|
+
"cnoke.js",
|
|
21
|
+
"LICENSE.txt",
|
|
22
|
+
"README.md",
|
|
23
|
+
"assets"
|
|
24
|
+
]
|
|
25
|
+
}
|
|
@@ -3069,6 +3069,7 @@ OpenResult OpenDescriptor(const char *filename, unsigned int flags, unsigned int
|
|
|
3069
3069
|
DWORD access = 0;
|
|
3070
3070
|
DWORD share = 0;
|
|
3071
3071
|
DWORD creation = 0;
|
|
3072
|
+
DWORD attributes = 0;
|
|
3072
3073
|
int oflags = -1;
|
|
3073
3074
|
switch (flags & ((int)OpenFlag::Read |
|
|
3074
3075
|
(int)OpenFlag::Write |
|
|
@@ -3077,47 +3078,63 @@ OpenResult OpenDescriptor(const char *filename, unsigned int flags, unsigned int
|
|
|
3077
3078
|
access = GENERIC_READ;
|
|
3078
3079
|
share = FILE_SHARE_READ | FILE_SHARE_WRITE;
|
|
3079
3080
|
creation = OPEN_EXISTING;
|
|
3080
|
-
|
|
3081
|
+
attributes = FILE_ATTRIBUTE_NORMAL;
|
|
3081
3082
|
oflags = _O_RDONLY | _O_BINARY | _O_NOINHERIT;
|
|
3082
3083
|
} break;
|
|
3083
3084
|
case (int)OpenFlag::Write: {
|
|
3084
3085
|
access = GENERIC_WRITE;
|
|
3085
3086
|
share = FILE_SHARE_READ | FILE_SHARE_WRITE;
|
|
3086
|
-
creation =
|
|
3087
|
-
|
|
3087
|
+
creation = CREATE_ALWAYS;
|
|
3088
|
+
attributes = FILE_ATTRIBUTE_NORMAL;
|
|
3088
3089
|
oflags = _O_WRONLY | _O_CREAT | _O_TRUNC | _O_BINARY | _O_NOINHERIT;
|
|
3089
3090
|
} break;
|
|
3090
3091
|
case (int)OpenFlag::Read | (int)OpenFlag::Write: {
|
|
3091
3092
|
access = GENERIC_READ | GENERIC_WRITE;
|
|
3092
3093
|
share = FILE_SHARE_READ | FILE_SHARE_WRITE;
|
|
3093
|
-
creation =
|
|
3094
|
-
|
|
3094
|
+
creation = CREATE_ALWAYS;
|
|
3095
|
+
attributes = FILE_ATTRIBUTE_NORMAL;
|
|
3095
3096
|
oflags = _O_RDWR | _O_CREAT | _O_TRUNC | _O_BINARY | _O_NOINHERIT;
|
|
3096
3097
|
} break;
|
|
3097
3098
|
case (int)OpenFlag::Append: {
|
|
3098
3099
|
access = GENERIC_WRITE;
|
|
3099
3100
|
share = FILE_SHARE_READ | FILE_SHARE_WRITE;
|
|
3100
|
-
creation =
|
|
3101
|
-
|
|
3101
|
+
creation = CREATE_ALWAYS;
|
|
3102
|
+
attributes = FILE_ATTRIBUTE_NORMAL;
|
|
3102
3103
|
oflags = _O_WRONLY | _O_CREAT | _O_APPEND | _O_BINARY | _O_NOINHERIT;
|
|
3103
3104
|
} break;
|
|
3104
3105
|
}
|
|
3105
3106
|
RG_ASSERT(oflags >= 0);
|
|
3106
3107
|
|
|
3107
|
-
if (flags & (int)OpenFlag::
|
|
3108
|
+
if (flags & (int)OpenFlag::Directory) {
|
|
3109
|
+
RG_ASSERT(!(flags & (int)OpenFlag::Exclusive));
|
|
3110
|
+
RG_ASSERT(!(flags & (int)OpenFlag::Append));
|
|
3111
|
+
|
|
3112
|
+
creation = OPEN_EXISTING;
|
|
3113
|
+
attributes = FILE_FLAG_BACKUP_SEMANTICS;
|
|
3114
|
+
oflags &= ~(_O_CREAT | _O_TRUNC | _O_BINARY);
|
|
3115
|
+
}
|
|
3116
|
+
if (flags & (int)OpenFlag::Exists) {
|
|
3117
|
+
RG_ASSERT(!(flags & (int)OpenFlag::Exclusive));
|
|
3118
|
+
|
|
3119
|
+
creation = OPEN_EXISTING;
|
|
3120
|
+
oflags &= ~_O_CREAT;
|
|
3121
|
+
} else if (flags & (int)OpenFlag::Exclusive) {
|
|
3122
|
+
RG_ASSERT(creation == CREATE_ALWAYS);
|
|
3123
|
+
|
|
3124
|
+
creation = CREATE_NEW;
|
|
3108
3125
|
oflags |= (int)_O_EXCL;
|
|
3109
3126
|
}
|
|
3110
3127
|
share |= FILE_SHARE_DELETE;
|
|
3111
3128
|
|
|
3112
3129
|
HANDLE h;
|
|
3113
3130
|
if (win32_utf8) {
|
|
3114
|
-
h = CreateFileA(filename, access, share, nullptr, creation,
|
|
3131
|
+
h = CreateFileA(filename, access, share, nullptr, creation, attributes, nullptr);
|
|
3115
3132
|
} else {
|
|
3116
3133
|
wchar_t filename_w[4096];
|
|
3117
3134
|
if (ConvertUtf8ToWin32Wide(filename, filename_w) < 0)
|
|
3118
3135
|
return OpenResult::OtherError;
|
|
3119
3136
|
|
|
3120
|
-
h = CreateFileW(filename_w, access, share, nullptr, creation,
|
|
3137
|
+
h = CreateFileW(filename_w, access, share, nullptr, creation, attributes, nullptr);
|
|
3121
3138
|
}
|
|
3122
3139
|
if (h == INVALID_HANDLE_VALUE) {
|
|
3123
3140
|
DWORD err = GetLastError();
|
|
@@ -3410,7 +3427,17 @@ OpenResult OpenDescriptor(const char *filename, unsigned int flags, unsigned int
|
|
|
3410
3427
|
}
|
|
3411
3428
|
RG_ASSERT(oflags >= 0);
|
|
3412
3429
|
|
|
3413
|
-
if (flags & (int)OpenFlag::
|
|
3430
|
+
if (flags & (int)OpenFlag::Directory) {
|
|
3431
|
+
RG_ASSERT(!(flags & (int)OpenFlag::Exclusive));
|
|
3432
|
+
RG_ASSERT(!(flags & (int)OpenFlag::Append));
|
|
3433
|
+
|
|
3434
|
+
oflags &= ~O_CREAT;
|
|
3435
|
+
}
|
|
3436
|
+
if (flags & (int)OpenFlag::Exists) {
|
|
3437
|
+
RG_ASSERT(!(flags & (int)OpenFlag::Exclusive));
|
|
3438
|
+
oflags &= ~O_CREAT;
|
|
3439
|
+
} else if (flags & (int)OpenFlag::Exclusive) {
|
|
3440
|
+
RG_ASSERT(oflags & O_CREAT);
|
|
3414
3441
|
oflags |= O_EXCL;
|
|
3415
3442
|
}
|
|
3416
3443
|
|
|
@@ -272,7 +272,7 @@ constexpr Size Kilobytes(Size len) { return len * 1000; }
|
|
|
272
272
|
template <typename T, unsigned N>
|
|
273
273
|
char (&ComputeArraySize(T const (&)[N]))[N];
|
|
274
274
|
#define RG_LEN(Array) RG_SIZE(RG::ComputeArraySize(Array))
|
|
275
|
-
#define RG_OFFSET_OF(Type, Member) __builtin_offsetof(Type, Member)
|
|
275
|
+
#define RG_OFFSET_OF(Type, Member) ((Size)__builtin_offsetof(Type, Member))
|
|
276
276
|
|
|
277
277
|
static inline constexpr uint16_t ReverseBytes(uint16_t u)
|
|
278
278
|
{
|
|
@@ -3868,7 +3868,9 @@ enum class OpenFlag {
|
|
|
3868
3868
|
Write = 1 << 1,
|
|
3869
3869
|
Append = 1 << 2,
|
|
3870
3870
|
|
|
3871
|
-
|
|
3871
|
+
Directory = 1 << 3,
|
|
3872
|
+
Exists = 1 << 4,
|
|
3873
|
+
Exclusive = 1 << 5
|
|
3872
3874
|
};
|
|
3873
3875
|
|
|
3874
3876
|
enum class OpenResult {
|
|
@@ -44,7 +44,7 @@ set(KOFFI_SRC
|
|
|
44
44
|
src/ffi.cc
|
|
45
45
|
src/parser.cc
|
|
46
46
|
src/util.cc
|
|
47
|
-
|
|
47
|
+
../../src/core/libcc/libcc.cc
|
|
48
48
|
)
|
|
49
49
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
50
50
|
# CMAKE_SYSTEM_PROCESSOR is wrong on Windows ARM64
|
|
@@ -98,9 +98,9 @@ elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
|
|
98
98
|
endif()
|
|
99
99
|
|
|
100
100
|
add_node_addon(NAME koffi SOURCES ${KOFFI_SRC})
|
|
101
|
-
target_include_directories(koffi PRIVATE . vendor/node-addon-api)
|
|
101
|
+
target_include_directories(koffi PRIVATE . ../.. ../../vendor/node-addon-api)
|
|
102
102
|
|
|
103
|
-
target_compile_definitions(koffi PRIVATE FELIX_TARGET=koffi NAPI_DISABLE_CPP_EXCEPTIONS NAPI_VERSION=8)
|
|
103
|
+
target_compile_definitions(koffi PRIVATE FELIX_TARGET=koffi NAPI_DISABLE_CPP_EXCEPTIONS NAPI_VERSION=8 LIBCC_NO_BROTLI LIBCC_NO_MINIZ)
|
|
104
104
|
if(WIN32)
|
|
105
105
|
target_compile_definitions(koffi PRIVATE _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE)
|
|
106
106
|
target_link_libraries(koffi PRIVATE ws2_32)
|
|
@@ -36,8 +36,9 @@ endif()
|
|
|
36
36
|
|
|
37
37
|
# ---- atoi ----
|
|
38
38
|
|
|
39
|
-
add_node_addon(NAME atoi_napi SOURCES atoi_napi.cc
|
|
40
|
-
|
|
39
|
+
add_node_addon(NAME atoi_napi SOURCES atoi_napi.cc ../../../src/core/libcc/libcc.cc)
|
|
40
|
+
target_compile_definitions(atoi_napi PRIVATE LIBCC_NO_BROTLI LIBCC_NO_MINIZ)
|
|
41
|
+
target_include_directories(atoi_napi PRIVATE ../../.. ../../../vendor/node-addon-api)
|
|
41
42
|
target_link_libraries(atoi_napi PRIVATE Threads::Threads)
|
|
42
43
|
|
|
43
44
|
if(WIN32)
|
|
@@ -49,8 +50,9 @@ endif()
|
|
|
49
50
|
|
|
50
51
|
# ---- rand ----
|
|
51
52
|
|
|
52
|
-
add_node_addon(NAME rand_napi SOURCES rand_napi.cc
|
|
53
|
-
|
|
53
|
+
add_node_addon(NAME rand_napi SOURCES rand_napi.cc ../../../src/core/libcc/libcc.cc)
|
|
54
|
+
target_compile_definitions(rand_napi PRIVATE LIBCC_NO_BROTLI LIBCC_NO_MINIZ)
|
|
55
|
+
target_include_directories(rand_napi PRIVATE ../../.. ../../../vendor/node-addon-api)
|
|
54
56
|
target_link_libraries(rand_napi PRIVATE Threads::Threads)
|
|
55
57
|
|
|
56
58
|
if(WIN32)
|
|
@@ -62,8 +64,9 @@ endif()
|
|
|
62
64
|
|
|
63
65
|
# ---- Raylib ----
|
|
64
66
|
|
|
65
|
-
add_executable(raylib_cc raylib_cc.cc
|
|
66
|
-
|
|
67
|
+
add_executable(raylib_cc raylib_cc.cc ../../../src/core/libcc/libcc.cc)
|
|
68
|
+
target_compile_definitions(raylib_cc PRIVATE LIBCC_NO_BROTLI LIBCC_NO_MINIZ)
|
|
69
|
+
target_include_directories(raylib_cc PRIVATE ../../..)
|
|
67
70
|
target_link_libraries(raylib_cc PRIVATE Threads::Threads raylib)
|
|
68
71
|
|
|
69
72
|
if(WIN32)
|
|
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 "
|
|
14
|
+
#include "src/core/libcc/libcc.hh"
|
|
15
15
|
#include <napi.h>
|
|
16
16
|
|
|
17
17
|
namespace RG {
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// This program is free software: you can redistribute it and/or modify
|
|
4
|
+
// it under the terms of the GNU Affero General Public License as published by
|
|
5
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
6
|
+
// (at your option) any later version.
|
|
7
|
+
//
|
|
8
|
+
// This program is distributed in the hope that it will be useful,
|
|
9
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11
|
+
// GNU Affero General Public License for more details.
|
|
12
|
+
//
|
|
13
|
+
// You should have received a copy of the GNU Affero General Public License
|
|
14
|
+
// along with this program. If not, see https://www.gnu.org/licenses/.
|
|
15
|
+
|
|
16
|
+
const { spawnSync } = require('child_process');
|
|
17
|
+
const fs = require('fs');
|
|
18
|
+
const path = require('path');
|
|
19
|
+
const minimatch = require('minimatch');
|
|
20
|
+
|
|
21
|
+
main();
|
|
22
|
+
|
|
23
|
+
function main() {
|
|
24
|
+
try {
|
|
25
|
+
let select = process.argv.slice(2);
|
|
26
|
+
benchmark(select);
|
|
27
|
+
} catch (err) {
|
|
28
|
+
console.error(err);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function benchmark(select) {
|
|
34
|
+
if (!select.length || select.includes('rand'))
|
|
35
|
+
format(run('rand', 'rand_napi'), 'ns');
|
|
36
|
+
if (!select.length || select.includes('atoi'))
|
|
37
|
+
format(run('atoi', 'atoi_napi'), 'ns');
|
|
38
|
+
if (!select.length || select.includes('raylib'))
|
|
39
|
+
format(run('raylib', 'raylib_node_raylib'), 'us');
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function run(name, ref) {
|
|
43
|
+
let tests = [];
|
|
44
|
+
{
|
|
45
|
+
let entries = fs.readdirSync(__dirname);
|
|
46
|
+
|
|
47
|
+
let pattern = name + '_*.js';
|
|
48
|
+
let re = minimatch.makeRe(pattern);
|
|
49
|
+
|
|
50
|
+
for (let entry of entries) {
|
|
51
|
+
if (entry.match(re)) {
|
|
52
|
+
let test = {
|
|
53
|
+
name: path.basename(entry, '.js'),
|
|
54
|
+
filename: path.join(__dirname, entry)
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
if (test.name == ref)
|
|
58
|
+
ref = test;
|
|
59
|
+
tests.push(test);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (typeof ref == 'string')
|
|
65
|
+
throw new Error('Failed to find reference test');
|
|
66
|
+
|
|
67
|
+
for (let test of tests) {
|
|
68
|
+
let proc = spawnSync(process.execPath, [test.filename]);
|
|
69
|
+
|
|
70
|
+
if (proc.status == null)
|
|
71
|
+
throw new Error(proc.error);
|
|
72
|
+
if (proc.status !== 0)
|
|
73
|
+
throw new Error(proc.stderr);
|
|
74
|
+
|
|
75
|
+
let perf = JSON.parse(proc.stdout);
|
|
76
|
+
|
|
77
|
+
test.iterations = perf.iterations;
|
|
78
|
+
test.time = perf.time;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
for (let test of tests) {
|
|
82
|
+
test.ratio = (ref.time / ref.iterations) / (test.time / test.iterations);
|
|
83
|
+
|
|
84
|
+
if (test != ref) {
|
|
85
|
+
test.overhead = Math.round((1 / test.ratio - 1) * 100);
|
|
86
|
+
} else {
|
|
87
|
+
test.overhead = '(ref)';
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
tests.sort((test1, test2) => test2.ratio - test1.ratio);
|
|
92
|
+
|
|
93
|
+
return tests;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function format(tests, unit) {
|
|
97
|
+
let len0 = tests.reduce((acc, test) => Math.max(acc, test.name.length), 0);
|
|
98
|
+
|
|
99
|
+
console.log(`${'Benchmark'.padEnd(len0, ' ')} | Iteration time | Relative performance | Overhead`);
|
|
100
|
+
console.log(`${'-'.padEnd(len0, '-')} | -------------- | -------------------- | --------`);
|
|
101
|
+
for (let test of tests) {
|
|
102
|
+
let time = format_time(test.time / test.iterations, unit);
|
|
103
|
+
let ratio = test.ratio.toFixed(test.ratio < 0.01 ? 3 : 2);
|
|
104
|
+
let overhead = (typeof test.overhead == 'number') ? `${test.overhead >= 0 ? '+' : ''}${test.overhead}%` : test.overhead;
|
|
105
|
+
|
|
106
|
+
console.log(`${test.name.padEnd(len0, ' ')} | ${('' + time).padEnd(14, ' ')} | x${('' + ratio).padEnd(19, ' ')} | ${overhead}`);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
console.log('');
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function format_time(time, unit) {
|
|
113
|
+
switch (unit) {
|
|
114
|
+
case 'ms': { return (time * 1).toFixed(1) + ' ms'; } break;
|
|
115
|
+
case 'us': { return (time * 1000).toFixed(1) + ' µs'; } break;
|
|
116
|
+
case 'ns': { return (time * 10000000).toFixed(0) + ' ns'; } break;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// This program is free software: you can redistribute it and/or modify
|
|
4
|
+
// it under the terms of the GNU Affero General Public License as published by
|
|
5
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
6
|
+
// (at your option) any later version.
|
|
7
|
+
//
|
|
8
|
+
// This program is distributed in the hope that it will be useful,
|
|
9
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11
|
+
// GNU Affero General Public License for more details.
|
|
12
|
+
//
|
|
13
|
+
// You should have received a copy of the GNU Affero General Public License
|
|
14
|
+
// along with this program. If not, see https://www.gnu.org/licenses/.
|
|
15
|
+
|
|
16
|
+
const koffi = require('./build/koffi.node');
|
|
17
|
+
|
|
18
|
+
let sum = 0;
|
|
19
|
+
|
|
20
|
+
main();
|
|
21
|
+
|
|
22
|
+
function main() {
|
|
23
|
+
let time = 5000;
|
|
24
|
+
|
|
25
|
+
if (process.argv.length >= 3) {
|
|
26
|
+
time = parseFloat(process.argv[2]) * 1000;
|
|
27
|
+
if (Number.isNaN(time))
|
|
28
|
+
throw new Error('Not a valid number');
|
|
29
|
+
if (time < 0)
|
|
30
|
+
throw new Error('Time must be positive');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
let lib = koffi.load(process.platform == 'win32' ? 'msvcrt.dll' : null);
|
|
34
|
+
|
|
35
|
+
const srand = lib.cdecl('srand', 'void', ['uint']);
|
|
36
|
+
const rand = lib.cdecl('rand', 'int', []);
|
|
37
|
+
|
|
38
|
+
srand(42);
|
|
39
|
+
|
|
40
|
+
let start = performance.now();
|
|
41
|
+
let iterations = 0;
|
|
42
|
+
|
|
43
|
+
while (performance.now() - start < time) {
|
|
44
|
+
for (let i = 0; i < 1000000; i++)
|
|
45
|
+
sum += rand();
|
|
46
|
+
|
|
47
|
+
iterations += 1000000;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
time = performance.now() - start;
|
|
51
|
+
console.log(JSON.stringify({ iterations: iterations, time: Math.round(time) }));
|
|
52
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// This program is free software: you can redistribute it and/or modify
|
|
2
|
+
// it under the terms of the GNU Affero General Public License as published by
|
|
3
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
4
|
+
// (at your option) any later version.
|
|
5
|
+
//
|
|
6
|
+
// This program is distributed in the hope that it will be useful,
|
|
7
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
8
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
9
|
+
// GNU Affero General Public License for more details.
|
|
10
|
+
//
|
|
11
|
+
// You should have received a copy of the GNU Affero General Public License
|
|
12
|
+
// along with this program. If not, see https://www.gnu.org/licenses/.
|
|
13
|
+
|
|
14
|
+
#include "src/core/libcc/libcc.hh"
|
|
15
|
+
#include <napi.h>
|
|
16
|
+
|
|
17
|
+
namespace RG {
|
|
18
|
+
|
|
19
|
+
template <typename T, typename... Args>
|
|
20
|
+
void ThrowError(Napi::Env env, const char *msg, Args... args)
|
|
21
|
+
{
|
|
22
|
+
char buf[1024];
|
|
23
|
+
Fmt(buf, msg, args...);
|
|
24
|
+
|
|
25
|
+
auto err = T::New(env, buf);
|
|
26
|
+
err.ThrowAsJavaScriptException();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
static Napi::Value RunSrand(const Napi::CallbackInfo &info)
|
|
30
|
+
{
|
|
31
|
+
Napi::Env env = info.Env();
|
|
32
|
+
|
|
33
|
+
if (RG_UNLIKELY(info.Length() < 1)) {
|
|
34
|
+
ThrowError<Napi::TypeError>(env, "Expected 1 argument, got %1", info.Length());
|
|
35
|
+
return env.Null();
|
|
36
|
+
}
|
|
37
|
+
if (RG_UNLIKELY(!info[0].IsNumber())) {
|
|
38
|
+
ThrowError<Napi::TypeError>(env, "Unexpected type for seed, expected number");
|
|
39
|
+
return env.Null();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
unsigned int seed = (info[0].As<Napi::Number>()).Uint32Value();
|
|
43
|
+
srand(seed);
|
|
44
|
+
|
|
45
|
+
return env.Null();
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
static Napi::Value RunRand(const Napi::CallbackInfo &info)
|
|
49
|
+
{
|
|
50
|
+
Napi::Env env = info.Env();
|
|
51
|
+
|
|
52
|
+
int rnd = rand();
|
|
53
|
+
|
|
54
|
+
return Napi::Number::New(env, rnd);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
static Napi::Object InitModule(Napi::Env env, Napi::Object exports)
|
|
60
|
+
{
|
|
61
|
+
using namespace RG;
|
|
62
|
+
|
|
63
|
+
exports.Set("srand", Napi::Function::New(env, RunSrand));
|
|
64
|
+
exports.Set("rand", Napi::Function::New(env, RunRand));
|
|
65
|
+
|
|
66
|
+
return exports;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
NODE_API_MODULE(koffi, InitModule);
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// This program is free software: you can redistribute it and/or modify
|
|
4
|
+
// it under the terms of the GNU Affero General Public License as published by
|
|
5
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
6
|
+
// (at your option) any later version.
|
|
7
|
+
//
|
|
8
|
+
// This program is distributed in the hope that it will be useful,
|
|
9
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11
|
+
// GNU Affero General Public License for more details.
|
|
12
|
+
//
|
|
13
|
+
// You should have received a copy of the GNU Affero General Public License
|
|
14
|
+
// along with this program. If not, see https://www.gnu.org/licenses/.
|
|
15
|
+
|
|
16
|
+
const rand = require('./build/rand_napi.node');
|
|
17
|
+
|
|
18
|
+
let sum = 0;
|
|
19
|
+
|
|
20
|
+
main();
|
|
21
|
+
|
|
22
|
+
function main() {
|
|
23
|
+
let time = 5000;
|
|
24
|
+
|
|
25
|
+
if (process.argv.length >= 3) {
|
|
26
|
+
time = parseFloat(process.argv[2]) * 1000;
|
|
27
|
+
if (Number.isNaN(time))
|
|
28
|
+
throw new Error('Not a valid number');
|
|
29
|
+
if (time < 0)
|
|
30
|
+
throw new Error('Time must be positive');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
rand.srand(42);
|
|
34
|
+
|
|
35
|
+
let start = performance.now();
|
|
36
|
+
let iterations = 0;
|
|
37
|
+
|
|
38
|
+
while (performance.now() - start < time) {
|
|
39
|
+
for (let i = 0; i < 1000000; i++)
|
|
40
|
+
sum += rand.rand();
|
|
41
|
+
|
|
42
|
+
iterations += 1000000;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
time = performance.now() - start;
|
|
46
|
+
console.log(JSON.stringify({ iterations: iterations, time: Math.round(time) }));
|
|
47
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// This program is free software: you can redistribute it and/or modify
|
|
4
|
+
// it under the terms of the GNU Affero General Public License as published by
|
|
5
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
6
|
+
// (at your option) any later version.
|
|
7
|
+
//
|
|
8
|
+
// This program is distributed in the hope that it will be useful,
|
|
9
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11
|
+
// GNU Affero General Public License for more details.
|
|
12
|
+
//
|
|
13
|
+
// You should have received a copy of the GNU Affero General Public License
|
|
14
|
+
// along with this program. If not, see https://www.gnu.org/licenses/.
|
|
15
|
+
|
|
16
|
+
const ref = require('ref-napi');
|
|
17
|
+
const ffi = require('ffi-napi');
|
|
18
|
+
const struct = require('ref-struct-di')(ref);
|
|
19
|
+
|
|
20
|
+
let sum = 0;
|
|
21
|
+
|
|
22
|
+
main();
|
|
23
|
+
|
|
24
|
+
async function main() {
|
|
25
|
+
let time = 5000;
|
|
26
|
+
|
|
27
|
+
if (process.argv.length >= 3) {
|
|
28
|
+
time = parseFloat(process.argv[2]) * 1000;
|
|
29
|
+
if (Number.isNaN(time))
|
|
30
|
+
throw new Error('Not a valid number');
|
|
31
|
+
if (time < 0)
|
|
32
|
+
throw new Error('Time must be positive');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const lib = ffi.Library(process.platform == 'win32' ? 'msvcrt.dll' : null, {
|
|
36
|
+
srand: ['void', ['uint']],
|
|
37
|
+
rand: ['int', []]
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
lib.srand(42);
|
|
41
|
+
|
|
42
|
+
let start = performance.now();
|
|
43
|
+
let iterations = 0;
|
|
44
|
+
|
|
45
|
+
while (performance.now() - start < time) {
|
|
46
|
+
for (let i = 0; i < 1000000; i++)
|
|
47
|
+
sum += lib.rand();
|
|
48
|
+
|
|
49
|
+
iterations += 1000000;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
time = performance.now() - start;
|
|
53
|
+
console.log(JSON.stringify({ iterations: iterations, time: Math.round(time) }));
|
|
54
|
+
}
|
|
55
|
+
|
|
@@ -11,8 +11,8 @@
|
|
|
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 "
|
|
15
|
-
#include "
|
|
14
|
+
#include "src/core/libcc/libcc.hh"
|
|
15
|
+
#include "vendor/raylib/src/raylib.h"
|
|
16
16
|
|
|
17
17
|
namespace RG {
|
|
18
18
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|