Release Overview
Previous releases have been incrementally refactoring the VM's code, yet the technical debt has kept increasing.
This release introduces a huge refactor of the VM's code base to eliminate much of this technical debt.
The refactor is centered around:
- add missing features of the latest WASM spec (focussed on version 2)
- improve testing (many bugs have been fixed in latch)
The release is also a major step towards Zephyr as main platform (#290).
What's Changed
π₯ Breaking Changes
Debugger::printValueuses decimal representation for all datatypes (#339)- Mocking with multiple or no arguments (#381)
π WebAssembly specification
- Fix unreachable reinterpret instruction execution (#334)
- Add import/export mutable globals (#329)
- Add sign extension instructions support (#333)
- Add multi-value support (#330)
π New Features
- Tracing checkpoint policy (#348)
- Display support on: Zephyr, ESP Rover kit v4, and Raspberry Pi Pico (#337, #373)
- Support for multiple modules (#338)
β¨ Changes
π Bug Fixes
- Fix logging causing compilation errors (#344)
- Fix overlay and conf files for
stm32andrpi_pico(#350) - Send checkpoints when stepping or pausing in trace mode (#352)
- Fix segmentation fault in debugger (#355)
- Don't use uart_irq_rx_ready return type since it is now void (#375)
π¨ Testing
- Ignore comment lines in latch test parser (#335)
- Extend spec test suite with block, branch and select tests (#336)
π§βπ» Quality of Life
- Specify PRODUCT and MANUFACTURER in prj.conf to make WARDuino microcontrollers easily identifiable over USB (#374)
- Add heap information as primitive and to debugger (#351)
β¬οΈ Upgrading dependencies
β»οΈ Refactor
- Dynamic sized primitive array (#325)
- Primitive configuration system (#324)
- Use
unordered_mapinstead of vector for primitives (#384)
π¨ Improve format/structure
- Print error info for AssemblyScript abort primitive (#266)
π Linting
- Explicitly set clang-format PointerAlignment (#353)
π· CI
- Add action that builds WARDuino for Zephyr (#360)