Releases: wasmi-labs/wasmi
Releases · wasmi-labs/wasmi
v0.36.2 - 2024-09-28
Fixed
- Fix miri reported UB in FuncRef and ExternRef conversions. #1201
- Fix bug in
table.init
from importedglobal.get
values. #1192
Changed
- Changed some
inline
annotations in the Wasmi executor. #commit-b4e78d- This change had minor positive effects on the performance of commonly executed Wasmi instructions.
v0.36.1 - 2024-09-20
v0.36.0 - 2024-07-24
Added
- Added support for the official Wasm C-API. (#1009)
- This allows to use Wasmi from any program that can interface with C code.
- The
wasmi_c_api_impl
crate allows to use Wasmi via the Wasm C-API from Rust code. - Visit the Wasmi C-API readme to learn more.
- Added
Instance::new
API. (#1134)- This was mainly needed to support the Wasm C-API.
- The new API offers a more low-level way for Wasm module instantiation
that may be more efficient for certain use cases.
- Added
Clone
implementation forModule
. (#1130)- This was mainly needed to support the Wasm C-API.
Changed
- The store fuel API now returns
Error
instead ofFuelError
. (#1131)- This was needed to support the Wasm C-API.
- The
FuelError
is still accessible via theError::kind
method.
v0.35.0 - 2024-07-11
Fixed
- Fixed a dead-lock that prevented users from compiling Wasm modules in host functions
called from Wasmi's executor. (#1122)- This was a very long-standing bug in the Wasmi interpreter and it is now finally closed.
- Note that this regressed performance of call-intense workloads by roughly 5-10%.
Future work is under way to hopefully fix these regressions. - Before this fix, users had to use a work-around using resumable function calls to
cirumvent this issue which is no longer necessary, fortunately.
Internals
- Add
CodeMap::alloc_funcs
API and use it when compiling Wasm modules. (#1125)- This significantly improved performance for (lazily) compiling
Wasm modules (e.g. viaModule::new
) by up to 23%.
- This significantly improved performance for (lazily) compiling
v0.34.0 - 2024-07-08
Added
- Allows Wasmi CLI to be installed with locked dependencies. (#1096)
- This can be done as follows:
cargo install --locked wasmi_cli
- This can be done as follows:
Fixed
- Allow Wasm module instantiation in host functions called from Wasmi's executor. (#1116)
Changed
- Limit number of parameter and result types in
FuncType
to 1000, each. (#1116)
Dev. Note
v0.33.1 - 2024-07-01
v0.33.0 - 2024-06-24
Added
- Added support for Wasm custom sections processing. (#1085)
- It is now possible to query name and data of Wasm custom sections of a
Module
. - Use the new
Config::ignore_custom_sections
flag to disable this functionality.
- It is now possible to query name and data of Wasm custom sections of a
- Added
Config::ignore_custom_sections
flag to disable processing custom sections if this is unwanted. (#1085) - Add
Memory::{data_ptr, data_size, size}
methods. (#1082) - Added a Wasmi usage guide documentation. (#1072)
Changed
- Optimized the Wasmi executor in various ways.
- In summary the Wasmi executor now more optimally caches the currently used
Wasm instance and optimizes access to instance related data.
In particular access to the default linear memory bytes as well as the global
variable at index 0 (often used as shadow stack pointer) are more efficient. - The following PRs are part of this effort:
- In summary the Wasmi executor now more optimally caches the currently used
- Changed
Memory::grow
signature to mirror Wasmtime'sMemory::grow
method. (#1082)
Removed
- Removed
Memory::current_pages
method. (#1082)- Users should use the new
Memory::size
method instead.
- Users should use the new
v0.32.3 - 2024-06-06
v0.32.2 - 2024-06-03
Fixed
- Refine and generalize the fix for v0.32.1. (#1054)