github WasmEdge/WasmEdge 0.8.0
WasmEdge 0.8.0

latest releases: 0.14.0-rc.5, 0.14.0-alpha.4, 0.14.0-rc.4...
3 years ago

0.8.0 (2021-05-13)

Breaking changes:

  • Renamed this project to WasmEdge (formerly ssvm).
    • The tool wasmedge is the WebAssembly runtime (formerly ssvm).
    • The tool wasmedgec is the WebAssembly AOT compiler (formerly ssvmc).
  • Renamed the CMake options.
    • Option BUILD_AOT_RUNTIME (formerly SSVM_DISABLE_AOT_RUNTIME and OFF by default), which is ON by default, is for enabling the compilation of the ahead-of-Time compiler.
  • Turned on the reference-types and bulk-memory-operations proposals by default in tools.
    • Users can use the disable-bulk-memory to disable the bulk-memory-operations proposal in wasmedge and wasmedgec.
    • Users can use the disable-reference-types to disable the reference-types proposal in wasmedge and wasmedgec.

Features:

  • Added WasmEdge C API and shared library.
    • Developers can include the wasmedge.h and link the libwasmedge_c.so for compiling and running WASM.
    • 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 as OFF.
  • Added common/version.h: define the package version from cmake.
  • Updated Configure.
    • Turned on the reference-types and bulk-memory-operations proposals by default.
    • Supports memory page limitation for limiting the largest available pages in memory instances.
  • 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 with ref.null.
  • Updated SIMD implementation with the newest SIMD proposal.
  • Supported AOT compile cache.
    • Added blake3 hash calculator to calculate hash for caching files.
  • Added an API into VM for loading WASM module from AST::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.
  • Fixed WASI poll_oneoff.
    • Allow SIGINT and SIGTERM while waiting for the file descriptor and check SIGTERM after epoll.
  • 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 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 unmapping size in the destructor of MemoryInstance.

Refactor:

  • Merged the CostTable class into Statistics.
    • Simplified the API for getting and setting cost table.
    • Initialized the costs for every instruction as 1 by default.
  • Merged the Proposal and HostRegistration configurations into Configure.
    • Adjusted the Proposal order.
  • Applied the copy of Configure in Loader, Validator, Interpreter, and VM 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 in FunctionInstance.
  • 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 in get and load data functions of MemoryInstance.

Documentations:

Tools:

  • wasmedge: WebAssembly runtime (formerly ssvm)
    • Turned on the bulk-memory-operations and reference-types proposals by default.
      • Users can use the disable-bulk-memory to disable the bulk-memory-operations proposal.
      • Users can use the disable-reference-types to disable the reference-types proposal.
    • Updated for the vm API changes.
    • Return the exit code in command mode in forced terminated occurs in WASI.
  • wasmedgec: WebAssembly AOT compiler (formerly ssvmc)
    • Turned on the bulk-memory-operations and reference-types proposals by default.
      • Users can use the disable-bulk-memory to disable the bulk-memory-operations proposal when compiling.
      • Users can use the disable-reference-types to disable the reference-types proposal when compiling.

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 the wasm-dev-0.8.0 tag for the core tests and the SIMD proposal tests.
    • 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.
  • 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 using Interpreter APIs and VM APIs.

Don't miss a new WasmEdge release

NewReleases is sending notifications on new releases.