fizzy
fizzy copied to clipboard
Fizzy aims to be a fast, deterministic, and pedantic WebAssembly interpreter written in C++.
`fizzy-bench` aka `test/bench/bench.cpp` currently requires all the inputs and outputs to be integers. Extend this to support floating point. This also needs changes in `test/utils/wasm_engine.hpp` and its implementations. This part...
# Detailed calls optimization plan ## Current status In Fizzy 0.5, the internal calls work like this: 1. The `call` instruction implementation needs to know the number or arguments in...
Currently Fizzy is strictly little-endian only and considering our main target markets that seems to be appropriate. However for completeness (and supporting many MIPS devices) it may make sense considering...
For `fizzy-bench-internal` create a generator that generates wasm code focusing on a selected instruction. For binary instructions it may use accumulation procedure. Fixed size array is provided as imported memory....
@chfast suggested we use sphinx/readthedocs, but we may as well just use markdown in the `docs` directory. Here's an idea on general layout: - Introduction (what is fizzy, why, etc.)...
# Unsafe API The "unsafe" API does not pass any type information (including arity) around. One of the sides needs to trust the other side provided correct data, otherwise 🗑️...
## Levels of parsing / decoding / validation 0. "Unsafe" parser. It assumes the wasm module must be valid and happily reads it without checkout out-of-buffer access. Providing invalid module...
See https://github.com/wasmx/fizzy/pull/484#discussion_r471609731
This would mean to return the canonical NaN (which is subset of the arithmetic NaNs) in every case where the spec allows for non-canonical NaNs.
From https://github.com/wasmx/fizzy/pull/477#discussion_r469476129. This could work similar to how wast2wasm4cpp works.