koffi 2.2.3 → 2.2.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.
Files changed (102) hide show
  1. package/{ChangeLog.md → CHANGELOG.md} +19 -3
  2. package/LICENSE.txt +160 -656
  3. package/README.md +1 -1
  4. package/doc/calls.md +277 -0
  5. package/doc/changes.md +1 -1
  6. package/doc/functions.md +17 -275
  7. package/doc/index.rst +4 -2
  8. package/doc/misc.md +97 -0
  9. package/doc/pointers.md +135 -0
  10. package/doc/static/custom.css +3 -3
  11. package/doc/types.md +3 -193
  12. package/package.json +4 -4
  13. package/src/cnoke/LICENSE.txt +160 -656
  14. package/src/cnoke/assets/FindCNoke.cmake +3 -3
  15. package/src/cnoke/assets/win_delay_hook.c +3 -3
  16. package/src/cnoke/cnoke.js +3 -3
  17. package/src/cnoke/package.json +2 -2
  18. package/src/core/libcc/libcc.cc +4 -4
  19. package/src/core/libcc/libcc.hh +3 -3
  20. package/src/koffi/CMakeLists.txt +3 -3
  21. package/src/koffi/benchmark/CMakeLists.txt +3 -3
  22. package/src/koffi/benchmark/atoi_koffi.js +3 -3
  23. package/src/koffi/benchmark/atoi_napi.cc +3 -3
  24. package/src/koffi/benchmark/atoi_napi.js +3 -3
  25. package/src/koffi/benchmark/atoi_node_ffi.js +3 -3
  26. package/src/koffi/benchmark/benchmark.js +3 -3
  27. package/src/koffi/benchmark/rand_koffi.js +3 -3
  28. package/src/koffi/benchmark/rand_napi.cc +3 -3
  29. package/src/koffi/benchmark/rand_napi.js +3 -3
  30. package/src/koffi/benchmark/rand_node_ffi.js +3 -3
  31. package/src/koffi/benchmark/raylib_cc.cc +3 -3
  32. package/src/koffi/benchmark/raylib_cc.js +3 -3
  33. package/src/koffi/benchmark/raylib_koffi.js +3 -3
  34. package/src/koffi/benchmark/raylib_node_ffi.js +3 -3
  35. package/src/koffi/benchmark/raylib_node_raylib.js +3 -3
  36. package/src/koffi/build/2.2.5/koffi_darwin_arm64.tar.gz +0 -0
  37. package/src/koffi/build/2.2.5/koffi_darwin_x64.tar.gz +0 -0
  38. package/src/koffi/build/2.2.5/koffi_freebsd_arm64.tar.gz +0 -0
  39. package/src/koffi/build/2.2.5/koffi_freebsd_ia32.tar.gz +0 -0
  40. package/src/koffi/build/2.2.5/koffi_freebsd_x64.tar.gz +0 -0
  41. package/src/koffi/build/2.2.5/koffi_linux_arm32hf.tar.gz +0 -0
  42. package/src/koffi/build/2.2.5/koffi_linux_arm64.tar.gz +0 -0
  43. package/src/koffi/build/2.2.5/koffi_linux_ia32.tar.gz +0 -0
  44. package/src/koffi/build/2.2.5/koffi_linux_riscv64hf64.tar.gz +0 -0
  45. package/src/koffi/build/2.2.5/koffi_linux_x64.tar.gz +0 -0
  46. package/src/koffi/build/2.2.5/koffi_openbsd_ia32.tar.gz +0 -0
  47. package/src/koffi/build/2.2.5/koffi_openbsd_x64.tar.gz +0 -0
  48. package/src/koffi/build/2.2.5/koffi_win32_arm64.tar.gz +0 -0
  49. package/src/koffi/build/2.2.5/koffi_win32_ia32.tar.gz +0 -0
  50. package/src/koffi/build/2.2.5/koffi_win32_x64.tar.gz +0 -0
  51. package/src/koffi/src/abi_arm32.cc +3 -3
  52. package/src/koffi/src/abi_arm32_fwd.S +3 -3
  53. package/src/koffi/src/abi_arm64.cc +3 -3
  54. package/src/koffi/src/abi_arm64_fwd.S +3 -3
  55. package/src/koffi/src/abi_arm64_fwd.asm +3 -3
  56. package/src/koffi/src/abi_riscv64.cc +3 -3
  57. package/src/koffi/src/abi_riscv64_fwd.S +3 -3
  58. package/src/koffi/src/abi_trampolines.inc +3 -3
  59. package/src/koffi/src/abi_x64_sysv.cc +3 -3
  60. package/src/koffi/src/abi_x64_sysv_fwd.S +3 -3
  61. package/src/koffi/src/abi_x64_win.cc +3 -3
  62. package/src/koffi/src/abi_x64_win_fwd.asm +3 -3
  63. package/src/koffi/src/abi_x86.cc +3 -3
  64. package/src/koffi/src/abi_x86_fwd.S +3 -3
  65. package/src/koffi/src/abi_x86_fwd.asm +3 -3
  66. package/src/koffi/src/call.cc +3 -3
  67. package/src/koffi/src/call.hh +3 -3
  68. package/src/koffi/src/ffi.cc +5 -5
  69. package/src/koffi/src/ffi.hh +3 -7
  70. package/src/koffi/src/index.js +3 -3
  71. package/src/koffi/src/parser.cc +3 -3
  72. package/src/koffi/src/parser.hh +3 -3
  73. package/src/koffi/src/util.cc +3 -3
  74. package/src/koffi/src/util.hh +3 -3
  75. package/src/koffi/src/win32.hh +3 -3
  76. package/src/koffi/test/CMakeLists.txt +3 -3
  77. package/src/koffi/test/async.js +3 -3
  78. package/src/koffi/test/callbacks.js +3 -3
  79. package/src/koffi/test/misc.c +3 -3
  80. package/src/koffi/test/raylib.js +3 -3
  81. package/src/koffi/test/sqlite.js +3 -3
  82. package/src/koffi/test/sync.js +3 -3
  83. package/src/koffi/test/win32.c +3 -3
  84. package/src/koffi/test/win32.js +3 -3
  85. package/src/koffi/tools/qemu.js +4 -4
  86. package/src/koffi/tools/write_trampolines.py +3 -3
  87. package/doc/memory.md +0 -33
  88. package/src/koffi/build/2.2.3/koffi_darwin_arm64.tar.gz +0 -0
  89. package/src/koffi/build/2.2.3/koffi_darwin_x64.tar.gz +0 -0
  90. package/src/koffi/build/2.2.3/koffi_freebsd_arm64.tar.gz +0 -0
  91. package/src/koffi/build/2.2.3/koffi_freebsd_ia32.tar.gz +0 -0
  92. package/src/koffi/build/2.2.3/koffi_freebsd_x64.tar.gz +0 -0
  93. package/src/koffi/build/2.2.3/koffi_linux_arm32hf.tar.gz +0 -0
  94. package/src/koffi/build/2.2.3/koffi_linux_arm64.tar.gz +0 -0
  95. package/src/koffi/build/2.2.3/koffi_linux_ia32.tar.gz +0 -0
  96. package/src/koffi/build/2.2.3/koffi_linux_riscv64hf64.tar.gz +0 -0
  97. package/src/koffi/build/2.2.3/koffi_linux_x64.tar.gz +0 -0
  98. package/src/koffi/build/2.2.3/koffi_openbsd_ia32.tar.gz +0 -0
  99. package/src/koffi/build/2.2.3/koffi_openbsd_x64.tar.gz +0 -0
  100. package/src/koffi/build/2.2.3/koffi_win32_arm64.tar.gz +0 -0
  101. package/src/koffi/build/2.2.3/koffi_win32_ia32.tar.gz +0 -0
  102. package/src/koffi/build/2.2.3/koffi_win32_x64.tar.gz +0 -0
