Skip to content

Releases: wasmi-labs/wasmi

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.

v0.36.5 - 2024-10-11

11 Oct 09:07
v0.36.5
d6ca783
Compare
Choose a tag to compare

Fixed

  • Fixed a bug with table.get translation when index is a preserved register. [#commit-b4e78d]

v0.38.0 - 2024-10-06

06 Oct 10:35
v0.38.0
35eb605
Compare
Choose a tag to compare

Added

  • Add no-hash-maps crate feature to Wasmi CLI and enable it by default. #1225

Internal

  • Rename various instructions and add ShiftAmount abstraction. #1221
  • Use Rust's ControlFlow utility. #1223
  • Use get_memory in load and store execution handlers. #1224

v0.37.2 - 2024-10-04

04 Oct 09:50
v0.37.2
d22362a
Compare
Choose a tag to compare

Added

  • Added a new extra-checks crate feature to the wasmi crate. #1217

    • This improves unreachability checks in when debug-assertions or extra-checks are enabled.
    • If extra-checks are disabled, some technically unnecessary runtime checks are no longer performed.
    • Use extra-checks if your focus is on safety, disable if your focus is on performance.

Fixed

  • Fixed a bug in local preservation when translating Wasm loop control flow. #1218

v0.36.4 - 2024-10-03

03 Oct 09:17
v0.36.4
24c1e1a
Compare
Choose a tag to compare

Fixed

  • Fixed a bug in local preservation when translating Wasm loop control flow. [#1218]

v0.37.1 - 2024-10-01

01 Oct 12:46
v0.37.1
cdb09d8
Compare
Choose a tag to compare

Fixed

  • Fixed a bug in select translation constant propagation. #1213