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