Skip to content

Commit

Permalink
Prepare Wasmi release v0.32.0-beta.16 (#1037)
Browse files Browse the repository at this point in the history
* bump Wasmi crate versions

* update CHANGELOG.md

* fix minor spelling issues
  • Loading branch information
Robbepop committed May 13, 2024
1 parent 0288016 commit e4aba8a
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 10 deletions.
23 changes: 18 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ 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.32.0-beta.15`] - 2024-05-11
## [`0.32.0-beta.16`] - 2024-05-13

**Note:**

Expand Down Expand Up @@ -52,7 +52,13 @@ Dates in this file are formattes as `YYYY-MM-DD`.
```
- When `CompilationMode::Lazy` or `CompilationMode::LazyTranslation` and fuel metering is enabled
the first function access that triggers compilation (and validation) will charge fuel respective
to the number of bytes of the Wasm function body. (https://github.com/wasmi-labs/wasmi/pull/876)
to the number of bytes of the Wasm function body. (https://github.com/wasmi-labs/wasmi/pull/876)
- Added non-streaming Wasm module compilation. (https://github.com/wasmi-labs/wasmi/pull/1035)
- So far Wasmi only offered a streaming Wasm module compilation API, however most users
probably never really needed that. So starting from this version both `Module::new` and
`Module::new_unchecked` are now non-streaming with insane performance improvements of up
to 80% in certain configurations.
- For streaming Wasm module users we added `Module::new_streaming` and `Module::new_streaming_unchecked` APIs.
- Added `Module::validate` API. (https://github.com/wasmi-labs/wasmi/pull/840)
- This allows to quickly check if a Wasm binary is valid according to a Wasmi `Engine` config.
- Note that this does not translate the Wasm and thus `Module::new` or `Module::new_unchecked`
Expand Down Expand Up @@ -85,25 +91,32 @@ Dates in this file are formattes as `YYYY-MM-DD`.
random sources and thus are incapable to spawn hash maps that are resilient to malicious actors.
- Note that Wasmi has always avoided using hash map based data structures prior to this change so
not enabling this new crate feature kind of acts as an optimization.
- Added `Default` implementation for `Store<T> where T: Default`. (https://github.com/wasmi-labs/wasmi/pull/1031)
- This mostly serves as a convenient way to create a minimal Wasmi setup.
- Added `WasmTy` implementations for `f32` and `f64` Rust primitives. (https://github.com/wasmi-labs/wasmi/pull/1031)
- This is convenience for `Linker::func_wrap` calls that take those primitives as arguments.
Before this change users had to use `F32` and `F64` instead which is a bit cumbersome.

### Changed

- Minimum Rust version set to 1.77. (https://github.com/wasmi-labs/wasmi/pull/961)
- CLI: Enabled Wasm `tail-calls` and `extend-const` proposals by default. (https://github.com/wasmi-labs/wasmi/pull/849)
- We expect those Wasm proposals to be stabilized very soon so we feel safe to enable them by default already.
- Improve `Debug` and `Display` impls for NaNs of Wasm `f32` and `f64` values.
- Improved `Debug` and `Display` impls for NaNs of Wasm `f32` and `f64` values.
- They now show `nan:0x{bytes}` where `{bytes}` is their respective raw bytes.
- Implement `Sync` for `ResumableInvocation` and `TypedResumableInvocation`. (https://github.com/wasmi-labs/wasmi/pull/870)
- Properly mirror Wasmtime's fuel API. (https://github.com/wasmi-labs/wasmi/pull/1002)
- Renamed some Wasmi items to improve its Wasmtime mirroring. (https://github.com/wasmi-labs/wasmi/pull/1011)
- Improve Wasmtime API mirror for Store fuel. (https://github.com/wasmi-labs/wasmi/pull/1002)
- Improved Wasmtime API mirror for Store fuel. (https://github.com/wasmi-labs/wasmi/pull/1002)
- Enabled `Config::tail_call` and `Config::extended_const` by default. (https://github.com/wasmi-labs/wasmi/pull/1031)
- Those Wasm proposals have been moved to phase 4 for many months now.

### Removed

- Removed the stack-machine bytecode based Wasmi `Engine` backend. (https://github.com/wasmi-labs/wasmi/pull/818)
- The new register-machine bytecode based Wasmi `Engine` is more promising
and the Wasmi team does not want to maintain two different engine backends.
- Remove `FuelConsumptionMode` from `Config`. (https://github.com/wasmi-labs/wasmi/pull/877)
- Removed `FuelConsumptionMode` from `Config`. (https://github.com/wasmi-labs/wasmi/pull/877)
- `FuelConsumptionMode` was required to differentiate between lazy and eager fuel consumption.
This was necessary due to how lazy fuel consumption was implemented in that it would pre-charge
for instruction execution were the exact amount of required fuel was not possible to determine
Expand Down
10 changes: 5 additions & 5 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ resolver = "2"
[workspace.package]
authors = ["Robin Freyler <robin.freyler@gmail.com>"]
repository = "https://github.com/wasmi-labs/wasmi"
version = "0.32.0-beta.15"
version = "0.32.0-beta.16"
rust-version = "1.77"
edition = "2021"
readme = "README.md"
Expand All @@ -23,10 +23,10 @@ categories = ["wasm", "no-std", "virtualization"]
exclude = ["tests"]

[workspace.dependencies]
wasmi = { version = "0.32.0-beta.15", path = "crates/wasmi", default-features = false }
wasmi_wasi = { version = "0.32.0-beta.15", path = "crates/wasi", default-features = false }
wasmi_core = { version = "0.32.0-beta.15", path = "crates/core", default-features = false }
wasmi_collections = { version = "0.32.0-beta.15", path = "crates/collections", default-features = false }
wasmi = { version = "0.32.0-beta.16", path = "crates/wasmi", default-features = false }
wasmi_wasi = { version = "0.32.0-beta.16", path = "crates/wasi", default-features = false }
wasmi_core = { version = "0.32.0-beta.16", path = "crates/core", default-features = false }
wasmi_collections = { version = "0.32.0-beta.16", path = "crates/collections", default-features = false }
num-traits = { version = "0.2.8", default-features = false }

[profile.bench]
Expand Down

0 comments on commit e4aba8a

Please sign in to comment.