Repository navigation
WasmEdge 0.12.0
Notice
The 0.12.1 hotfix is out. Anyone who used 0.12.0 should update ASAP. Thanks!
We received some reports indicating the WASI socket-related functions may fail. We are investigating this issue and will release a hotfix version 0.12.1 as soon as possible. For further information, please refer to this announcement
0.12.0 (2023-04-24)
Breaking changes:
- Updated the WasmEdge shared library.
- Due to the breaking change of API, bump the
SOVERSIONto0.0.2.
- Due to the breaking change of API, bump the
- WasmEdge C API changes.
- Removed the
WasmEdge_HostRegistrationmembers 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_WasiNNenum and theWasmEdge_ModuleInstanceCreateWasiNN()API. - Removed the
WasmEdge_HostRegistration_WasiCrypto_Commonenum and theWasmEdge_ModuleInstanceCreateWasiCryptoCommon()API. - Removed the
WasmEdge_HostRegistration_WasiCrypto_AsymmetricCommonenum and theWasmEdge_ModuleInstanceCreateWasiCryptoAsymmetricCommon()API. - Removed the
WasmEdge_HostRegistration_WasiCrypto_Kxenum and theWasmEdge_ModuleInstanceCreateWasiCryptoKx()API. - Removed the
WasmEdge_HostRegistration_WasiCrypto_Signaturesenum and theWasmEdge_ModuleInstanceCreateWasiCryptoSignatures()API. - Removed the
WasmEdge_HostRegistration_WasiCrypto_Symmetricenum and theWasmEdge_ModuleInstanceCreateWasiCryptoSymmetric()API. - Removed the
WasmEdge_HostRegistration_WasmEdge_Processenum 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-Processplug-in.- After this version, users should use the installer to install the
WasmEdge-Processplug-in.
- After this version, users should use the installer to install the
Features:
- Introduced the
Plugincontext and related APIs.- Added the
WasmEdge_PluginContextstruct. - 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
- Introduced the multiple WASI socket API implementation.
- The
sock_accept()is compatible with the WASI spec. - The V2 socket implementation is using a larger socket address data structures. With this, we can start to supporting
AF_UINX
- The
- Added the
VMAPIs.- 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.
- Added the
wasm_bpfplug-in. - Enabled the read-only WASI filesystem.
- Users can add the
--dir guest_path:host_path:readonlyoption in WasmEdge CLI to assign the read-only configuration.
- Users can add the
- 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
- Allowed the multiple VM instances.
- Supported using
libtoolto archive the WasmEdge static library. - Supported LLVM 15.0.7.
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
openfor the wchar path issue on windows. - Fixed the rights of
path_open.
- Fixed the leaking information about the host STDIN, STDOUT, and STDERR after getting the
- Fixed WASI-NN issues.
- Fixed the definition of
wasi_nn::TensorTypeto prevent from comparing with dirty data.
- Fixed the definition of
- Fixed WASI-Crypto issues.
- Fixed the
keypair_generatefor rsa-pss. - Fixed the
keypair_importread 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 registration failed of WasmEdge plug-in through the C API.
- Fixed the implementation in
threadsproposal.- Fixed the error in
atomic.nofifyandatomic.waitinstructions. - Fixed the decoding of
atomic.fenceinstruction. - Corrected the error message of waiting on unshared memory.
- Fixed the error in
- Handle canonical and arithmetical
NaNinrunMaxOp()andrunMinOp().
Refactor:
- Refactored the implementation of number loading in the file manager.
- Supported
s33andsnloading and decoding.
- Supported
- Refactored the
WasmEdge::ValType.- Removed the
WasmEdge::ValType::None. - Used the flag in
WasmEdge::BlockTypefor supporting the type index. - Removed the
WasmEdge::Validator::VTypeand used theWasmEdge::ValTypeinstead.
- 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
O1or 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=0to set the compiler optimization level toO0inwasmedgecCLI.
- 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 missingoccurs.
- 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.
- Added the WasmEdge plug-in implementation 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, Afshan Ahmed Khan, Daniel Golding, DarumaDocker, Draco, Harry Chiang, Justin Echternach, Kenvi Zhu, LFsWang, Leonid Pospelov, Lîm Tsú-thuàn, MediosZ, O3Ol, Officeyutong, Puelloc, Rafael Fernández López, Shen-Ta Hsieh, Shreyas Atre, Sylveon, Tatsuyuki Kobayashi, Vishv Salvi, Xin Liu, Xiongsheng Wang, YiYing He, alabulei1, dm4, hydai, jeongkyu, little-willy, michael1017, shun murakami, xxchan, 云微
If you want to build from source, please use WasmEdge-0.12.0-src.tar.gz instead of the zip or tarball provided by GitHub directly.