# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Additionally we have an `Internal` section for changes that are of interest to developers. ## [0.13.2] - 2022-09-20 **Note:** This is going to be the last release with the legacy `wasmi` engine. Future releases are going to use the new Wasm execution engines that are currently in development. We may consider to publish the legacy `wasmi` engine as `wasmi-legacy` crate. ### Fixed - Support allocating 4GB of memory (https://github.com/paritytech/wasmi/pull/452) ## [0.13.1] - 2022-09-20 **Note:** Yanked because of missing `wasmi_core` bump. ## [0.13.0] - 2022-07-25 **Note:** This is going to be the last release with the legacy `wasmi` engine. Future releases are going to use the new Wasm execution engines that are currently in development. We may consider to publish the legacy `wasmi` engine as `wasmi-legacy` crate. ### Changed - Update dependency: `wasmi-validation v0.4.2 -> v0.5.0` ## [0.12.0] - 2022-07-24 ### Changed - `wasmi` now depends on the [`wasmi_core`](https://crates.io/crates/wasmi_core) crate. - Deprecated `RuntimeValue::decode_{f32,f64}` methods. - **Reason**: These methods expose details about the `F32` and `F64` types. The `RuntimeValue` type provides `from_bits` methods for similar purposes. - **Replacement:** Replace those deprecated methods with `F{32,64}::from_bits().into()` respectively. - Refactor traps in `wasmi`: [PR](https://github.com/paritytech/wasmi/commit/cd59462bc946a52a7e3e4db491ac6675e3a2f53f) - This change also renames `TrapKind` to `TrapCode`. - The `wasmi` crate now properly reuses the `TrapCode` definitions from the `wasmi_core` crate. - Updated dependency: - `parity-wasm v0.42 -> v0.45` - `memory_units v0.3.0 -> v0.4.0` ### Internal - Rename `RuntimeValue` to `Value` internally. - Now uses `wat` crate dependency instead of `wabt` for reading `.wat` files in tests. - Updated dev-dependencies: - `assert_matches: v1.1 -> v1.5` - `rand 0.4.2 -> 0.8.2` - Fix some `clippy` warnings. ## [0.11.0] - 2022-01-06 ### Fixed - Make `wasmi` traps more conformant with the Wasm specification. (https://github.com/paritytech/wasmi/pull/300) - Fixed a bug in `{f32, f64}_copysign` implementations. (https://github.com/paritytech/wasmi/pull/293) - Fixed a bug in `{f32, f64}_{min, max}` implementations. (https://github.com/paritytech/wasmi/pull/295) ### Changed - Optimized Wasm to host calls. (https://github.com/paritytech/wasmi/pull/291) - In some artificial benchmarks we saw improvements of up to 42%! - Introduce a more efficient `LittleEndianConvert` trait. (https://github.com/paritytech/wasmi/pull/290) ### Internal - Refactor and clean up benchmarking code and added more benchmarks. - https://github.com/paritytech/wasmi/pull/299 - https://github.com/paritytech/wasmi/pull/298 - Apply some clippy suggestions with respect ot `#[must_use]`. (https://github.com/paritytech/wasmi/pull/288) - Improve Rust code formatting of imports. - Improve debug impl of `ValueStack` so that only the live parts are printed. ## [0.10.0] - 2021-12-14 ### Added - Support for virtual memory usage on Windows 64-bit platforms. - Technically we now support the same set of platforms as the `region` crate does: https://github.com/darfink/region-rs#platforms ### Changed - The `wasmi` and `wasmi-validation` crates now both use Rust edition 2021. - The `README` now better teaches how to test and benchmark the crate. - Updated `num-rational` from version `0.2.2` -> `0.4.0`. ### Deprecated - Deprecated `MemoryInstance::get` method. - Users are recommended to use `MemoryInstance::get_value` or `MemoryInstance::get_into` methods instead. ### Removed - Removed support for virtual memory on 32-bit platforms. - Note that the existing support was supposedly not more efficient than the `Vec` based fallback implementation anyways due to technical design. - Removed the `core` crate feature that previously has been required for `no_std` builds. - Now users only have to specify `--no-default-features` for a `no_std` build. ### Internal - Fully deploy GitHub Actions CI and remove deprecated Travis based CI. Added CI jobs for: - Testing on Linux, MacOS and Windows - Checking docs and dead links in docs. - Audit crate dependencies for vulnerabilities. - Check Wasm builds. - File test coverage reports to codecov.io. ## [0.9.1] - 2021-09-23 ### Changed - Added possibility to forward `reduced_stack_buffers` crate feature to `parity-wasm` crate. ### Internal - Added a default `rustfmt.toml` configuration file. - Fixed some warnings associated to Rust edition 2021. - Note: The crate itself remains in Rust edition 2018. ## [0.9.0] - 2021-05-27 ### Changed - Updated `parity-wasm` from verion `0.41` to `0.42`. - Bumped `wasmi-validation` from version `0.3.1` to `0.4.0`.