0.6.0 (2020-06-08)
Features:
- Building System
- Add cmake option
SSVM_DISABLE_AOT_RUNTIME
to disable building ahead of time compilation mode.
- Add cmake option
- Wasm AST
- Add support of multiple partition of sections in wasm module.
- AOT
- Add SSVM-AOT tools.
Tools:
- SSVM-AOT
- Enable to compile and run separatedly.
- Enable to run compiled module and normal module with interpreter.
Refactor:
- Internal tuple span mechanism
- Apply C++20
span
features in host functions.
- Apply C++20
- Internal error handling mechanism
- Apply non-exception version of
expected
.
- Apply non-exception version of
- Refine cmake files
- Update file copying macro in
CMakeFile
to support resursively copying. - Refine include paths and dependencies in every static libraries.
- Modularize static libraries to be included as submodules easier.
- Update file copying macro in
- Interpreter
- Use function address in
Store
for invoking instead of exported function name. - Support invokation of a host function.
- Use function address in
- Host functions
- Return
Expect
instead ofErrCode
in host functions. - Return function return values in
Expect
class rather than in function parameter.
- Return
- New VM APIs
- Add routine to invoke a function of registered and named module in
Store
. - Removed old
executor
and useinterpreter
instead. - Renamed
ExpVM
toVM
and removed the old one. - Apply new
VM
to all tools.
- Add routine to invoke a function of registered and named module in
- AOT
- Integrated into new VM API and HostFunctions
- Generate minimum machine code for
nearestint
instructions.
Fixed Issues:
- Loader
- Add checking Wasm header and version when loading.
- Validation
- Fix
export section
checking to support""
function name. - Fix type transforming when function invokation and returning.
- Fix
- Runtime Data Structure
- Fix wrong table resizing when initialization in
table instance
.
- Fix wrong table resizing when initialization in
- Interpreter
- Instantiation
- Fix instantiation steps of
data
andelement sections
. - Check
memory
andtable instances
boundary according to Wasm spec. - Not to replace data in
memory
andtable instances
until all checkings were done.
- Fix instantiation steps of
- Engine
- Fix wrong arity assignment in
loop
instruction. - Fix wrong answer issue in
trunc
andclz
instructions. - Fix logic of
div
instruction in both integer and floating point inputs. - Fix wrong handling of
NaN
oprend inmin
andmax
instructions. - Add dummy frame before function invokation according to Wasm spec.
- Add memory boundary checking when loading value in
memory
instructions.
- Fix wrong arity assignment in
- Instantiation
- AOT
- Fix wrong handling of minimum oprend in
mod
instructions. - Fix wrong handling of
NaN
oprend inmin
andmax
instructions.
- Fix wrong handling of minimum oprend in
Tests:
- Remove
ssvm-evmc
tests. - (Experimental) Add unit tests for C++
span
feature.
Deprecated:
- SSVM-Proxy is removed.
- SSVM-EVMC is removed.
- SSVM-EVMC is separated from this project as an independent repository.