Skip to content

Releases: wasmi-labs/wasmi

v0.44.0 - 2023-03-29

30 Mar 09:02
v0.44.0
dedfcee
Compare
Choose a tag to compare

Added

  • Add support for the Wasm relaxed-simd proposal. #1443
    • All relaxed-simd operators behave deterministically on all platforms supported by Wasmi.
    • Users have to enable the simd crate feature in order to use relaxed-simd capabilities.
    • Note that enabling the simd crate feature may regress Wasm execution and memory consumption
      performance.

Changed

  • Wasmi's CLI now prints multiple results on a new line each. #1438
    • With this change Wasmi's CLI and Wasmtime's CLI have the same behavior.

v0.43.1 - 2025-03-29

29 Mar 16:06
v0.43.1
355c7ae
Compare
Choose a tag to compare

Fixed

  • Add missing WasmTy implementation for V128 #1437
    • This prevented using V128 parameters and results in the TypedFunc API.
    • Note that it was still possible to use V128 with the Func::call API.
  • Fixed a bug executing i8x16.replace_lane with immediate parameter. #1444

v0.43.0 - 2025-03-27

27 Mar 12:13
v0.43.0
d592fa2
Compare
Choose a tag to compare
  • Added support for the Wasm simd proposal. #1364
    • Users have to opt-in to use this feature by enabling Wasmi's simd crate feature.
    • Note: enabling simd may introduce Wasm execution overhead, increase memory consumption
      increase compiled artifact size and compile times for Wasmi crates. So use simd
      only if your use case needs it.

Changed

  • Wasmi's minimum supported Rust version is now Rust 1.83. #1405

Internal

  • Move all Wasm spec tests over to the wasmi_wast crate. #1403
    • This solves a cyclic dev-dependency issue between wasmi and wasmi_wast crates.
  • Updated wasm-tools and Wasmtime dependencies. #1404

v0.42.1 - 2025-03-20

20 Mar 08:07
v0.42.1
f628a7a
Compare
Choose a tag to compare

Fixed

  • Fixed a bug in i64.mul_wide_{s,u} instruction constant evaluation. #1397

v0.42.0 - 2025-03-11

11 Mar 20:18
v0.42.0
bec7883
Compare
Choose a tag to compare

Added

  • Added support for the Wasm wide-arithmetic proposal. #1369
    • The wide-arithmetic proposal is disabled by default in wasmi
      library and enabled by default in the Wasmi CLI.

Changed

  • Optimized memory accesses with a constant ptr value. #1381

Internal

  • Update wasm-tools dependencies from v226 to v227. #1380

v0.41.1 - 2025-03-11

11 Mar 18:33
v0.41.1
f946ccf
Compare
Choose a tag to compare

Fixed

  • Fixed a Wasmi CLI crash when using .wat formatted Wasm files. #1385
  • Fixed a crash when translating memory.grow with an i64.const delta parameter. #1384
    • Note: this can only occur when using the Wasm memory64 proposal.

v0.41.0 - 2025-03-10

10 Mar 13:37
v0.41.0
7188f7f
Compare
Choose a tag to compare

Added

  • Added support for the Wasm memory64 proposal. #1371
    • The memory64 proposal is enabled by default in wasmi and the Wasmi CLI.
  • Added support for the Wasm custom-page-sizes proposal. #1349
    • The custom-page-sizes proposal is enabled by default in wasmi and the Wasmi CLI.
  • Added support to for Wat inputs in Module::new and Module::new_unchecked. #1328
    • There deliberately is no Wat support in Module::new_streaming since Wat cannot be stream compiled.

Fixed

  • Fixed a bug that could lead to crashes when tail calling host functions. #1329
  • Fixed a bug that no_mange and export_name where used at the same time. #1337

Changed

  • Bumped Minimum Support Rust Version to v1.82. #1375
  • The memory.grow and table.grow instructions now trap instead of panic when out of system memory.
    • This change was part of the changes introduced by the support
      for the Wasm memory64 and custom-page-sizes proposals.

Internal

  • No longer use libm default features. #1322
  • Implemented several improvements to our fuzzing infrastructure:
    • Significantly improved Wasmtime translation (JIT) times. #1339
    • Improve debug output of fuzzers. #1344
    • Differential fuzzer now uses fuzz input to randomize function parameters. #1348
    • Allow fuzzing the Wasm custom-page-sizes proposal implementation. #1354
    • Allow fuzzing the Wasm memory64 proposal implementation. #1379
  • Update the Wasm spec testsuite. #1361
  • Update wasm-tools dependencies to v226. #1374
  • Update to string-interner v0.19. #1367

v0.40.0 - 2024-11-28

27 Nov 23:58
v0.40.0
f384f28
Compare
Choose a tag to compare

This release focuses on compile time improvements for Wasmi,
significantly reducing the time it takes to compile Wasmi and
decrease its compiled artifact size.

Added

  • Added optimization for load and store lowering. #1303
    • This reduces the total number of Wasmi instructions.
  • Added prefix-symbols crate feature to wasmi_c_api_impl crate. #1315
    • This allows to prefix all exported symbols with wasmi_ in order to
      avoid duplicate symbols when linking multiple Wasm runtimes implementing
      the Wasm C-API.

Fixed

  • C-API
    • Fix a minor compilation issue. #1296
    • Fix the name of wasmi_config_compilation_mode_set #1298
  • Conditionally forward the string-interner/std crate feature. #1304
  • Fix Wasmtime fuzzer oracle config usage. #1314

Changed

  • Bumped minimum supported Rust version from v1.79 -> v1.80. #1318
  • Replace the wasmparser-nostd fork with upstream wasmparser. #1141
    • This allows Wasmi to implement new Wasm proposals.
    • Unfortunately this update also regresses Wasmi translation performance
      by roughly 5-15% depending on the exact Wasm blob and translation mode.
  • Update the string-interner and hashbrown dependencies. #1305

Internal

  • Update the wast dependency for Wasmi's Wast runner. #1306
  • Update wasm-tools dependencies to v0.221. #1318

v0.39.1 - 2024-11-06

06 Nov 09:40
v0.39.1
68205d4
Compare
Choose a tag to compare

Fixed

  • Fixed a bug when translating double negations in expression contexts. #1293

v0.39.0 - 2024-11-04

04 Nov 10:19
v0.39.0
b604811
Compare
Choose a tag to compare

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.
    • Wasm coremark results improved to 1830 (v0.39) from 1701 (v0.38).

Fixed

  • Fixed a bug in translation of fused cmp+branch instructions with huge offsets.
    • This was fixed as a side product in #1243.

Removed

  • Removed the no-hash-maps crate feature. #1265
  • 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.