From c69d02624132edbe8abb027471df01cc52c56f73 Mon Sep 17 00:00:00 2001 From: Robin Freyler Date: Thu, 28 Nov 2024 00:17:29 +0100 Subject: [PATCH] Prepare Wasmi v0.40.0 (#1319) * bump Wasmi crate versions * write changelog for v0.40.0 * update changelog for v0.40.0 * add note to changelog --- CHANGELOG.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.lock | 38 +++++++++++++++++++------------------- Cargo.toml | 22 +++++++++++----------- 3 files changed, 78 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 19ea833cf4..2a55403ae5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,54 @@ 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.40.0`] - 2024-11-27 + +This release focuses on compile time improvements for Wasmi, +significantly reducing the time it takes to compile Wasmi and +decrease its compiled artifact size. + +### Added + +- Added optimization for `load` and `store` lowering. [#1303] + - This reduces the total number of Wasmi instructions. +- Added `prefix-symbols` crate feature to `wasmi_c_api_impl` crate. [#1315] + - This allows to prefix all exported symbols with `wasmi_` in order to + avoid duplicate symbols when linking multiple Wasm runtimes implementing + the Wasm C-API. + +### Fixed + +- C-API + - Fix a minor compilation issue. [#1296] + - Fix the name of `wasmi_config_compilation_mode_set` [#1298] +- Conditionally forward the `string-interner/std` crate feature. [#1304] +- Fix Wasmtime fuzzer oracle config usage. [#1314] + +### Changed + +- Bumped minimum supported Rust version from v1.79 -> v1.80. [#1318] +- Replace the `wasmparser-nostd` fork with upstream `wasmparser`. [#1141] + - This allows Wasmi to implement new Wasm proposals. + - Unfortunately this update also regresses Wasmi translation performance + by roughly 5-15% depending on the exact Wasm blob and translation mode. +- Update the `string-interner` and `hashbrown` dependencies. [#1305] + +### Internal + +- Update the `wast` dependency for Wasmi's Wast runner. [#1306] +- Update `wasm-tools` dependencies to `v0.221`. [#1318] + +[#1141]: https://github.com/wasmi-labs/wasmi/pull/1141 +[#1296]: https://github.com/wasmi-labs/wasmi/pull/1296 +[#1298]: https://github.com/wasmi-labs/wasmi/pull/1298 +[#1303]: https://github.com/wasmi-labs/wasmi/pull/1303 +[#1304]: https://github.com/wasmi-labs/wasmi/pull/1304 +[#1305]: https://github.com/wasmi-labs/wasmi/pull/1305 +[#1306]: https://github.com/wasmi-labs/wasmi/pull/1306 +[#1314]: https://github.com/wasmi-labs/wasmi/pull/1314 +[#1315]: https://github.com/wasmi-labs/wasmi/pull/1315 +[#1318]: https://github.com/wasmi-labs/wasmi/pull/1318 + ## [`0.39.1`] - 2024-11-06 ### Fixed diff --git a/Cargo.lock b/Cargo.lock index 25afd38b67..196e3e7f29 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -679,7 +679,7 @@ dependencies = [ "arbitrary", "libfuzzer-sys", "wasm-smith", - "wasmi 0.39.1", + "wasmi 0.40.0", "wasmi_fuzz", ] @@ -1629,7 +1629,7 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.39.1" +version = "0.40.0" dependencies = [ "anyhow", "arrayvec", @@ -1639,7 +1639,7 @@ dependencies = [ "smallvec", "spin", "wasmi_collections", - "wasmi_core 0.39.1", + "wasmi_core 0.40.0", "wasmi_ir", "wasmi_wast", "wasmparser 0.221.0", @@ -1654,22 +1654,22 @@ checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073" [[package]] name = "wasmi_c_api" -version = "0.39.1" +version = "0.40.0" dependencies = [ "wasmi_c_api_impl", ] [[package]] name = "wasmi_c_api_impl" -version = "0.39.1" +version = "0.40.0" dependencies = [ - "wasmi 0.39.1", + "wasmi 0.40.0", "wasmi_c_api_macros", ] [[package]] name = "wasmi_c_api_macros" -version = "0.39.1" +version = "0.40.0" dependencies = [ "proc-macro2", "quote", @@ -1677,19 +1677,19 @@ dependencies = [ [[package]] name = "wasmi_cli" -version = "0.39.1" +version = "0.40.0" dependencies = [ "anyhow", "assert_cmd", "clap", - "wasmi 0.39.1", + "wasmi 0.40.0", "wasmi_wasi", "wat", ] [[package]] name = "wasmi_collections" -version = "0.39.1" +version = "0.40.0" dependencies = [ "hashbrown 0.15.2", "string-interner", @@ -1709,7 +1709,7 @@ dependencies = [ [[package]] name = "wasmi_core" -version = "0.39.1" +version = "0.40.0" dependencies = [ "downcast-rs", "libm", @@ -1718,41 +1718,41 @@ dependencies = [ [[package]] name = "wasmi_fuzz" -version = "0.39.1" +version = "0.40.0" dependencies = [ "anyhow", "arbitrary", "sha2", "wasm-smith", "wasmi 0.31.2", - "wasmi 0.39.1", + "wasmi 0.40.0", "wasmprinter 0.221.0", "wasmtime", ] [[package]] name = "wasmi_ir" -version = "0.39.1" +version = "0.40.0" dependencies = [ - "wasmi_core 0.39.1", + "wasmi_core 0.40.0", ] [[package]] name = "wasmi_wasi" -version = "0.39.1" +version = "0.40.0" dependencies = [ "wasi-common", - "wasmi 0.39.1", + "wasmi 0.40.0", "wat", "wiggle", ] [[package]] name = "wasmi_wast" -version = "0.39.1" +version = "0.40.0" dependencies = [ "anyhow", - "wasmi 0.39.1", + "wasmi 0.40.0", "wast 221.0.0", ] diff --git a/Cargo.toml b/Cargo.toml index 278f68bbee..f6f893812a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,8 +18,8 @@ resolver = "2" [workspace.package] authors = ["Robin Freyler "] repository = "https://github.com/wasmi-labs/wasmi" -version = "0.39.1" -rust-version = "1.80" +version = "0.40.0" +rust-version = "1.79" edition = "2021" readme = "README.md" license = "MIT/Apache-2.0" @@ -28,15 +28,15 @@ categories = ["wasm", "no-std", "virtualization"] exclude = ["tests"] [workspace.dependencies] -wasmi = { version = "0.39.1", path = "crates/wasmi", default-features = false } -wasmi_wasi = { version = "0.39.1", path = "crates/wasi", default-features = false } -wasmi_core = { version = "0.39.1", path = "crates/core", default-features = false } -wasmi_ir = { version = "0.39.1", path = "crates/ir", default-features = false } -wasmi_collections = { version = "0.39.1", path = "crates/collections", default-features = false } -wasmi_c_api_impl = { version = "0.39.1", path = "crates/c_api" } -wasmi_c_api_macros = { version = "0.39.1", path = "crates/c_api/macro" } -wasmi_fuzz = { version = "0.39.1", path = "crates/fuzz" } -wasmi_wast = { version = "0.39.1", path = "crates/wast" } +wasmi = { version = "0.40.0", path = "crates/wasmi", default-features = false } +wasmi_wasi = { version = "0.40.0", path = "crates/wasi", default-features = false } +wasmi_core = { version = "0.40.0", path = "crates/core", default-features = false } +wasmi_ir = { version = "0.40.0", path = "crates/ir", default-features = false } +wasmi_collections = { version = "0.40.0", path = "crates/collections", default-features = false } +wasmi_c_api_impl = { version = "0.40.0", path = "crates/c_api" } +wasmi_c_api_macros = { version = "0.40.0", path = "crates/c_api/macro" } +wasmi_fuzz = { version = "0.40.0", path = "crates/fuzz" } +wasmi_wast = { version = "0.40.0", path = "crates/wast" } [profile.bench] lto = "fat"