diff --git a/CHANGELOG.md b/CHANGELOG.md index 676e407b90..689faa1f31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,61 @@ Additionally we have an `Internal` section for changes that are of interest to d Dates in this file are formattes as `YYYY-MM-DD`. +## `0.48.0` - 2025-07-21 + +### Added + +- Added Wasm `reinterpret` operators to `wasmi_core::wasm` API. + +### Changed + +- Marked `Module::new_streaming[_unchecked]` API deprecated. [#1540] + - Reason for the deprecation: + - The streaming Wasm module creation is not a great fit for Wasmi's target usage. + - No users are known that depend on this functionality - please inform us if you do! + - Streaming Wasm module creating has a performance overhead when not needed. +- Changed `CompilationMode` default to `CompilationMode::LazyTranslation`. [#1530] + - With this default Wasm is still validated eagerly but tranlated to Wasmi IR lazily. + This gives the best of both worlds: fast startup times while avoiding partial validation. +- Update Wasmtime dependencies to v34. [#1563] + +### Fixed + +- Fixed a bug that `f{32,64}.copysign` with immediate `rhs` operands won't bump fuel. [#1539] +- Fixed incorrect optimization application for `i64.mul_wide_s`. [#1545] [#1546] +- Fixed an `integer-overflow` that could happen when reading or writing memory. [#1554] + +### Internal + +- Optimize `ControlFrame` memory footprint slightly. [#1534] +- Slightly optimize `fuse_nez` and `fuse_eqz` routines. [#1559] +- Simplified lots of `FuncTranslator` logic. E.g. [#1542] [#1550] [#1552] +- Add some new Wasmi specific `.wast` test cases. [#1561] [#1562] +- Prepare for new Wasmi translator implementation. + - [#1532] [#1537] [#1541] [#1553] [#1558] [#1560] + +[#1530]: https://github.com/wasmi-labs/wasmi/pull/1530 +[#1534]: https://github.com/wasmi-labs/wasmi/pull/1534 +[#1539]: https://github.com/wasmi-labs/wasmi/pull/1539 +[#1540]: https://github.com/wasmi-labs/wasmi/pull/1540 +[#1542]: https://github.com/wasmi-labs/wasmi/pull/1542 +[#1545]: https://github.com/wasmi-labs/wasmi/pull/1545 +[#1546]: https://github.com/wasmi-labs/wasmi/pull/1546 +[#1550]: https://github.com/wasmi-labs/wasmi/pull/1550 +[#1552]: https://github.com/wasmi-labs/wasmi/pull/1552 +[#1554]: https://github.com/wasmi-labs/wasmi/pull/1554 +[#1555]: https://github.com/wasmi-labs/wasmi/pull/1555 +[#1559]: https://github.com/wasmi-labs/wasmi/pull/1559 +[#1561]: https://github.com/wasmi-labs/wasmi/pull/1561 +[#1562]: https://github.com/wasmi-labs/wasmi/pull/1562 +[#1563]: https://github.com/wasmi-labs/wasmi/pull/1563 +[#1532]: https://github.com/wasmi-labs/wasmi/pull/1532 +[#1537]: https://github.com/wasmi-labs/wasmi/pull/1537 +[#1541]: https://github.com/wasmi-labs/wasmi/pull/1541 +[#1553]: https://github.com/wasmi-labs/wasmi/pull/1553 +[#1558]: https://github.com/wasmi-labs/wasmi/pull/1558 +[#1560]: https://github.com/wasmi-labs/wasmi/pull/1560 + ## `0.47.0` - 2025-05-30 ### Changed diff --git a/Cargo.lock b/Cargo.lock index 1cb13c575d..3e4495ac88 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -691,7 +691,7 @@ dependencies = [ "arbitrary", "libfuzzer-sys", "wasm-smith", - "wasmi 0.47.0", + "wasmi 0.48.0", "wasmi_fuzz", "wasmprinter 0.228.0", ] @@ -1699,7 +1699,7 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.47.0" +version = "0.48.0" dependencies = [ "arrayvec", "assert_matches", @@ -1708,7 +1708,7 @@ dependencies = [ "smallvec", "spin", "wasmi_collections", - "wasmi_core 0.47.0", + "wasmi_core 0.48.0", "wasmi_ir", "wasmparser 0.228.0", "wat", @@ -1722,22 +1722,22 @@ checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073" [[package]] name = "wasmi_c_api" -version = "0.47.0" +version = "0.48.0" dependencies = [ "wasmi_c_api_impl", ] [[package]] name = "wasmi_c_api_impl" -version = "0.47.0" +version = "0.48.0" dependencies = [ - "wasmi 0.47.0", + "wasmi 0.48.0", "wasmi_c_api_macros", ] [[package]] name = "wasmi_c_api_macros" -version = "0.47.0" +version = "0.48.0" dependencies = [ "proc-macro2", "quote", @@ -1745,18 +1745,18 @@ dependencies = [ [[package]] name = "wasmi_cli" -version = "0.47.0" +version = "0.48.0" dependencies = [ "anyhow", "assert_cmd", "clap", - "wasmi 0.47.0", + "wasmi 0.48.0", "wasmi_wasi", ] [[package]] name = "wasmi_collections" -version = "0.47.0" +version = "0.48.0" dependencies = [ "hashbrown", "string-interner", @@ -1776,47 +1776,47 @@ dependencies = [ [[package]] name = "wasmi_core" -version = "0.47.0" +version = "0.48.0" dependencies = [ "libm", ] [[package]] name = "wasmi_fuzz" -version = "0.47.0" +version = "0.48.0" dependencies = [ "anyhow", "arbitrary", "sha2", "wasm-smith", "wasmi 0.31.2", - "wasmi 0.47.0", + "wasmi 0.48.0", "wasmprinter 0.228.0", "wasmtime", ] [[package]] name = "wasmi_ir" -version = "0.47.0" +version = "0.48.0" dependencies = [ - "wasmi_core 0.47.0", + "wasmi_core 0.48.0", ] [[package]] name = "wasmi_wasi" -version = "0.47.0" +version = "0.48.0" dependencies = [ "wasi-common", - "wasmi 0.47.0", + "wasmi 0.48.0", "wiggle", ] [[package]] name = "wasmi_wast" -version = "0.47.0" +version = "0.48.0" dependencies = [ "anyhow", - "wasmi 0.47.0", + "wasmi 0.48.0", "wast 228.0.0", ] diff --git a/Cargo.toml b/Cargo.toml index f3c34c3646..6614f0cd7b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ resolver = "2" [workspace.package] authors = ["Robin Freyler "] repository = "https://github.com/wasmi-labs/wasmi" -version = "0.47.0" +version = "0.48.0" rust-version = "1.86" edition = "2021" readme = "README.md" @@ -30,15 +30,15 @@ exclude = ["tests"] [workspace.dependencies] # Wasmi crates -wasmi = { version = "0.47.0", path = "crates/wasmi", default-features = false } -wasmi_wasi = { version = "0.47.0", path = "crates/wasi", default-features = false } -wasmi_core = { version = "0.47.0", path = "crates/core", default-features = false } -wasmi_ir = { version = "0.47.0", path = "crates/ir", default-features = false } -wasmi_collections = { version = "0.47.0", path = "crates/collections", default-features = false } -wasmi_c_api_impl = { version = "0.47.0", path = "crates/c_api" } -wasmi_c_api_macros = { version = "0.47.0", path = "crates/c_api/macro" } -wasmi_fuzz = { version = "0.47.0", path = "crates/fuzz" } -wasmi_wast = { version = "0.47.0", path = "crates/wast" } +wasmi = { version = "0.48.0", path = "crates/wasmi", default-features = false } +wasmi_wasi = { version = "0.48.0", path = "crates/wasi", default-features = false } +wasmi_core = { version = "0.48.0", path = "crates/core", default-features = false } +wasmi_ir = { version = "0.48.0", path = "crates/ir", default-features = false } +wasmi_collections = { version = "0.48.0", path = "crates/collections", default-features = false } +wasmi_c_api_impl = { version = "0.48.0", path = "crates/c_api" } +wasmi_c_api_macros = { version = "0.48.0", path = "crates/c_api/macro" } +wasmi_fuzz = { version = "0.48.0", path = "crates/fuzz" } +wasmi_wast = { version = "0.48.0", path = "crates/wast" } # wasm-tools dependencies wat = { version = "1.228.0", default-features = false }