package/doc/memory.md DELETED
@@ -1,33 +0,0 @@
1
- # Memory usage
2
-
3
- ## How it works
4
-
5
- For synchronous/normal calls, Koffi uses two preallocated memory blocks:
6
-
7
- - One to construct the C stack and assign registers, subsequently used by the platform-specific assembly code (1 MiB by default)
8
- - One to allocate strings and big objects/structs (2 MiB by default)
9
-
10
- Unless very big strings or objects (at least more than one page of memory) are used, Koffi does not directly allocate any extra memory during calls or callbacks. However, please note that the JS engine (V8) might.
11
-
12
- The size (in bytes) of these preallocated blocks can be changed. Use `koffi.config()` to get an object with the settings, and `koffi.config(obj)` to apply new settings.
13
-
14
- ```js
15
- let config = koffi.config();
16
- console.log(config);
17
- ```
18
-
19
- The same is true for asynchronous calls. When an asynchronous call is made, Koffi will allocate new blocks unless there is an unused (resident) set of blocks still available. Once the asynchronous call is finished, these blocks are freed if there are more than `resident_async_pools` sets of blocks left around.
20
-
21
- There cannot be more than `max_async_calls` running at the same time.
22
-
23
- ## Default settings
24
-
25
- Setting | Default | Description
26
- -------------------- | ------- | -----------------------------------------------
27
- sync_stack_size | 1 MiB | Stack size for synchronous calls
28
- sync_heap_size | 2 MiB | Heap size for synchronous calls
29
- async_stack_size | 256 kiB | Stack size for asynchronous calls
30
- async_heap_size | 512 kiB | Heap size for asynchronous calls
31
- resident_async_pools | 2 | Number of resident pools for asynchronous calls
32
- max_async_calls | 64 | Maximum number of ongoing asynchronous calls
33
- max_type_size | 64 MiB | Maximum size of Koffi types (for arrays and structs)