From 5b344ca97bb6a37642fa6189619c9ac7b01a4758 Mon Sep 17 00:00:00 2001 From: Robin Freyler Date: Mon, 4 Nov 2024 10:52:26 +0100 Subject: [PATCH] Prepare release for Wasmi `v0.39.0` (#1284) * add changelog for v0.39.0 * bump Wasmi crate versions * set release date of v0.39.0 to 2024-11-04 --- CHANGELOG.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.lock | 38 +++++++++++++++++++------------------- Cargo.toml | 20 ++++++++++---------- 3 files changed, 77 insertions(+), 29 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d73473e7df..c4873cd7c6 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.39.0`] - 2024-11-04 + +### Added + +- Add new `Linker` APIs. [#1281] + - `Linker::instance`: conveniently add exports from an instance to a linker. + - `Linker::alias_module`: alias module definitions via another name. + - `Linker::allow_shadowing`: enable to shadow previous definitions without errors. +- Add `hash-collections` and `prefer-btree-collections` crate features to the `wasmi` crate. [#1265] + - This allows for more fine grained control over Wasmi + dependencies to further decrease compile times. +- Add lowering of compare instructions and fused branch+compare instructions. [#1243] + - This improved performance for certain workloads and + reduced the total Wasmi instruction count significantly. + +### Fixed + +- Removed the `no-hash-maps` crate feature. [#1265] +- Fixed a bug in translation of fused `cmp+branch` instructions with huge offsets. + - This was fixed as a side product in [#1243]. + +### Removed + +- Removed some minor `wasmi` crate dependencies. [#1266] [#1267] + - This should improve compile times of the `wasmi` crate slightly. + +### Internal + +- Modernize fuzzer and significantly improve fuzzing test coverage. + - Reworked `differential` fuzzing entirely. [#1257] + - This also improves handling of non-deterministic behavior + between Wasm runtimes in `differential` fuzzing. + - Add `wasmi_fuzz` crate for better code organization. [#1252] + - Merged `translate` and `translate_metered` fuzzers. [#1249] +- Modernize Wasmi `.wast` directives runner. [#1279] + - Overall this significantly improved readability and maintainability + of the Wasmi `.wast` directives runner. + +[#1243]: https://github.com/wasmi-labs/wasmi/pull/1243 +[#1249]: https://github.com/wasmi-labs/wasmi/pull/1249 +[#1252]: https://github.com/wasmi-labs/wasmi/pull/1252 +[#1257]: https://github.com/wasmi-labs/wasmi/pull/1257 +[#1265]: https://github.com/wasmi-labs/wasmi/pull/1265 +[#1266]: https://github.com/wasmi-labs/wasmi/pull/1266 +[#1267]: https://github.com/wasmi-labs/wasmi/pull/1267 +[#1279]: https://github.com/wasmi-labs/wasmi/pull/1279 +[#1281]: https://github.com/wasmi-labs/wasmi/pull/1281 + ## [`0.38.0`] - 2024-10-06 ### Added diff --git a/Cargo.lock b/Cargo.lock index f0c8d54c25..6fb1577048 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -766,7 +766,7 @@ dependencies = [ "arbitrary", "libfuzzer-sys", "wasm-smith", - "wasmi 0.38.0", + "wasmi 0.39.0", "wasmi_fuzz", ] @@ -1845,7 +1845,7 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.38.0" +version = "0.39.0" dependencies = [ "anyhow", "arrayvec", @@ -1855,7 +1855,7 @@ dependencies = [ "smallvec", "spin", "wasmi_collections", - "wasmi_core 0.38.0", + "wasmi_core 0.39.0", "wasmi_ir", "wasmi_wast", "wasmparser-nostd", @@ -1870,22 +1870,22 @@ checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073" [[package]] name = "wasmi_c_api" -version = "0.38.0" +version = "0.39.0" dependencies = [ "wasmi_c_api_impl", ] [[package]] name = "wasmi_c_api_impl" -version = "0.38.0" +version = "0.39.0" dependencies = [ - "wasmi 0.38.0", + "wasmi 0.39.0", "wasmi_c_api_macros", ] [[package]] name = "wasmi_c_api_macros" -version = "0.38.0" +version = "0.39.0" dependencies = [ "proc-macro2", "quote", @@ -1893,19 +1893,19 @@ dependencies = [ [[package]] name = "wasmi_cli" -version = "0.38.0" +version = "0.39.0" dependencies = [ "anyhow", "assert_cmd", "clap", - "wasmi 0.38.0", + "wasmi 0.39.0", "wasmi_wasi", "wat", ] [[package]] name = "wasmi_collections" -version = "0.38.0" +version = "0.39.0" dependencies = [ "ahash", "hashbrown 0.14.5", @@ -1926,7 +1926,7 @@ dependencies = [ [[package]] name = "wasmi_core" -version = "0.38.0" +version = "0.39.0" dependencies = [ "downcast-rs", "libm", @@ -1935,41 +1935,41 @@ dependencies = [ [[package]] name = "wasmi_fuzz" -version = "0.38.0" +version = "0.39.0" dependencies = [ "anyhow", "arbitrary", "sha2", "wasm-smith", "wasmi 0.31.2", - "wasmi 0.38.0", + "wasmi 0.39.0", "wasmprinter 0.219.1", "wasmtime", ] [[package]] name = "wasmi_ir" -version = "0.38.0" +version = "0.39.0" dependencies = [ - "wasmi_core 0.38.0", + "wasmi_core 0.39.0", ] [[package]] name = "wasmi_wasi" -version = "0.38.0" +version = "0.39.0" dependencies = [ "wasi-common", - "wasmi 0.38.0", + "wasmi 0.39.0", "wat", "wiggle", ] [[package]] name = "wasmi_wast" -version = "0.38.0" +version = "0.39.0" dependencies = [ "anyhow", - "wasmi 0.38.0", + "wasmi 0.39.0", "wast 219.0.1", ] diff --git a/Cargo.toml b/Cargo.toml index 55bceebbcd..b52da48787 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.38.0" +version = "0.39.0" rust-version = "1.79" edition = "2021" readme = "README.md" @@ -28,15 +28,15 @@ categories = ["wasm", "no-std", "virtualization"] exclude = ["tests"] [workspace.dependencies] -wasmi = { version = "0.38.0", path = "crates/wasmi", default-features = false } -wasmi_wasi = { version = "0.38.0", path = "crates/wasi", default-features = false } -wasmi_core = { version = "0.38.0", path = "crates/core", default-features = false } -wasmi_ir = { version = "0.38.0", path = "crates/ir", default-features = false } -wasmi_collections = { version = "0.38.0", path = "crates/collections", default-features = false } -wasmi_c_api_impl = { version = "0.38.0", path = "crates/c_api" } -wasmi_c_api_macros = { version = "0.38.0", path = "crates/c_api/macro" } -wasmi_fuzz = { version = "0.38.0", path = "crates/fuzz" } -wasmi_wast = { version = "0.38.0", path = "crates/wast" } +wasmi = { version = "0.39.0", path = "crates/wasmi", default-features = false } +wasmi_wasi = { version = "0.39.0", path = "crates/wasi", default-features = false } +wasmi_core = { version = "0.39.0", path = "crates/core", default-features = false } +wasmi_ir = { version = "0.39.0", path = "crates/ir", default-features = false } +wasmi_collections = { version = "0.39.0", path = "crates/collections", default-features = false } +wasmi_c_api_impl = { version = "0.39.0", path = "crates/c_api" } +wasmi_c_api_macros = { version = "0.39.0", path = "crates/c_api/macro" } +wasmi_fuzz = { version = "0.39.0", path = "crates/fuzz" } +wasmi_wast = { version = "0.39.0", path = "crates/wast" } [profile.bench] lto = "fat"