Breaking changes:
- Updated the WasmEdge shared library.
- Due to the breaking change of API, bump the
SOVERSION
to0.0.2
.
- Due to the breaking change of API, bump the
- WasmEdge C API changes.
- Removed the
WasmEdge_HostRegistration
members and the corresponding module creation APIs to standardize the plug-in module creation.- Please refer to the documentation for how to upgrade.
- Removed the
WasmEdge_HostRegistration_WasiNN
enum and theWasmEdge_ModuleInstanceCreateWasiNN()
API. - Removed the
WasmEdge_HostRegistration_WasiCrypto_Common
enum and theWasmEdge_ModuleInstanceCreateWasiCryptoCommon()
API. - Removed the
WasmEdge_HostRegistration_WasiCrypto_AsymmetricCommon
enum and theWasmEdge_ModuleInstanceCreateWasiCryptoAsymmetricCommon()
API. - Removed the
WasmEdge_HostRegistration_WasiCrypto_Kx
enum and theWasmEdge_ModuleInstanceCreateWasiCryptoKx()
API. - Removed the
WasmEdge_HostRegistration_WasiCrypto_Signatures
enum and theWasmEdge_ModuleInstanceCreateWasiCryptoSignatures()
API. - Removed the
WasmEdge_HostRegistration_WasiCrypto_Symmetric
enum and theWasmEdge_ModuleInstanceCreateWasiCryptoSymmetric()
API. - Removed the
WasmEdge_HostRegistration_WasmEdge_Process
enum and theWasmEdge_ModuleInstanceCreateWasmEdgeProcess()
API.
- Removed the
- Changed the
WasmEdge_VMCleanup()
behavior.- After calling this API, the registered modules except the WASI and plug-ins will all be cleaned.
- Standaloned the
WasmEdge-Process
plug-in.- After this version, users should use the installer to install the
WasmEdge-Process
plug-in.
- After this version, users should use the installer to install the
Features:
- Introduced the
Plugin
context and related APIs.- Added the
WasmEdge_PluginContext
struct. - Added the
WasmEdge_PluginLoadFromPath()
API for loading a plug-in from a specific path. - Added the
WasmEdge_PluginListPluginsLength()
andWasmEdge_PluginListPlugins()
APIs for getting the loaded plug-in names. - Added the
WasmEdge_PluginFind()
API for retrieving a loaded plug-in by its name. - Added the
WasmEdge_PluginGetPluginName()
API for retrieving the plug-in name. - Added the
WasmEdge_PluginListModuleLength()
andWasmEdge_PluginListModule()
APIs for listing the module names of a plug-in. - Added the
WasmEdge_PluginCreateModule()
API for creating the specific module instance in a plug-in by its name.
- Added the
- Added the
VM
APIs.- Added the
WasmEdge_VMGetRegisteredModule()
API for retrieving a registered module by its name. - Added the
WasmEdge_VMListRegisteredModuleLength()
andWasmEdge_VMListRegisteredModule()
APIs for listing the registered module names.
- Added the
- Introduced the python version WasmEdge installer.
- Updated the ABI of the
wasi_ephemeral_sock
.- Added the output port of the
sock_recv_from
. - Updated the API of
sock_getlocaladdr
. - Unified the socket address size to 128-bit.
- Added the output port of the
- Supported using
libtool
to archive the WasmEdge static library.
Fixed issues:
- Fixed WASI issues.
- Fixed the leaking information about the host STDIN, STDOUT, and STDERR after getting the
filestat
. - Fixed the lookup of symbolic link at
path_filestat_set_times
. - Fixed
open
for the wchar path issue on windows.
- Fixed the leaking information about the host STDIN, STDOUT, and STDERR after getting the
- Fixed WASI-NN issues.
- Fixed the definition of
wasi_nn::TensorType
to prevent from comparing with dirty data.
- Fixed the definition of
- Fixed WASI-Crypto issues.
- Fixed the
keypair_generate
for rsa-pss. - Fixed the
keypair_import
read pem as pkcs8.
- Fixed the
- Fixed WASI-Socket issues.
- Fixed the buffer size of
sock_getpeeraddr
.
- Fixed the buffer size of
- Fixed the lost intrinsics table in AOT mode when using the WasmEdge C API.
- Fixed the implementation in
threads
proposal.- Fixed the error in
atomic.nofify
andatomic.wait
instructions. - Fixed the decoding of
atomic.fence
instruction. - Corrected the error message of waiting on unshared memory.
- Fixed the error in
Refactor:
- Refactored the implementation of number loading in the file manager.
- Supported
s33
andsn
loading and decoding.
- Supported
- Refactored the
WasmEdge::ValType
.- Removed the
WasmEdge::ValType::None
. - Used the flag in
WasmEdge::BlockType
for supporting the type index. - Removed the
WasmEdge::Validator::VType
and used theWasmEdge::ValType
instead.
- Removed the
Known issues:
- Universal WASM format failed on MacOS platforms.
- In current status, the universal WASM format output of the AOT compiler with the
O1
or upper optimizations on MacOS platforms will cause bus error when execution. - We are trying to fix this issue. For working around, please use the
--optimize=0
to set the compiler optimization level toO0
inwasmedgec
CLI.
- In current status, the universal WASM format output of the AOT compiler with the
- WasmEdge CLI failed on Windows 10 issue.
- Please refer to here for the workaround if the
msvcp140.dll is missing
occurs.
- Please refer to here for the workaround if the
- Plug-in linking on MacOS platforms.
- The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
- We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.
Documentations:
- Fixed various typos.
- Updated the C API documents.
- Added the WasmEdge installer guide.
- Updated the Android NDK example.
- Added the static library linking guide.
Tests:
- Updated the WASM spec tests to the date 2022/12/15.
- Added the plug-in unit tests on Linux platforms.
Thank all the contributors that made this release possible!
Abhinandan Udupa, Achille, Daniel Golding, DarumaDocker, Harry Chiang, Justin Echternach, Kenvi Zhu, LFsWang, Leonid Pospelov, Lîm Tsú-thuàn, MediosZ, O3Ol, Puelloc, Rafael Fernández López, Shreyas Atre, Sylveon, Tatsuyuki Kobayashi, Vishv Salvi, Xin Liu, Xiongsheng Wang, YiYing He, alabulei1, dm4, hydai, jeongkyu, little-willy
If you want to build from source, please use WasmEdge-0.12.0-alpha.2-src.tar.gz instead of the zip or tarball provided by GitHub directly.