All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Support for the custom memory page sizes proposal (#22 by @danielstuart14)
- Breaking:: New backwards-incompatible version of the twasm format (upgraded
rkyv
to 0.8.0) - Increased MSRV to 1.81.0
- Fixed archive no_std support which was broken in the previous release, and added more tests to ensure it stays working
All Commits: https://github.com/explodingcamera/tinywasm/compare/v0.7.0...v0.8.0
- Full support for Multi-Memory proposal
- Improved support for WebAssembly 2.0 features
- Extern tables now correctly update their type after growing
- Increased MSRV to 1.80.0
- Simplify and optimize the interpreter loop
- Use a seperate stack and locals for 32, 64 and 128 bit values and references (#21)
- Updated to latest
wasmparser
version - Removed benchmarks comparing TinyWasm to other WebAssembly runtimes to reduce build dependencies
- Memory and Data Instances are no longer reference counted
All Commits: https://github.com/explodingcamera/tinywasm/compare/v0.6.0...v0.7.0
- Remove all unsafe code
- Refactor interpreter loop
- Optimize Call-frames
- Remove unnecessary reference counter data from store
All Commits: https://github.com/explodingcamera/tinywasm/compare/v0.6.0...v0.6.1
- Switched back to the original
wasmparser
crate, which recently added support forno_std
- Performance improvements
- Updated dependencies
All Commits: https://github.com/explodingcamera/tinywasm/compare/v0.5.0...v0.6.0
Imports
andModule
are now cloneable (#9)
- Improved documentation and added more tests
- Tests can now be run on more targets (#11)
- Nightly version has been updated to fix broken builds in some cases (#12)
- Add
aarch64-apple-darwin
andarmv7-unknown-linux-gnueabihf
targets to CI (#12)
- Removed the
EndFunc
instruction, as it was already covered by theReturn
instruction
This also fixes a weird bug that only occurred on certain nightly versions of Rust
All Commits: https://github.com/explodingcamera/tinywasm/compare/v0.4.0...v0.5.0
- Added this
CHANGELOG.md
file to the project - Added merged instructions for improved performance and reduced bytecode size
- Now using a custom
wasmparser
fork - Switched to a visitor pattern for parsing WebAssembly modules
- Reduced the overhead of control flow instructions
- Reduced the size of bytecode instructions
- Fixed issues on the latest nightly Rust compiler
- Simplified a lot of the internal macros
- Removed duplicate internal code
All Commits: https://github.com/explodingcamera/tinywasm/compare/v0.3.0...v0.4.0
- Added benchmarks for comparison with other WebAssembly runtimes
- Added support for pre-processing WebAssembly modules into tinywasm bytecode
- Improved examples and documentation
- Implemented the bulk memory operations proposal
- Overall performance improvements
All Commits: https://github.com/explodingcamera/tinywasm/compare/v0.2.0...v0.3.0
- Better trap handling
- Implement linker
- Element instantiation
- Table Operations
- FuncRefs
- Typesafe host functions
- Host function context
- Spec compliance improvements
- Wasm 2.0 testsuite
- Usage examples
- End-to-end tests
- Lots of bug fixes
- Full
no_std
support
All Commits: https://github.com/explodingcamera/tinywasm/compare/v0.1.0...v0.2.0
- Support for
br_table
- Memory trapping improvements
- Implicit function label scopes
- else Instructions
- All Memory instructions
- Imports
- Basic linking
- Globals
- Fix function addr resolution
- Reference Instructions