Skip to content

v0.39.0 - 2024-11-04

Compare
Choose a tag to compare
@Robbepop Robbepop released this 04 Nov 10:19
· 17 commits to main since this release
v0.39.0
b604811

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.