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 51cb7d8
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: CHANGELOG.md
+22-26Lines changed: 22 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,44 +9,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
10
10
### Added
11
11
12
-
- Support for the function-references, garbage-collection, exception-handling, and compact-imports proposals.
13
-
- Store-aware owned references, explicit GC collection, and typed host access to GC objects and exceptions.
14
-
-`WasmValue::ty`, `WasmValue::matches_type`, and `ValueLane` for inspecting value types and storage lanes.
15
-
-`ResourceLimiter` for limiting guest memory, table, and logical GC heap growth.
16
-
- A default `validate` Cargo feature that can be disabled when parsing trusted modules.
17
-
- Optional parse-time operand deduplication for smaller `.twasm` archives.
12
+
- Support for the typed function references, garbage collection, exception handling, and compact import section proposals.
13
+
-`ResourceLimiter` callbacks for memory and table allocation or growth
14
+
- A default `validate` Cargo feature & parser option to skip wasm validation
15
+
- Optional parse-time operand deduplication to reduce `.twasm` archive size
18
16
19
17
### Changed
20
18
21
-
- Typed functions support tuples up to arity 20 and `[u8; 16]` values for `v128`.
22
-
- Module types use one recursive type space, with runtime function types available through `Function::ty(&Store)`.
23
-
- Linear memory uses contiguous `Vec`-backed storage.
24
-
- The minimum supported Rust version is 1.98.
19
+
- Typed functions now support tuples up to arity 20 and `[u8; 16]` values for `v128`.
20
+
- Module types now use one recursive type space. Runtime function types are available through `Function::ty(&Store)`.
21
+
- Linear memory now uses contiguous `Vec`-backed storage.
22
+
- The minimum supported Rust version increased from 1.95 to 1.98.
23
+
- The internal instruction represetaions size was reduced from 16 to 8 bytes.
25
24
26
25
### Fixed
27
26
28
-
-Directly defined imports now reject handles from a different`Store`.
27
+
-Instantiation now rejects directly defined imports that contain handles from another`Store`.
29
28
- Tail calls to host functions now return directly to the caller frame.
30
-
-Fixed Memory64 bulk-memory operations and optimized stores using the wrong value-stack lane.
31
-
-Fixed `memory.init` bounds checks and operand lowering.
32
-
-Fixed Memory64 default limits and host-size handling, including 32-bit targets.
29
+
- Memory64 bulk-memory operations and optimized stores now use the correct value-stack lanes.
30
+
-`memory.init` now performs correct bounds checks and operand lowering.
31
+
- Memory64 now uses the correct default limits and host-size conversions, including on 32-bit targets.
33
32
34
33
### Breaking Changes
35
34
36
-
- Dynamic `Function::call` and `Function::call_resumable` calls write to caller-provided result slices. Untyped host callbacks also receive a result slice and return `Result<()>`.
37
-
-`HostFunction` definitions are reusable, require `Send + Sync`, and no longer take a `Store`.
38
-
- Module instantiation borrows `Imports`, allowing imports to be shared across stores.
35
+
-`Function::call` and `Function::call_resumable` now write to caller-provided result slices. Untyped host callbacks also receive a result slice and return `Result<()>`.
36
+
- Creating a `HostFunction` no longer requires a `Store`. Definitions require `Send + Sync` and can be reused across stores. Module instantiation now borrows `Imports` so the same imports can also be reused.
39
37
-`HostFunction::ty` and `WasmFunction::ty` were removed. Use `Function::ty(&Store)` for runtime types.
40
-
- Function and managed reference handles are Store-aware. Managed references keep their referents live, and `WasmValue` is no longer `Copy`.
41
-
- Nullable typed reference parameters and results use `Option<T>`. Bare typed references are non-null.
42
-
- Host references are created with `ExternRef::try_new` and `I31Ref::try_new`. Reference and GC object access is provided by methods on each reference type.
43
-
- Fallible `Memory`, `Table`, `Global`, and `Tag` constructors are named `try_new`.
44
-
-`Store::id` returns `u32`, and `ModuleInstanceAddr` is renamed to `ModuleInstanceId`.
45
-
- Table element types use `RefType`, and module table definitions use `TableDefinition { ty, init }`.
46
-
-`Parser::new` takes `ParserOptions`. Use `Parser::default()` for default settings. `Parser::with_options` and local-memory allocation analysis were removed.
47
-
- Pluggable memory backends and `Config::with_trap_on_oom` were removed. Linear memory is always `Vec`-backed, and allocation limits use `ResourceLimiter`.
- Function and managed reference handles are tied to their originating `Store`. Managed references keep their referents live, so `WasmValue` is no longer `Copy`. Nullable typed references use `Option<T>`, while bare typed references are non-null.
39
+
- The `Memory`, `Table`, `Global`, and `Tag` constructors were renamed from `new` to `try_new`.
40
+
-`Store::id` now returns `u32`, and `ModuleInstanceAddr` was renamed to `ModuleInstanceId`.
41
+
- Element types now use `RefType`, and module definitions use `TableDefinition { ty, init }`. `Table::grow` now returns `Result<Option<usize>>`, matching `Memory::grow`.
42
+
-`Parser::new` now takes `ParserOptions`. Use `Parser::default()` for default settings. `Parser::with_options` was removed.
43
+
- Pluggable memory backends and `Config::with_trap_on_oom` were removed for performance reasons. Linear memory is always `Vec`-backed. Use `ResourceLimiter` to allow, reject, or trap memory allocation and growth requests.
49
44
-`WasmTupleChain` was removed. Use direct tuples up to arity 20 or untyped functions for larger signatures.
45
+
- The `.twasm` format changed. Regenerate archives created by earlier TinyWasm versions.
0 commit comments