diff --git a/CHANGELOG.md b/CHANGELOG.md index c6c2c6fd32..7954470bd3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,25 @@ 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.30.0`] - 2023-05-28 + +### Changed + +- Optimized `wasmi` bytecode memory consumption. (https://github.com/paritytech/wasmi/pull/718) + - This reduced the memory consumption of `wasmi` bytecode by organizing the instructions + into so-called instruction words, effectively reducing the amount of bytes required per + `wasmi` instruction 16 bytes to 8 bytes. + There was an experiment with 4 bytes but experiments confirmed that 8 bytes per instruction + word was the sweetspot for `wasmi` execution and translation performance. + - This did not affect execution performance too much but we saw performance improvements + for translation from Wasm to `wasmi` bytecode by roughly 15-20%. +- Optimized `call` and `return_call` for Wasm module internal calls. (https://github.com/paritytech/wasmi/pull/724) + - `wasmi` bytecode now differentiates between calls to Wasm module internal functions + and imported functions which allows the `wasmi` bytecode executor to perform the common + internal calls more efficiently. + - This led to an execution performance improvement across the board but especially for + call intense workloads of up to 30% in some test cases. + ## [`0.29.0`] - 2023-03-20 ### Added diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index 7ac095e08c..5a5160b21d 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wasmi_cli" -version = "0.29.0" +version = "0.30.0" documentation = "https://docs.rs/wasmi/" description = "WebAssembly interpreter" authors.workspace = true @@ -14,8 +14,8 @@ categories.workspace = true [dependencies] anyhow = "1" clap = { version = "4", features = ["derive"] } -wasmi = { version = "0.29.0", path = "../wasmi" } -wasmi_wasi = { version = "0.29.0", path = "../wasi" } +wasmi = { version = "0.30.0", path = "../wasmi" } +wasmi_wasi = { version = "0.30.0", path = "../wasi" } wat = "1" [dev-dependencies] diff --git a/crates/wasi/Cargo.toml b/crates/wasi/Cargo.toml index 4f376b5e8d..bb84f8f308 100644 --- a/crates/wasi/Cargo.toml +++ b/crates/wasi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wasmi_wasi" -version = "0.29.0" +version = "0.30.0" documentation = "https://docs.rs/wasmi_wasi" description = "WASI library support for the wasmi interpreter" authors.workspace = true @@ -15,7 +15,7 @@ categories.workspace = true wasi-common = "2.0" wasi-cap-std-sync = "2.0" wiggle = { version = "2.0", default-features = false, features = ["wiggle_metadata"] } -wasmi = { version = "0.29.0", path = "../wasmi" } +wasmi = { version = "0.30.0", path = "../wasmi" } [dev-dependencies] wat = "1.0.50" diff --git a/crates/wasmi/Cargo.toml b/crates/wasmi/Cargo.toml index f6ceb9d583..16854bea54 100644 --- a/crates/wasmi/Cargo.toml +++ b/crates/wasmi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wasmi" -version = "0.29.0" +version = "0.30.0" documentation = "https://docs.rs/wasmi/" description = "WebAssembly interpreter" exclude = ["tests/*", "benches/*"]