WasmEdge 0.8.0
0.8.0 (2021-05-13)
Breaking changes:
- Renamed this project to
WasmEdge
(formerlyssvm
).- The tool
wasmedge
is the WebAssembly runtime (formerlyssvm
). - The tool
wasmedgec
is the WebAssembly AOT compiler (formerlyssvmc
).
- The tool
- Renamed the CMake options.
- Option
BUILD_AOT_RUNTIME
(formerlySSVM_DISABLE_AOT_RUNTIME
andOFF
by default), which isON
by default, is for enabling the compilation of the ahead-of-Time compiler.
- Option
- Turned on the
reference-types
andbulk-memory-operations
proposals by default in tools.- Users can use the
disable-bulk-memory
to disable thebulk-memory-operations
proposal inwasmedge
andwasmedgec
. - Users can use the
disable-reference-types
to disable thereference-types
proposal inwasmedge
andwasmedgec
.
- Users can use the
Features:
- Added
WasmEdge
C API and shared library.- Developers can include the
wasmedge.h
and link thelibwasmedge_c.so
for compiling and runningWASM
. - Add CMake option
BUILD_SHARED_LIB
to enable compiling the shared library (ON
by default). - The APIs about the ahead-of-time compiler will always return failed if the CMake option
BUILD_AOT_RUNTIME
is set asOFF
.
- Developers can include the
- Added
common/version.h
: define the package version fromcmake
. - Updated
Configure
.- Turned on the
reference-types
andbulk-memory-operations
proposals by default. - Supports memory page limitation for limiting the largest available pages in memory instances.
- Turned on the
- Added a function in
Log
to enable the debug logging level. - Added global options with subcommands into
PO
. - Added an API into
StoreManager
to list the registered module names. - Added an API into
TableInstance
to grow table withref.null
. - Updated
SIMD
implementation with the newest SIMD proposal. - Supported
AOT
compile cache.- Added
blake3
hash calculator to calculate hash for caching files.
- Added
- Added an API into
VM
for loadingWASM
module fromAST::Module
.
Fixed issues:
- Adjusted and fixed cmake issues.
- Used
CMAKE_CURRENT_SOURCE_DIR
in this project for supporting to be as a submodule. - Assigned a default version number (
0.0.0-unreleased
) when getting the version from git describe failed. - Fixed
boost
include variable names.
- Used
- Fixed
WASI
poll_oneoff
.- Allow
SIGINT
andSIGTERM
while waiting for the file descriptor and checkSIGTERM
afterepoll
.
- Allow
- Rearranged variables for CPU feature detection in
AOT
compiler. - Fixed
Validator
errors.- Fixed the error in
br_table
for pushing wrong types into validation stack. - Fixed the error in
global_set
for iterating illegal indices.
- Fixed the error in
- Fixed
Interpreter
errors.- Fixed the failed case that not returned the errors except
ErrCode::ExecutionFailed
when invoking the host functions. - Not to return success when the
ErrCode::Terminated
occurs.
- Fixed the failed case that not returned the errors except
- Fixed the unmapping size in the destructor of
MemoryInstance
.
Refactor:
- Merged the
CostTable
class intoStatistics
.- Simplified the API for getting and setting cost table.
- Initialized the costs for every instruction as
1
by default.
- Merged the
Proposal
andHostRegistration
configurations intoConfigure
.- Adjusted the
Proposal
order.
- Adjusted the
- Applied the copy of
Configure
inLoader
,Validator
,Interpreter
, andVM
instead of passing by reference. - Refactored the functions in the
StoreManager
.- Updated the templates of functions to register instances.
- Forwarded the parameters to reduce moving.
- Refactored and used the
std::variant
to save space inFunctionInstance
. - Applied function parameter type checking when invoking a wasm function in
Interpreter
. - Set the module instantiation as the anonymous active module in
Interpreter
. - Added the
const
quantifier inget
andload
data functions ofMemoryInstance
.
Documentations:
- Added release process document.
- Added contribution document.
- Added code of conduct document.
- Added roadmap document.
- Updated external references document for the VM API changes.
- Updated the WasmEdge ecosystem document.
- Added scripts to generate witx documents.
- Cherry-pick
wasi_ephemeral_sock
APIs fromwasi_snapshot_preview1
.
- Cherry-pick
Tools:
wasmedge
: WebAssembly runtime (formerlyssvm
)- Turned on the
bulk-memory-operations
andreference-types
proposals by default.- Users can use the
disable-bulk-memory
to disable thebulk-memory-operations
proposal. - Users can use the
disable-reference-types
to disable thereference-types
proposal.
- Users can use the
- Updated for the
vm
API changes. - Return the exit code in command mode in forced terminated occurs in
WASI
.
- Turned on the
wasmedgec
: WebAssembly AOT compiler (formerlyssvmc
)- Turned on the
bulk-memory-operations
andreference-types
proposals by default.- Users can use the
disable-bulk-memory
to disable thebulk-memory-operations
proposal when compiling. - Users can use the
disable-reference-types
to disable thereference-types
proposal when compiling.
- Users can use the
- Turned on the
Tests:
- Added AOT cache tests.
- Added memory page size limit tests.
- Updated the WASM spec tests.
- Updated WasmEdge-unittest and check out the newest test suites.
- Updated the
SIMD
test data. - For the
WasmEdge 0.8.0
, we use thewasm-dev-0.8.0
tag for the core tests and theSIMD
proposal tests.
- Updated the
- Adjusted the code architecture for core testing.
- Combined the duplicated functions into the
SpecTest
class. - Split out the
spectest
host function definitions for importing repeatedly.
- Combined the duplicated functions into the
- Updated WasmEdge-unittest and check out the newest test suites.
- Added
WasmEdge
C API tests.- Added unit tests for APIs in the
WasmEdge
shared library. - Applied WASM core tests for the
WasmEdge
shared library in both usingInterpreter
APIs andVM
APIs.
- Added unit tests for APIs in the