Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare Wasmi release v0.32.0-beta.16 #1037

Merged
merged 3 commits into from
May 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading