You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 9893a51
Browse filesBrowse the repository at this point in the historyBrowse files
feat: add reusable host imports and simplify function calls
- make host definitions reusable across stores with gc-aware import linking
- reorganize function calls, resumable execution, and typed value handling
- expand typed tuples to arity 20 and update parser and store APIs
Signed-off-by: Henry <mail@henrygressmann.de>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+8-1Lines changed: 8 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,6 +17,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
17
17
18
18
### Changed
19
19
20
+
-`HostFunction` is now a reusable definition, and module instantiation borrows `Imports` so host imports can be shared across stores.
21
+
- Host function callbacks now require `Send + Sync` so the same definition can be used safely with multiple stores.
22
+
- Typed function tuples now support up to 20 parameters or results. `WasmTupleChain` is deprecated. Use untyped functions for larger signatures.
20
23
- Module types now use one dense recursive type space, while function types are resolved through `Function::ty(&Store)`.
21
24
- Globals are stored in separate 32-bit, 64-bit, and 128-bit value lanes, avoiding tagged value conversion during guest execution.
22
25
@@ -27,7 +30,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
27
30
28
31
### Breaking Changes
29
32
30
-
- Renamed `ModuleInstanceAddr` to `ModuleInstanceId` for consistency.
33
+
-`HostFunction::from` and `HostFunction::from_untyped` no longer take a `Store` and now return reusable `HostFunction` definitions
34
+
-`ModuleInstance::instantiate` and `instantiate_no_start` now borrow `Imports`.
35
+
-`Store::id` now returns `u32` instead of `usize`.
36
+
-`Parser::new` now takes `ParserOptions`, use `Parser::default()` for default settings. `Parser::with_options` was removed.
37
+
- Renamed `ModuleInstanceAddr` to `ModuleInstanceId`.
31
38
- Removed `HostFunction::ty` and `WasmFunction::ty`. Use `Function::ty(&Store)` for runtime function types.
32
39
- Changed `TableType::element_type` and `Element::ty` from `WasmType` to `RefType`, and replaced module `table_types` with `TableDefinition { ty, init }`.
If you just want the default configuration, the top-level `parse_bytes`, `parse_file`, and `parse_stream` helpers are thin wrappers around `Parser::new()`.
30
+
If you just want the default configuration, the top-level `parse_bytes`, `parse_file`, and `parse_stream` helpers are thin wrappers around `Parser::default()`.
0 commit comments