koffi 2.10.0 → 2.11.0
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 +309 -98
- package/build/koffi/darwin_arm64/koffi.node +0 -0
- package/build/koffi/darwin_x64/koffi.node +0 -0
- package/build/koffi/freebsd_arm64/koffi.node +0 -0
- package/build/koffi/freebsd_ia32/koffi.node +0 -0
- package/build/koffi/freebsd_x64/koffi.node +0 -0
- package/build/koffi/linux_arm64/koffi.node +0 -0
- package/build/koffi/linux_armhf/koffi.node +0 -0
- package/build/koffi/linux_ia32/koffi.node +0 -0
- package/build/koffi/linux_riscv64/koffi.node +0 -0
- package/build/koffi/linux_x64/koffi.node +0 -0
- package/build/koffi/musl_x64/koffi.node +0 -0
- package/build/koffi/openbsd_ia32/koffi.node +0 -0
- package/build/koffi/openbsd_x64/koffi.node +0 -0
- package/build/koffi/win32_arm64/koffi.node +0 -0
- package/build/koffi/win32_ia32/koffi.node +0 -0
- package/build/koffi/win32_x64/koffi.node +0 -0
- package/doc/assets.ini +5 -1
- package/doc/{flaat/flaat.css → flat/flat.css} +2 -0
- package/doc/{flaat → flat}/normal.css +124 -31
- package/doc/{flaat → flat}/print.css +1 -2
- package/doc/flat/reset.css +41 -0
- package/doc/{flaat → flat}/small.css +5 -2
- package/doc/{flaat/flaat.js → flat/static.js} +21 -10
- package/doc/pages/contribute.md +3 -3
- package/doc/pages/output.md +32 -1
- package/doc/pages/packaging.md +5 -5
- package/doc/pages/pointers.md +9 -0
- package/doc/pages.ini +13 -13
- package/doc/static/{koffi.js → highlight.js} +0 -1
- package/doc/static/koffi.css +3 -2
- package/doc/static/logo.webp +0 -0
- package/doc/templates/code.html +49 -0
- package/doc/templates/page.html +1 -1
- package/index.js +2 -2
- package/indirect.js +2 -2
- package/package.json +2 -2
- package/src/koffi/CMakeLists.txt +1 -1
- package/src/koffi/src/ffi.cc +39 -0
- package/build/koffi/linux_arm32/koffi.node +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,107 +5,162 @@
|
|
|
5
5
|
|
|
6
6
|
## Koffi 2
|
|
7
7
|
|
|
8
|
+
### Koffi 2.11
|
|
9
|
+
|
|
10
|
+
#### Koffi 2.11.0
|
|
11
|
+
|
|
12
|
+
*Released on 2025-04-09*
|
|
13
|
+
|
|
14
|
+
- Add `koffi.view()` to [access memory without copy](pointers#external-buffers-views)
|
|
15
|
+
- Various documentation fixes and improvements
|
|
16
|
+
|
|
8
17
|
### Koffi 2.10
|
|
9
18
|
|
|
10
|
-
#### Koffi 2.10.
|
|
19
|
+
#### Koffi 2.10.1
|
|
20
|
+
|
|
21
|
+
*Released on 2025-01-24*
|
|
22
|
+
|
|
23
|
+
- Fix detection of ARM32 in build script in some cases
|
|
24
|
+
- Fix wrong path for ARM32 prebuild
|
|
25
|
+
|
|
26
|
+
#### Koffi 2.10.0
|
|
27
|
+
|
|
28
|
+
*Released on 2024-12-22*
|
|
11
29
|
|
|
12
30
|
- Allow [redefinition of opaque types](misc#circular-references) to concrete struct or union
|
|
31
|
+
- Clear out executable stack bit from ELF targets (`-z noexecstack`)
|
|
13
32
|
- Update documentation style
|
|
14
33
|
|
|
15
34
|
### Koffi 2.9
|
|
16
35
|
|
|
17
|
-
#### Koffi 2.9.2
|
|
36
|
+
#### Koffi 2.9.2
|
|
37
|
+
|
|
38
|
+
*Released on 2024-11-08*
|
|
18
39
|
|
|
19
40
|
- Fix non-aligned pointers when pushing UTF-16 and UTF-32 string parameters
|
|
20
41
|
- Various documentation fixes and improvements
|
|
21
42
|
|
|
22
|
-
#### Koffi 2.9.1
|
|
43
|
+
#### Koffi 2.9.1
|
|
44
|
+
|
|
45
|
+
*Released on 2024-09-23*
|
|
23
46
|
|
|
24
47
|
- Fix x86 32-bit support regression in 2.9.0
|
|
25
48
|
- Add missing TS definition for `koffi.alloc()`
|
|
26
49
|
- Support `koffi.load(null)` in TS definition file
|
|
27
50
|
|
|
28
|
-
#### Koffi 2.9.0
|
|
51
|
+
#### Koffi 2.9.0
|
|
52
|
+
|
|
53
|
+
*Released on 2024-07-22*
|
|
29
54
|
|
|
30
55
|
- Add support for char32_t and wchar_t (wide) strings
|
|
31
56
|
- Include Linux/musl x64 prebuild (based on Alpine)
|
|
32
57
|
|
|
33
58
|
### Koffi 2.8
|
|
34
59
|
|
|
35
|
-
#### Koffi 2.8.11
|
|
60
|
+
#### Koffi 2.8.11
|
|
61
|
+
|
|
62
|
+
*Released on 2024-06-19*
|
|
36
63
|
|
|
37
64
|
- Work around MSVC compiler bug introduced in Visual Studio 17.10
|
|
38
65
|
|
|
39
66
|
> [!WARNING]
|
|
40
67
|
> Use on platforms without pre-built binaries is broken in Koffi 2.8.10, skip this version.
|
|
41
68
|
|
|
42
|
-
#### Koffi 2.8.9
|
|
69
|
+
#### Koffi 2.8.9
|
|
70
|
+
|
|
71
|
+
*Released on 2024-05-17*
|
|
43
72
|
|
|
44
73
|
- Fix ABI issue regarding bool return values on x86_64 (and possibly other platforms)
|
|
45
74
|
|
|
46
|
-
#### Koffi 2.8.8
|
|
75
|
+
#### Koffi 2.8.8
|
|
76
|
+
|
|
77
|
+
*Released on 2024-04-26*
|
|
47
78
|
|
|
48
79
|
- Support use of buffers with mismatched size (truncation or zero-filling)
|
|
49
80
|
|
|
50
|
-
#### Koffi 2.8.7
|
|
81
|
+
#### Koffi 2.8.7
|
|
82
|
+
|
|
83
|
+
*Released on 2024-04-23*
|
|
51
84
|
|
|
52
85
|
- Improve compatibility with SEHOP on Windows ([@longhun12346](https://github.com/longhun12346))
|
|
53
86
|
|
|
54
|
-
#### Koffi 2.8.6
|
|
87
|
+
#### Koffi 2.8.6
|
|
88
|
+
|
|
89
|
+
*Released on 2024-04-12*
|
|
55
90
|
|
|
56
91
|
- Support [loading library](functions#loading-options) with RTLD_DEEPBIND where supported
|
|
57
92
|
|
|
58
|
-
#### Koffi 2.8.5
|
|
93
|
+
#### Koffi 2.8.5
|
|
94
|
+
|
|
95
|
+
*Released on 2024-04-11*
|
|
59
96
|
|
|
60
97
|
- Prevent obviously invalid type and member names
|
|
61
98
|
- Fix possible infinite loop / UB for `koffi.load()` errors on POSIX systems
|
|
62
99
|
- Fix null return value instead of exception for some errors in `koffi.load()` on Windows
|
|
63
100
|
|
|
64
|
-
#### Koffi 2.8.4
|
|
101
|
+
#### Koffi 2.8.4
|
|
102
|
+
|
|
103
|
+
*Released on 2024-04-09*
|
|
65
104
|
|
|
66
105
|
- Use simpler workaround for Node 20.12+ and 21.6+ to avoid excessive memory use
|
|
67
106
|
|
|
68
107
|
> [!WARNING]
|
|
69
108
|
> Some pre-built binaries are missing in Koffi 2.8.3, skip this version.
|
|
70
109
|
|
|
71
|
-
#### Koffi 2.8.2
|
|
110
|
+
#### Koffi 2.8.2
|
|
111
|
+
|
|
112
|
+
*Released on 2024-04-07*
|
|
72
113
|
|
|
73
114
|
- Support [loading library](functions#loading-options) with RTLD_GLOBAL on POSIX platforms
|
|
74
115
|
|
|
75
|
-
#### Koffi 2.8.1
|
|
116
|
+
#### Koffi 2.8.1
|
|
117
|
+
|
|
118
|
+
*Released on 2024-04-04*
|
|
76
119
|
|
|
77
120
|
- Fix incompatibility with Node 20.12+ and 21.6+
|
|
78
121
|
|
|
79
|
-
#### Koffi 2.8.0
|
|
122
|
+
#### Koffi 2.8.0
|
|
123
|
+
|
|
124
|
+
*Released on 2024-02-12*
|
|
80
125
|
|
|
81
126
|
- Support pushing pointers for string arguments
|
|
82
127
|
- Add `koffi.alloc()` for [stable pointers](output#stable-pointers)
|
|
83
128
|
|
|
84
129
|
### Koffi 2.7
|
|
85
130
|
|
|
86
|
-
#### Koffi 2.7.4
|
|
131
|
+
#### Koffi 2.7.4
|
|
132
|
+
|
|
133
|
+
*Released on 2024-02-04*
|
|
87
134
|
|
|
88
135
|
- Support callbacks happening on main thread but outside JS call (such as during event loop)
|
|
89
136
|
- Improve stability after `koffi.reset()`
|
|
90
137
|
- Expose internal Node/NAPI `env` pointer
|
|
91
138
|
- Name main Koffi API functions
|
|
92
139
|
|
|
93
|
-
#### Koffi 2.7.3
|
|
140
|
+
#### Koffi 2.7.3
|
|
141
|
+
|
|
142
|
+
*Released on 2024-01-26*
|
|
94
143
|
|
|
95
144
|
- Support decoding NULL terminated arrays
|
|
96
145
|
|
|
97
|
-
#### Koffi 2.7.2
|
|
146
|
+
#### Koffi 2.7.2
|
|
147
|
+
|
|
148
|
+
*Released on 2024-01-15*
|
|
98
149
|
|
|
99
150
|
- Add missing TypeScript declaration for `koffi.free()`
|
|
100
151
|
- Fix TypeScript declaration of `koffi.encode()`
|
|
101
152
|
- Try to improve compatibility with webpack
|
|
102
153
|
|
|
103
|
-
#### Koffi 2.7.1
|
|
154
|
+
#### Koffi 2.7.1
|
|
155
|
+
|
|
156
|
+
*Released on 2024-01-02*
|
|
104
157
|
|
|
105
158
|
- Support C-like `int[3]` syntax for [fixed array types](input#fixed-size-c-arrays)
|
|
106
159
|
- Refuse type specifiers with invalid tokens at the end (previously ignored)
|
|
107
160
|
|
|
108
|
-
#### Koffi 2.7.0
|
|
161
|
+
#### Koffi 2.7.0
|
|
162
|
+
|
|
163
|
+
*Released on 2023-12-21*
|
|
109
164
|
|
|
110
165
|
- Support alternative [callback calling convention](callbacks#callback-types) in classic syntax
|
|
111
166
|
- Change syntax for [calling conventions](functions#calling-conventions) with classic syntax
|
|
@@ -113,20 +168,28 @@
|
|
|
113
168
|
|
|
114
169
|
### Koffi 2.6
|
|
115
170
|
|
|
116
|
-
#### Koffi 2.6.12
|
|
171
|
+
#### Koffi 2.6.12
|
|
172
|
+
|
|
173
|
+
*Released on 2023-12-11*
|
|
117
174
|
|
|
118
175
|
- Fix possible crash introduced in Koffi 2.6.11
|
|
119
176
|
|
|
120
|
-
#### Koffi 2.6.11
|
|
177
|
+
#### Koffi 2.6.11
|
|
178
|
+
|
|
179
|
+
*Released on 2023-12-05*
|
|
121
180
|
|
|
122
181
|
- Speed up resolving simple and often used type names
|
|
123
182
|
- Fix use of optional length argument with [koffi.encode()](variables#encode-to-c-memory)
|
|
124
183
|
|
|
125
|
-
#### Koffi 2.6.10
|
|
184
|
+
#### Koffi 2.6.10
|
|
185
|
+
|
|
186
|
+
*Released on 2023-11-29*
|
|
126
187
|
|
|
127
188
|
- Protect GetLastError() value from Node.js and V8 on Windows
|
|
128
189
|
|
|
129
|
-
#### Koffi 2.6.9
|
|
190
|
+
#### Koffi 2.6.9
|
|
191
|
+
|
|
192
|
+
*Released on 2023-11-25*
|
|
130
193
|
|
|
131
194
|
- Search in DLL directory for additional dependencies on Windows
|
|
132
195
|
- Ignore prototype properties when making structs or unions
|
|
@@ -136,32 +199,44 @@
|
|
|
136
199
|
> [!WARNING]
|
|
137
200
|
> Loading Win32 system libraries can fail in Koffi 2.6.8, skip this version.
|
|
138
201
|
|
|
139
|
-
#### Koffi 2.6.6
|
|
202
|
+
#### Koffi 2.6.6
|
|
203
|
+
|
|
204
|
+
*Released on 2023-10-28*
|
|
140
205
|
|
|
141
206
|
- Better handle errors while making struct or union types
|
|
142
207
|
|
|
143
|
-
#### Koffi 2.6.5
|
|
208
|
+
#### Koffi 2.6.5
|
|
209
|
+
|
|
210
|
+
*Released on 2023-10-28*
|
|
144
211
|
|
|
145
212
|
- Allow self-referential structs and unions
|
|
146
213
|
- Fix rare Node.js "FATAL ERROR" with some invalid type specifiers
|
|
147
214
|
|
|
148
|
-
#### Koffi 2.6.4
|
|
215
|
+
#### Koffi 2.6.4
|
|
216
|
+
|
|
217
|
+
*Released on 2023-10-26*
|
|
149
218
|
|
|
150
219
|
- Fix build issue with recent Visual Studio versions
|
|
151
220
|
|
|
152
|
-
#### Koffi 2.6.3
|
|
221
|
+
#### Koffi 2.6.3
|
|
222
|
+
|
|
223
|
+
*Released on 2023-10-17*
|
|
153
224
|
|
|
154
225
|
- Add indirect loading script to help some bundlers
|
|
155
226
|
|
|
156
227
|
> [!WARNING]
|
|
157
228
|
> Pre-built binaries don't work correctly in Koffi 2.6.2, skip this version.
|
|
158
229
|
|
|
159
|
-
#### Koffi 2.6.1
|
|
230
|
+
#### Koffi 2.6.1
|
|
231
|
+
|
|
232
|
+
*Released on 2023-09-18*
|
|
160
233
|
|
|
161
234
|
- Support string direction qualifiers in classic function definitions
|
|
162
235
|
- Fix possible off-by-one array access when parsing type name
|
|
163
236
|
|
|
164
|
-
#### Koffi 2.6.0
|
|
237
|
+
#### Koffi 2.6.0
|
|
238
|
+
|
|
239
|
+
*Released on 2023-09-13*
|
|
165
240
|
|
|
166
241
|
**New features:**
|
|
167
242
|
|
|
@@ -176,21 +251,29 @@
|
|
|
176
251
|
|
|
177
252
|
### Koffi 2.5
|
|
178
253
|
|
|
179
|
-
#### Koffi 2.5.20
|
|
254
|
+
#### Koffi 2.5.20
|
|
255
|
+
|
|
256
|
+
*Released on 2023-08-31*
|
|
180
257
|
|
|
181
258
|
- Fix possible crash with async registered callbacks introduced in Koffi 2.5.19
|
|
182
259
|
- Various documentation fixes and improvements
|
|
183
260
|
|
|
184
|
-
#### Koffi 2.5.19
|
|
261
|
+
#### Koffi 2.5.19
|
|
262
|
+
|
|
263
|
+
*Released on 2023-08-29*
|
|
185
264
|
|
|
186
265
|
- Create thread-safe function broker lazily
|
|
187
266
|
- Add [koffi.reset()](misc#reset-internal-state) for type names and async broker
|
|
188
267
|
|
|
189
|
-
#### Koffi 2.5.18
|
|
268
|
+
#### Koffi 2.5.18
|
|
269
|
+
|
|
270
|
+
*Released on 2023-08-27*
|
|
190
271
|
|
|
191
272
|
- Fix compatibility with Electron
|
|
192
273
|
|
|
193
|
-
#### Koffi 2.5.16
|
|
274
|
+
#### Koffi 2.5.16
|
|
275
|
+
|
|
276
|
+
*Released on 2023-08-25*
|
|
194
277
|
|
|
195
278
|
- Run Koffi tests through usual index.js entry point
|
|
196
279
|
- Fix DLL error when using Koffi from NW.js on Windows
|
|
@@ -199,21 +282,29 @@
|
|
|
199
282
|
> [!WARNING]
|
|
200
283
|
> Pre-built binaries don't work correctly in Koffi 2.5.13 to 2.5.15, skip those versions.
|
|
201
284
|
|
|
202
|
-
#### Koffi 2.5.12
|
|
285
|
+
#### Koffi 2.5.12
|
|
286
|
+
|
|
287
|
+
*Released on 2023-08-21*
|
|
203
288
|
|
|
204
289
|
- Fix native module bundling for FreeBSD ARM64 and Linux RISC-V 64
|
|
205
290
|
- Increase maximum number of parameters to 64
|
|
206
291
|
|
|
207
|
-
#### Koffi 2.5.11
|
|
292
|
+
#### Koffi 2.5.11
|
|
293
|
+
|
|
294
|
+
*Released on 2023-08-03*
|
|
208
295
|
|
|
209
296
|
- Support casting function pointers with [koffi.as()](pointers#handling-void-pointers)
|
|
210
297
|
- Build in C++20 mode
|
|
211
298
|
|
|
212
|
-
#### Koffi 2.5.10
|
|
299
|
+
#### Koffi 2.5.10
|
|
300
|
+
|
|
301
|
+
*Released on 2023-08-01*
|
|
213
302
|
|
|
214
303
|
- Fix CMake regression when client has to build Koffi
|
|
215
304
|
|
|
216
|
-
#### Koffi 2.5.9
|
|
305
|
+
#### Koffi 2.5.9
|
|
306
|
+
|
|
307
|
+
*Released on 2023-07-28*
|
|
217
308
|
|
|
218
309
|
**Main changes:**
|
|
219
310
|
|
|
@@ -225,43 +316,61 @@
|
|
|
225
316
|
- Add missing unload() export to TS file
|
|
226
317
|
- Add export for koffi.types in TS file
|
|
227
318
|
|
|
228
|
-
#### Koffi 2.5.8
|
|
319
|
+
#### Koffi 2.5.8
|
|
320
|
+
|
|
321
|
+
*Released on 2023-07-26*
|
|
229
322
|
|
|
230
323
|
- Add more search paths for native Koffi modules
|
|
231
324
|
- Add section [about bundling](start#bundling-koffi) to documentation
|
|
232
325
|
|
|
233
|
-
#### Koffi 2.5.7
|
|
326
|
+
#### Koffi 2.5.7
|
|
327
|
+
|
|
328
|
+
*Released on 2023-07-19*
|
|
234
329
|
|
|
235
330
|
- Point package to new repository
|
|
236
331
|
|
|
237
|
-
#### Koffi 2.5.6
|
|
332
|
+
#### Koffi 2.5.6
|
|
333
|
+
|
|
334
|
+
*Released on 2023-07-19*
|
|
238
335
|
|
|
239
336
|
- Increase limit of output parameters from 16 to 32
|
|
240
337
|
|
|
241
|
-
#### Koffi 2.5.5
|
|
338
|
+
#### Koffi 2.5.5
|
|
339
|
+
|
|
340
|
+
*Released on 2023-07-17*
|
|
242
341
|
|
|
243
342
|
- Support decoding non-char null-terminated arrays
|
|
244
343
|
|
|
245
|
-
#### Koffi 2.5.4
|
|
344
|
+
#### Koffi 2.5.4
|
|
345
|
+
|
|
346
|
+
*Released on 2023-07-14*
|
|
246
347
|
|
|
247
348
|
- Fix `koffi.pointer()` not accepting disposable types
|
|
248
349
|
- Fix potential issues when making pointers to anonymous types
|
|
249
350
|
|
|
250
|
-
#### Koffi 2.5.3
|
|
351
|
+
#### Koffi 2.5.3
|
|
352
|
+
|
|
353
|
+
*Released on 2023-07-05*
|
|
251
354
|
|
|
252
355
|
- Add missing union exports in TS definition file
|
|
253
356
|
- Fix some parameter names in TS definition file
|
|
254
357
|
|
|
255
|
-
#### Koffi 2.5.2
|
|
358
|
+
#### Koffi 2.5.2
|
|
359
|
+
|
|
360
|
+
*Released on 2023-07-04*
|
|
256
361
|
|
|
257
362
|
- Default initialize unset object/struct members
|
|
258
363
|
|
|
259
|
-
#### Koffi 2.5.1
|
|
364
|
+
#### Koffi 2.5.1
|
|
365
|
+
|
|
366
|
+
*Released on 2023-06-20*
|
|
260
367
|
|
|
261
368
|
- Fix crash with some struct types in System V 64 ABI
|
|
262
369
|
- Always use direct passthrough for buffer arguments
|
|
263
370
|
|
|
264
|
-
#### Koffi 2.5.0
|
|
371
|
+
#### Koffi 2.5.0
|
|
372
|
+
|
|
373
|
+
*Released on 2023-06-20*
|
|
265
374
|
|
|
266
375
|
**New features:**
|
|
267
376
|
|
|
@@ -274,12 +383,16 @@
|
|
|
274
383
|
|
|
275
384
|
### Koffi 2.4
|
|
276
385
|
|
|
277
|
-
#### Koffi 2.4.2
|
|
386
|
+
#### Koffi 2.4.2
|
|
387
|
+
|
|
388
|
+
*Released on 2023-06-04*
|
|
278
389
|
|
|
279
390
|
- Support calling variadic function pointers
|
|
280
391
|
- Add documentation for function pointers
|
|
281
392
|
|
|
282
|
-
#### Koffi 2.4.1
|
|
393
|
+
#### Koffi 2.4.1
|
|
394
|
+
|
|
395
|
+
*Released on 2023-06-03*
|
|
283
396
|
|
|
284
397
|
**Main changes:**
|
|
285
398
|
|
|
@@ -296,49 +409,69 @@
|
|
|
296
409
|
|
|
297
410
|
### Koffi 2.3
|
|
298
411
|
|
|
299
|
-
#### Koffi 2.3.20
|
|
412
|
+
#### Koffi 2.3.20
|
|
413
|
+
|
|
414
|
+
*Released on 2023-05-15*
|
|
300
415
|
|
|
301
416
|
- Support explicit library unloading with `lib.unload()`
|
|
302
417
|
|
|
303
|
-
#### Koffi 2.3.19
|
|
418
|
+
#### Koffi 2.3.19
|
|
419
|
+
|
|
420
|
+
*Released on 2023-04-21*
|
|
304
421
|
|
|
305
422
|
- Actually allow non-ambiguous [string] values for `void *` arguments
|
|
306
423
|
|
|
307
|
-
#### Koffi 2.3.18
|
|
424
|
+
#### Koffi 2.3.18
|
|
425
|
+
|
|
426
|
+
*Released on 2023-04-21*
|
|
308
427
|
|
|
309
428
|
- Fix possible crash on exit caused by unregistered callbacks
|
|
310
429
|
|
|
311
|
-
#### Koffi 2.3.17
|
|
430
|
+
#### Koffi 2.3.17
|
|
431
|
+
|
|
432
|
+
*Released on 2023-04-20*
|
|
312
433
|
|
|
313
434
|
- Allow strings for input `void *`, `int8_t *` and `int16_t *` pointer arguments
|
|
314
435
|
- Support using `[string]` (single-element string arrays) for polymorphic input/output arguments
|
|
315
436
|
|
|
316
|
-
#### Koffi 2.3.16
|
|
437
|
+
#### Koffi 2.3.16
|
|
438
|
+
|
|
439
|
+
*Released on 2023-04-11*
|
|
317
440
|
|
|
318
441
|
- Fix Windows ARM64 build to work with official Node.js version
|
|
319
442
|
- Compile Windows builds with Visual Studio 2022 17.5.3
|
|
320
443
|
- Support null in `koffi.free()` and `koffi.address()`
|
|
321
444
|
|
|
322
|
-
#### Koffi 2.3.15
|
|
445
|
+
#### Koffi 2.3.15
|
|
446
|
+
|
|
447
|
+
*Released on 2023-04-10*
|
|
323
448
|
|
|
324
449
|
- Improve manual decoding of 0-terminated strings
|
|
325
450
|
- Add checks around array conversion hints
|
|
326
451
|
|
|
327
|
-
#### Koffi 2.3.14
|
|
452
|
+
#### Koffi 2.3.14
|
|
453
|
+
|
|
454
|
+
*Released on 2023-04-05*
|
|
328
455
|
|
|
329
456
|
- Add `koffi.errno()` function to get and set current errno value
|
|
330
457
|
- Add `koffi.os.errno` object with valid errno codes
|
|
331
458
|
|
|
332
|
-
#### Koffi 2.3.13
|
|
459
|
+
#### Koffi 2.3.13
|
|
460
|
+
|
|
461
|
+
*Released on 2023-03-30*
|
|
333
462
|
|
|
334
463
|
- Add `koffi.address()` to get the raw value of a wrapper pointer
|
|
335
464
|
|
|
336
|
-
#### Koffi 2.3.12
|
|
465
|
+
#### Koffi 2.3.12
|
|
466
|
+
|
|
467
|
+
*Released on 2023-03-30*
|
|
337
468
|
|
|
338
469
|
- Fix broken syntax in TS definition file
|
|
339
470
|
- Add missing exported properties in TS file
|
|
340
471
|
|
|
341
|
-
#### Koffi 2.3.11
|
|
472
|
+
#### Koffi 2.3.11
|
|
473
|
+
|
|
474
|
+
*Released on 2023-03-30*
|
|
342
475
|
|
|
343
476
|
**Main changes:**
|
|
344
477
|
|
|
@@ -350,27 +483,37 @@
|
|
|
350
483
|
- Avoid using `statx()` to allow compilation with glibc < 2.28
|
|
351
484
|
- Reorganize NPM package files to be less convoluted
|
|
352
485
|
|
|
353
|
-
#### Koffi 2.3.9
|
|
486
|
+
#### Koffi 2.3.9
|
|
487
|
+
|
|
488
|
+
*Released on 2023-03-10*
|
|
354
489
|
|
|
355
490
|
- Relicense under MIT license
|
|
356
491
|
|
|
357
|
-
#### Koffi 2.3.8
|
|
492
|
+
#### Koffi 2.3.8
|
|
493
|
+
|
|
494
|
+
*Released on 2023-02-28*
|
|
358
495
|
|
|
359
496
|
- Disable non-ready union support
|
|
360
497
|
- Simplify Windows stack allocation and drop NOACCESS and GUARD pages
|
|
361
498
|
- Adjust Windows TEB SEH chain and GuaranteedStackBytes for Koffi calls
|
|
362
499
|
|
|
363
|
-
#### Koffi 2.3.7
|
|
500
|
+
#### Koffi 2.3.7
|
|
501
|
+
|
|
502
|
+
*Released on 2023-02-27*
|
|
364
503
|
|
|
365
504
|
- Fix missing require in index.js ([@gastonFrecceroNapse](https://github.com/gastonFrecceroNapse))
|
|
366
505
|
- Reduce NPM package bloat (from 65 MB to 20 MB) caused by changes in 2.3.6
|
|
367
506
|
|
|
368
|
-
#### Koffi 2.3.6
|
|
507
|
+
#### Koffi 2.3.6
|
|
508
|
+
|
|
509
|
+
*Released on 2023-02-26*
|
|
369
510
|
|
|
370
511
|
- Fix broken TS definition file
|
|
371
512
|
- Keep all prebuilt binaries and load correct one at runtime
|
|
372
513
|
|
|
373
|
-
#### Koffi 2.3.5
|
|
514
|
+
#### Koffi 2.3.5
|
|
515
|
+
|
|
516
|
+
*Released on 2023-02-24*
|
|
374
517
|
|
|
375
518
|
**Main fixes:**
|
|
376
519
|
|
|
@@ -386,11 +529,15 @@
|
|
|
386
529
|
- Mark optional properties in TS TypeInfo class
|
|
387
530
|
- Minor performance improvements
|
|
388
531
|
|
|
389
|
-
#### Koffi 2.3.4
|
|
532
|
+
#### Koffi 2.3.4
|
|
533
|
+
|
|
534
|
+
*Released on 2023-01-31*
|
|
390
535
|
|
|
391
536
|
- Fix error when installing Koffi on Windows (2.3.2)
|
|
392
537
|
|
|
393
|
-
#### Koffi 2.3.2
|
|
538
|
+
#### Koffi 2.3.2
|
|
539
|
+
|
|
540
|
+
*Released on 2023-01-30*
|
|
394
541
|
|
|
395
542
|
**Main changes:**
|
|
396
543
|
|
|
@@ -403,13 +550,17 @@
|
|
|
403
550
|
- Avoid CNoke dependency
|
|
404
551
|
- Clear out development dependencies from package.json
|
|
405
552
|
|
|
406
|
-
#### Koffi 2.3.1
|
|
553
|
+
#### Koffi 2.3.1
|
|
554
|
+
|
|
555
|
+
*Released on 2023-01-30*
|
|
407
556
|
|
|
408
557
|
- Error out when trying to use ambiguous `void *` arguments (input and/or output)
|
|
409
558
|
- Adjust TypeScript definitions ([@insraq](https://github.com/insraq))
|
|
410
559
|
- Fix possible crash when parsing invalid prototype
|
|
411
560
|
|
|
412
|
-
#### Koffi 2.3.0
|
|
561
|
+
#### Koffi 2.3.0
|
|
562
|
+
|
|
563
|
+
*Released on 2023-01-25*
|
|
413
564
|
|
|
414
565
|
**Main changes:**
|
|
415
566
|
|
|
@@ -428,21 +579,29 @@
|
|
|
428
579
|
|
|
429
580
|
### Koffi 2.2
|
|
430
581
|
|
|
431
|
-
#### Koffi 2.2.5
|
|
582
|
+
#### Koffi 2.2.5
|
|
583
|
+
|
|
584
|
+
*Released on 2023-01-23*
|
|
432
585
|
|
|
433
586
|
- Relicense Koffi under LGPL 3.0
|
|
434
587
|
|
|
435
|
-
#### Koffi 2.2.4
|
|
588
|
+
#### Koffi 2.2.4
|
|
589
|
+
|
|
590
|
+
*Released on 2023-01-19*
|
|
436
591
|
|
|
437
592
|
- Fix memory leak on Windows (in Koffi 2.2.3) when running many async calls
|
|
438
593
|
- Reorganize documentation pages
|
|
439
594
|
|
|
440
|
-
#### Koffi 2.2.3
|
|
595
|
+
#### Koffi 2.2.3
|
|
596
|
+
|
|
597
|
+
*Released on 2023-01-17*
|
|
441
598
|
|
|
442
599
|
- Support native code that uses [Structured Exception Handling (SEH)](https://learn.microsoft.com/en-us/cpp/cpp/structured-exception-handling-c-cpp) on Windows (x86, x64 and ARM64)
|
|
443
600
|
- Try to use ebp/rbp as frame pointer in x86/x64 ASM code
|
|
444
601
|
|
|
445
|
-
#### Koffi 2.2.2
|
|
602
|
+
#### Koffi 2.2.2
|
|
603
|
+
|
|
604
|
+
*Released on 2023-01-14*
|
|
446
605
|
|
|
447
606
|
**Main fixes:**
|
|
448
607
|
|
|
@@ -456,11 +615,15 @@
|
|
|
456
615
|
- Check N-API version when module is loaded
|
|
457
616
|
- Optimize callback unregistration
|
|
458
617
|
|
|
459
|
-
#### Koffi 2.2.1
|
|
618
|
+
#### Koffi 2.2.1
|
|
619
|
+
|
|
620
|
+
*Released on 2022-12-21*
|
|
460
621
|
|
|
461
622
|
- Fix crash when [calling callback again after FFI call inside previous callback](https://github.com/Koromix/rygel/issues/15)
|
|
462
623
|
|
|
463
|
-
#### Koffi 2.2.0
|
|
624
|
+
#### Koffi 2.2.0
|
|
625
|
+
|
|
626
|
+
*Released on 2022-12-20*
|
|
464
627
|
|
|
465
628
|
**New features:**
|
|
466
629
|
|
|
@@ -476,11 +639,15 @@
|
|
|
476
639
|
|
|
477
640
|
### Koffi 2.1
|
|
478
641
|
|
|
479
|
-
#### Koffi 2.1.5
|
|
642
|
+
#### Koffi 2.1.5
|
|
643
|
+
|
|
644
|
+
*Released on 2022-11-27*
|
|
480
645
|
|
|
481
646
|
- Add missing README file to NPM package
|
|
482
647
|
|
|
483
|
-
#### Koffi 2.1.4
|
|
648
|
+
#### Koffi 2.1.4
|
|
649
|
+
|
|
650
|
+
*Released on 2022-11-25*
|
|
484
651
|
|
|
485
652
|
**Main changes:**
|
|
486
653
|
|
|
@@ -489,21 +656,29 @@
|
|
|
489
656
|
|
|
490
657
|
**Other changes:**
|
|
491
658
|
|
|
492
|
-
- Moved Koffi to a new repository: https://
|
|
659
|
+
- Moved Koffi to a new repository: https://codeberg.org/Koromix/rygel/
|
|
493
660
|
|
|
494
|
-
#### Koffi 2.1.3
|
|
661
|
+
#### Koffi 2.1.3
|
|
662
|
+
|
|
663
|
+
*Released on 2022-10-31*
|
|
495
664
|
|
|
496
665
|
- Support up to 16 output parameters (instead of 8)
|
|
497
666
|
|
|
498
|
-
#### Koffi 2.1.2
|
|
667
|
+
#### Koffi 2.1.2
|
|
668
|
+
|
|
669
|
+
*Released on 2022-10-31*
|
|
499
670
|
|
|
500
671
|
- Support up to 8 output parameters (instead of 4)
|
|
501
672
|
|
|
502
|
-
#### Koffi 2.1.1
|
|
673
|
+
#### Koffi 2.1.1
|
|
674
|
+
|
|
675
|
+
*Released on 2022-08-16*
|
|
503
676
|
|
|
504
677
|
- Fix potential memory allocation bugs
|
|
505
678
|
|
|
506
|
-
#### Koffi 2.1.0
|
|
679
|
+
#### Koffi 2.1.0
|
|
680
|
+
|
|
681
|
+
*Released on 2022-08-13*
|
|
507
682
|
|
|
508
683
|
**Main changes:**
|
|
509
684
|
|
|
@@ -523,11 +698,15 @@
|
|
|
523
698
|
|
|
524
699
|
### Koffi 2.0
|
|
525
700
|
|
|
526
|
-
#### Koffi 2.0.1
|
|
701
|
+
#### Koffi 2.0.1
|
|
702
|
+
|
|
703
|
+
*Released on 2022-07-30*
|
|
527
704
|
|
|
528
705
|
- Return `undefined` (instead of null) for `void` functions
|
|
529
706
|
|
|
530
|
-
#### Koffi 2.0.0
|
|
707
|
+
#### Koffi 2.0.0
|
|
708
|
+
|
|
709
|
+
*Released on 2022-07-29*
|
|
531
710
|
|
|
532
711
|
**Major new features:**
|
|
533
712
|
|
|
@@ -555,15 +734,21 @@ Consult the [migration guide](migration) for more information.
|
|
|
555
734
|
|
|
556
735
|
### Koffi 1.3
|
|
557
736
|
|
|
558
|
-
#### Koffi 1.3.12
|
|
737
|
+
#### Koffi 1.3.12
|
|
738
|
+
|
|
739
|
+
*Released on 2022-07-27*
|
|
559
740
|
|
|
560
741
|
- Fix support for Yarn package manager
|
|
561
742
|
|
|
562
|
-
#### Koffi 1.3.11
|
|
743
|
+
#### Koffi 1.3.11
|
|
744
|
+
|
|
745
|
+
*Released on 2022-07-26*
|
|
563
746
|
|
|
564
747
|
- Fix broken parsing of `void *` when used for first parameter
|
|
565
748
|
|
|
566
|
-
#### Koffi 1.3.10
|
|
749
|
+
#### Koffi 1.3.10
|
|
750
|
+
|
|
751
|
+
*Released on 2022-07-25*
|
|
567
752
|
|
|
568
753
|
**Main fixes:**
|
|
569
754
|
|
|
@@ -575,11 +760,15 @@ Consult the [migration guide](migration) for more information.
|
|
|
575
760
|
|
|
576
761
|
- Various documentation fixes and improvements
|
|
577
762
|
|
|
578
|
-
#### Koffi 1.3.9
|
|
763
|
+
#### Koffi 1.3.9
|
|
764
|
+
|
|
765
|
+
*Released on 2022-07-15*
|
|
579
766
|
|
|
580
767
|
- Fix prebuild compatibility with Electron on Windows x64
|
|
581
768
|
|
|
582
|
-
#### Koffi 1.3.8
|
|
769
|
+
#### Koffi 1.3.8
|
|
770
|
+
|
|
771
|
+
*Released on 2022-07-12*
|
|
583
772
|
|
|
584
773
|
**Main changes:**
|
|
585
774
|
|
|
@@ -590,7 +779,9 @@ Consult the [migration guide](migration) for more information.
|
|
|
590
779
|
|
|
591
780
|
- Fix and harmonize a few error messages
|
|
592
781
|
|
|
593
|
-
#### Koffi 1.3.7
|
|
782
|
+
#### Koffi 1.3.7
|
|
783
|
+
|
|
784
|
+
*Released on 2022-07-07*
|
|
594
785
|
|
|
595
786
|
**Main fixes:**
|
|
596
787
|
|
|
@@ -603,7 +794,9 @@ Consult the [migration guide](migration) for more information.
|
|
|
603
794
|
- Add str/str16 type aliases for string/string16
|
|
604
795
|
- Various documentation fixes and improvements
|
|
605
796
|
|
|
606
|
-
#### Koffi 1.3.6
|
|
797
|
+
#### Koffi 1.3.6
|
|
798
|
+
|
|
799
|
+
*Released on 2022-07-01*
|
|
607
800
|
|
|
608
801
|
**Main fixes:**
|
|
609
802
|
|
|
@@ -615,7 +808,9 @@ Consult the [migration guide](migration) for more information.
|
|
|
615
808
|
- Prebuild with Clang for Windows x64 and Linux x64 binaries
|
|
616
809
|
- Various documentation improvements
|
|
617
810
|
|
|
618
|
-
#### Koffi 1.3.5
|
|
811
|
+
#### Koffi 1.3.5
|
|
812
|
+
|
|
813
|
+
*Released on 2022-06-25*
|
|
619
814
|
|
|
620
815
|
**Main changes:**
|
|
621
816
|
|
|
@@ -627,11 +822,15 @@ Consult the [migration guide](migration) for more information.
|
|
|
627
822
|
- Reduce default async memory stack and heap size
|
|
628
823
|
- Various documentation improvements
|
|
629
824
|
|
|
630
|
-
#### Koffi 1.3.4
|
|
825
|
+
#### Koffi 1.3.4
|
|
826
|
+
|
|
827
|
+
*Released on 2022-06-24*
|
|
631
828
|
|
|
632
829
|
- Fix possible OpenBSD i386 crash with `(void)` functions
|
|
633
830
|
|
|
634
|
-
#### Koffi 1.3.3
|
|
831
|
+
#### Koffi 1.3.3
|
|
832
|
+
|
|
833
|
+
*Released on 2022-06-24*
|
|
635
834
|
|
|
636
835
|
**Main fixes:**
|
|
637
836
|
|
|
@@ -643,16 +842,22 @@ Consult the [migration guide](migration) for more information.
|
|
|
643
842
|
- Disable unsafe compiler optimizations
|
|
644
843
|
- Various documentation improvements
|
|
645
844
|
|
|
646
|
-
#### Koffi 1.3.2
|
|
845
|
+
#### Koffi 1.3.2
|
|
846
|
+
|
|
847
|
+
*Released on 2022-06-23*
|
|
647
848
|
|
|
648
849
|
- Support compilation in C++14 mode (graceful degradation)
|
|
649
850
|
- Support older toolchains on Linux (tested on Debian 9)
|
|
650
851
|
|
|
651
|
-
#### Koffi 1.3.1
|
|
852
|
+
#### Koffi 1.3.1
|
|
853
|
+
|
|
854
|
+
*Released on 2022-06-22*
|
|
652
855
|
|
|
653
856
|
- The prebuilt binary is tested when Koffi is installed, and a rebuild happens if it fails to load
|
|
654
857
|
|
|
655
|
-
#### Koffi 1.3.0
|
|
858
|
+
#### Koffi 1.3.0
|
|
859
|
+
|
|
860
|
+
*Released on 2022-06-22*
|
|
656
861
|
|
|
657
862
|
**Major changes:**
|
|
658
863
|
|
|
@@ -670,15 +875,21 @@ Consult the [migration guide](migration) for more information.
|
|
|
670
875
|
|
|
671
876
|
### Koffi 1.2
|
|
672
877
|
|
|
673
|
-
#### Koffi 1.2.4
|
|
878
|
+
#### Koffi 1.2.4
|
|
879
|
+
|
|
880
|
+
*Released on 2022-06-12*
|
|
674
881
|
|
|
675
882
|
- Windows ARM64 is now supported
|
|
676
883
|
|
|
677
|
-
#### Koffi 1.2.3
|
|
884
|
+
#### Koffi 1.2.3
|
|
885
|
+
|
|
886
|
+
*Released on 2022-06-11*
|
|
678
887
|
|
|
679
888
|
- A prebuilt binary for macOS ARM64 (M1) is now included
|
|
680
889
|
|
|
681
|
-
#### Koffi 1.2.1
|
|
890
|
+
#### Koffi 1.2.1
|
|
891
|
+
|
|
892
|
+
*Released on 2022-06-11*
|
|
682
893
|
|
|
683
894
|
This entry documents changes since version 1.1.0.
|
|
684
895
|
|