Changelog.md
This is the hot fix for 0.16.x versions.
Fixed issues:
Tests:
CI:
Thank all the contributors who made this release possible!
Divyansh Khatri, Karan Lokchandani, Meet Jain, SANCHIT KUMAR, SriramB, Vishal Malyan, Wang-Yang Li, Yi-Ying He, hydai, piyush kumar
If you want to build from source, please use WasmEdge-0.16.2-src.tar.gz instead of the zip or tarball provided by GitHub directly.
This is the hot fix for 0.16.x versions.
Thank all the contributors who made this release possible!
Yi-Ying He, hydai
If you want to build from source, please use WasmEdge-0.16.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.
Features:
Fixed issues:
noexn heap typeTests:
Misc:
CI:
Thank all the contributors who made this release possible!
Han-Wen Tsao, Karan Lokchandani, Khush Agrawal, Minimega12121, Sankalp Jha, Shen-Ta Hsieh(BestSteve), Vishruth Thimmaiah, Wang-Yang, Li, Yi, Yi-Ying He, cmd05, dm4, grorge, hydai
If you want to build from source, please use WasmEdge-0.16.0-src.tar.gz instead of the zip or tarball provided by GitHub directly.
Features:
prepare and SavedThreadLocalstb_image to replace libpng and libjpeg.
fmt::format error in embedding (#3779)mlx backend for the WASI-NN pluginFixed issues:
LLVMX86_MMXTypeKind moved in LLVM-20 (#4064)ReadFile/WriteFile instead of ReadFileEx/WriteFileEx (#3870)Tests:
-Wformat-truncation warningMisc:
libfmt to the target in the static build (#3909)zstd for all platforms with LLVM 16+string_view literal suffix for spdlog functionsunexpected errorCI:
clang-format version from 15 to 18Thank all the contributors who made this release possible!
0x名無し, abdelkoddous LHAJOUJI, alabulei1, dependabot[bot], Deveshi Dwivedi, dm4, Dmytrol, elhewaty, Fahd Ashour, fancebody, Gianpaolo Macario, grorge, Han-Wen Tsao, hydai, Jacob, junxiangMu, Karan Lokchandani, khongtrunght, kilavvy, LFsWang, Lîm Tsú-thuàn, Maxim Evtush, Michael Yuan, MileyFu, Oleg, omahs, operagxsasha, PeterD1524, Ruslan Tushov, Shen-Ta Hsieh, SHIGRAF SALIK, sridamul, Sridhar Sivakumar, StepSecurity Bot, Sylveon, Tenderyi, varunrmallya, vincent, Vladimir Cherkasov, Wang-Yang, Li, Yi, YiYing He
If you want to build from source, please use WasmEdge-0.15.0-src.tar.gz instead of the zip or tarball provided by GitHub directly.
Features:
spdlog to v1.13.0.fmt to 11.0.2.simdjson to v3.10.0.googletest to 1.15.2.libggml and libllama.squeezenet and whisper models.wasmedge_stablediffusion plug-in.
wasi_logging into built-in plug-in.
wasi_logging plug-in shared library, developers can find and get this plug-in after calling WasmEdge_PluginLoadWithDefaultPaths() API.API_VERSION to 3.WasmEdge_Proposal_RelaxSIMD for the configuration in WasmEdge C API.--enable-relaxed-simd to enable the proposal in wasmedge and wasmedgec tools.Fixed issues:
fmt related header inclusion for error logging.fmt::format instead of string stream in error logging.Tests:
Known issues:
O1 or upper optimizations on MacOS platforms will cause a bus error during execution.--optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.Thank all the contributors who made this release possible!
Biswapriyo Nath, Elmira, Faidon Liambotis, Fusaaaann, Han-Wen Tsao, Jun Zhang, Kefu Chai, Lîm Tsú-thuàn, Michael Morris, PeterD1524, Shen-Ta Hsieh, Shreyas Atre, Sylveon, Yi Huang, Yi-Ying He, alabulei1, dm4, grorge, hydai, junxiangMu, vincent
If you want to build from source, please use WasmEdge-0.14.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.
Breaking changes:
SOVERSION to 0.1.0.API_VERSION to 3.WasmEdge_ValType structure for replacing enum WasmEdge_ValType.
enum WasmEdge_ValType and enum WasmEdge_RefType into the enum WasmEdge_TypeCode.enum WasmEdge_ValType as parameters.
WasmEdge_FunctionTypeCreate()WasmEdge_FunctionTypeGetParameters()WasmEdge_FunctionTypeGetReturns()WasmEdge_TableTypeCreate()WasmEdge_TableTypeGetRefType()WasmEdge_GlobalTypeCreate()WasmEdge_GlobalTypeGetValType()WasmEdge_ValueGenNullRef() API.WasmEdge_GlobalInstanceSetValue()WasmEdge_Bytes structure.
uint8_t buffers. The old FromBuffer related APIs will be replaced by the corresponding APIs in the future versions.WasmEdge_CompilerCompileFromBytes() API has the same function as WasmEdge_CompilerCompileFromBuffer() and will replace it in the future.WasmEdge_LoaderParseFromBytes() API has the same function as WasmEdge_LoaderParseFromBuffer() and will replace it in the future.WasmEdge_VMRegisterModuleFromBytes() API has the same function as WasmEdge_VMRegisterModuleFromBuffer() and will replace it in the future.WasmEdge_VMRunWasmFromBytes() API has the same function as WasmEdge_VMRunWasmFromBuffer() and will replace it in the future.WasmEdge_VMAsyncRunWasmFromBytes() API has the same function as WasmEdge_VMAsyncRunWasmFromBuffer() and will replace it in the future.WasmEdge_VMLoadWasmFromBytes() API has the same function as WasmEdge_VMLoadWasmFromBuffer() and will replace it in the future.WasmEdge_TagTypeContext struct.WasmEdge_TagInstanceContext struct.WasmEdge_TagTypeGetFunctionType() API for retrieving the function type from a tag type.WasmEdge_ImportTypeGetTagType() API for retrieving the tag type from an import type.WasmEdge_ExportTypeGetTagType() API for retrieving the tag type from an export type.WasmEdge_ModuleInstanceFindTag() API for finding an exported tag instance from a module instance.WasmEdge_ModuleInstanceListTagLength() and WasmEdge_ModuleInstanceListTag() APIs for listing the exported tag instances of a module instance.OpCode mechanism for speeding up and supporting WASM multi-bytes instruction OpCodes.Features:
spdlog to v1.13.0.simdjson to v3.9.1.WasmEdge_Proposal_FunctionReferences for the configuration in WasmEdge C API.--enable-function-reference to enable the proposal in wasmedge and wasmedgec tools.WasmEdge_Proposal_GC for the configuration in WasmEdge C API.--enable-gc to enable the proposal in wasmedge and wasmedgec tools.WasmEdge_Proposal_ExceptionHandling for the configuration in WasmEdge C API.--enable-exception-handling to enable the proposal in wasmedge and wasmedgec tools.try, catch, and catch_all instructions, and will remove them in the future version.WasmEdge_Proposal_Component for the configuration in WasmEdge C API.--enable-component to enable the proposal in wasmedge tool.WasmEdge_ValType related APIs can help developers to generate or compare value types.
WasmEdge_ValTypeGenI32() (replacing WasmEdge_ValType_I32)WasmEdge_ValTypeGenI64() (replacing WasmEdge_ValType_I64)WasmEdge_ValTypeGenF32() (replacing WasmEdge_ValType_F32)WasmEdge_ValTypeGenF64() (replacing WasmEdge_ValType_F64)WasmEdge_ValTypeGenV128() (replacing WasmEdge_ValType_V128)WasmEdge_ValTypeGenFuncRef() (replacing WasmEdge_ValType_FuncRef)WasmEdge_ValTypeGenExternRef() (replacing WasmEdge_ValType_ExternRef)WasmEdge_ValTypeIsEqual()WasmEdge_ValTypeIsI32()WasmEdge_ValTypeIsI64()WasmEdge_ValTypeIsF32()WasmEdge_ValTypeIsF64()WasmEdge_ValTypeIsV128()WasmEdge_ValTypeIsFuncRef()WasmEdge_ValTypeIsExternRef()WasmEdge_ValTypeIsRef()WasmEdge_ValTypeIsRefNull()WasmEdge_Bytes related APIs can help developers to control the buffers.
WasmEdge_BytesCreate()WasmEdge_BytesWrap()WasmEdge_BytesDelete()WasmEdge_TableInstanceCreateWithInit() to create a table instance with non-defaultable elements with assigning the initial value.WasmEdge_LoaderSerializeASTModule() API to serialize a loaded WASM module into bytes.--version option.ggml-blas and rustls plugin supporting (#3032) (#3108).threads: the thread number for inference.temp: set temperature for inference.repeat-penalty: set repeat penalty for inference.top-p: set top-p for inference.grammar: set grammar syntax for inference.main-gpu: set the main GPU for inference.tensor-split: set the tensor split for inference.enable-debug-log option to show more debug information.load_by_name_with_config() to load model with metadata.compute_single, get_output_single, and fini_singleunload() function to release the model.EndOfSequence: returned when encounter <EOS> token on single token inferece.ContextFull: returned when the context is full.PromptTooLong: returned when the input size is too large.ModelNotFound: returned when the model is not found.mmproj option to set the projection model.image option to set the image.llama.cpp in the metadata.wasmedge_ffmpeg plug-in.wasi-logging plug-in for supporting logging into file.Fixed issues:
memGrow boundary check.fd_renumber (#3040).path_unlink_file for trailing slash path.path_readlink for not following symbolic link issue.path_open for checking O_TRUNC rights.path_open for removing path relative rights on file.fd_allocate return error value.path_symlink for creating a symlink to an absolute path.fd_prestat_dir_name buffer size.filestat_set_times for invalid flags.socket_accept (#3041).wasmedge_process plug-in.Tests:
Known issues:
O1 or upper optimizations on MacOS platforms will cause a bus error during execution.--optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.Thank all the contributors who made this release possible!
Abhinandan Udupa, Akihiro Suda, Charlie chan, Dhruv Jain, Draco, Harry Chiang, Hrushikesh, Ikko Eltociear Ashimine, Khagan (Khan) Karimov, LFsWang, LO, CHIN-HAO, Little Willy, Lîm Tsú-thuàn, Meenu Yadav, Omkar Acharekar, Saiyam Pathak, Sarrah Bastawala, Shen-Ta Hsieh, Shreyas Atre, Sylveon, Yage Hu, Yi Huang, Yi-Ying He, alabulei1, am009, dm4, hetvishastri, hugo-syn, hydai, redismongo, richzw, tannal, vincent, zhumeme
If you want to build from source, please use WasmEdge-0.14.0-src.tar.gz instead of the zip or tarball provided by GitHub directly.
Features:
AUTO detection. Wasm application will no longer need to specify the hardware spec (e.g., CPU or GPU). It will auto-detect by the runtime.metadata for setting the ggml options.
enable-log: true to enable logging. (default: false)stream-stdout: true to print the inferred tokens in the streaming mode to standard output. (default: false)ctx-size: Set the context size the same as the --ctx-size parameter in llama.cpp. (default: 512)n-predict: Set the number of tokens to predict, the same as the --n-predict parameter in llama.cpp. (default: 512)n-gpu-layers: Set the number of layers to store in VRAM, the same as the --n-gpu-layers parameter in llama.cpp. (default: 0)reverse-prompt: Set the token pattern at which you want to halt the generation. Similar to the --reverse-prompt parameter in llama.cpp. (default: "")batch-size: Set the number of batch sizes for prompt processing, the same as the --batch-size parameter in llama.cpp. (default: 512)n_gpu_layers is set to a non-zero value.Fixed issues:
Misc:
Thank all the contributors who made this release possible!
dm4, hydai, Lîm Tsú-thuàn, Meenu Yadav, michael1017, proohit, Saikat Dey, Shen-Ta Hsieh, Shreyas Atre, Wang Jikai, Wck-iipi, YiYing He
If you want to build from source, please use WasmEdge-0.13.5-src.tar.gz instead of the zip or tarball provided by GitHub directly.
Features:
rectangle and cvtColor (#2705)--allow-af-unix.WasmEdge\_ConfigureSetAllowAFUNIX.Fixed issues:
compileVectorExtAddPairwise. (#2736)const char* Path (#2706)FindHolderBase::resetThank all the contributors that made this release possible!
Adithya Krishna, Divyanshu Gupta, Faidon Liambotis, Jorge Prendes, LFsWang, Lev Veyde, Lîm Tsú-thuàn, Sarrah Bastawala, Shen-Ta Hsieh, Shreyas Atre, Vedant R. Nimje, Yi-Ying He, alabulei1, am009, dm4, erxiaozhou, hydai, vincent, zzz
If you want to build from source, please use WasmEdge-0.13.4-src.tar.gz instead of the zip or tarball provided by GitHub directly.
This is a bugfix release.
Features:
Fixed issues:
Known issues:
O1 or upper optimizations on MacOS platforms will cause a bus error during execution.--optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.msvcp140.dll is missing occurs.Thank all the contributors that made this release possible!
Lîm Tsú-thuàn, Tricster, Tyler Rockwood
If you want to build from source, please use WasmEdge-0.13.3-src.tar.gz instead of the zip or tarball provided by GitHub directly.
This is a bugfix release.
Features:
x86_64 and aarch64 Linux (#2666)wasm_bpf plugins in the release assets (#2610)BoyerMooreHorspoolSearcher (#2657)Fixed issues:
Known issues:
O1 or upper optimizations on MacOS platforms will cause a bus error during execution.--optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.msvcp140.dll is missing occurs.Thank all the contributors that made this release possible!
Divyanshu Gupta, Faidon Liambotis, hydai, Jorge Prendes, Officeyutong, Shen-Ta Hsieh, Shreyas Atre, Tricster, YiYing He
If you want to build from source, please use WasmEdge-0.13.2-src.tar.gz instead of the zip or tarball provided by GitHub directly.
This is a bugfix release.
Fixed issues:
getlocaladdr, and getpeeraddrKnown issues:
O1 or upper optimizations on MacOS platforms will cause a bus error during execution.--optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.msvcp140.dll is missing occurs.Thank all the contributors that made this release possible!
If you want to build from source, please use WasmEdge-0.13.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.
Features:
SOVERSION to 0.0.3.wasmedge CLI tool.
run and compile for the wasmedge CLI.wasmedge run [ARGS] to drive the original wasmedge tool.wasmedge compile [ARGS] to drive the original wasmedgec AOT compiler tool.armv7l great again.spdlog to v1.11.0.
fmt for formatting.blake3 to 1.3.3.WASMEDGE_ENABLE_UB_SANITIZER to enable the undefined behavior sanitizer.wasmedge_httpsreq plug-in.wasmedge_image plug-in.wasmedge_tensorflow and wasmedge_tensorflowlite plug-ins.manylinux2014_x86_64, manylinux2014_aarch64, darwin_x86_64, and darwin_arm64 platforms for the above plug-ins.wasi_logging plug-in.WasmEdge_ModuleInstanceCreateWithData() API for creating a module instance with data and its finalizer callback function pointer.WasmEdge_ModuleInstanceGetHostData() API for accessing the host data set into the module instance.WasmEdge_ExecutorAsyncInvoke() API for invoking a WASM function asynchronously.WasmEdge_Driver_ArgvCreate() and WasmEdge_Driver_ArgvDelete() APIs to convert UTF-16 arguments to UTF-8.WasmEdge_Driver_SetConsoleOutputCPtoUTF8() API to set the output code page to UTF-8.WasmEdge_Driver_UniTool() API to trigger the WasmEdge CLI tool with command line arguments.Fixed issues:
llvm-ar-14.__WASI_OFLAGS_DIRECTORY flag.O_PATH unless flag is exactly __WASI_OFLAGS_DIRECTORY.path_open.fd....fd_readdir.aes-gcm and chacha20.Refactor:
include/system/winapi.h.boost dependency.
boost endian detection by the macros.std::boyer_moore_horspool_searcher instead.WasmEdge::VM::Async class to the include/common for supporting async invocation in executor.poll_oneoff with edge-trigger configuration.poll_oneoff on MacOS.Documentations:
Tests:
cxx20::expected.Known issues:
O1 or upper optimizations on MacOS platforms will cause a bus error during execution.--optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.msvcp140.dll is missing occurs.Thank all the contributors that made this release possible!
Adithya Krishna, Chris O'Hara, Edward Chen, Louis Tu, Lîm Tsú-thuàn, Maurizio Pillitu, Officeyutong, Shen-Ta Hsieh, Shreyas Atre, Tricster, Tyler Rockwood, Xin Liu, YiYing He, Yu Xingzi, alabulei1, hydai, michael1017, vincent, yanghaku
If you want to build from source, please use WasmEdge-0.13.0-src.tar.gz instead of the zip or tarball provided by GitHub directly.
This is a hotfix release.
Fixed issues:
CMAKE_MSVC_RUNTIME_LIBRARY instead of MSVC_RUNTIME_LIBRARY.fiber-for-wasmedge (#2468). The Rust binding relies on fiber for some features. Because the runwasi project supports both wasmtime and wasmedge, the wasmtime-fiber with different versions will make the compilation complex. To avoid this, we forked wasmtime-fiber as fiber-for-wasmedge.Known issues:
O1 or upper optimizations on MacOS platforms will cause a bus error during execution.--optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.msvcp140.dll is missing occurs.Thank all the contributors that made this release possible!
Leonid Pospelov, Shen-Ta Hsieh, Tyler Rockwood, Xin Liu, YiYing He, dm4, hydai, vincent, yanghaku, zzz
If you want to build from source, please use WasmEdge-0.12.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.
Breaking changes:
SOVERSION to 0.0.2.WasmEdge_HostRegistration members and the corresponding module creation APIs to standardize the plug-in module creation.
WasmEdge_HostRegistration_WasiNN enum and the WasmEdge_ModuleInstanceCreateWasiNN() API.WasmEdge_HostRegistration_WasiCrypto_Common enum and the WasmEdge_ModuleInstanceCreateWasiCryptoCommon() API.WasmEdge_HostRegistration_WasiCrypto_AsymmetricCommon enum and the WasmEdge_ModuleInstanceCreateWasiCryptoAsymmetricCommon() API.WasmEdge_HostRegistration_WasiCrypto_Kx enum and the WasmEdge_ModuleInstanceCreateWasiCryptoKx() API.WasmEdge_HostRegistration_WasiCrypto_Signatures enum and the WasmEdge_ModuleInstanceCreateWasiCryptoSignatures() API.WasmEdge_HostRegistration_WasiCrypto_Symmetric enum and the WasmEdge_ModuleInstanceCreateWasiCryptoSymmetric() API.WasmEdge_HostRegistration_WasmEdge_Process enum and the WasmEdge_ModuleInstanceCreateWasmEdgeProcess() API.WasmEdge_VMCleanup() behavior.
WasmEdge-Process plug-in.
WasmEdge-Process plug-in.Features:
Plugin context and related APIs.
WasmEdge_PluginContext struct.WasmEdge_PluginLoadFromPath() API for loading a plug-in from a specific path.WasmEdge_PluginListPluginsLength() and WasmEdge_PluginListPlugins() APIs for getting the loaded plug-in names.WasmEdge_PluginFind() API for retrieving a loaded plug-in by its name.WasmEdge_PluginGetPluginName() API for retrieving the plug-in name.WasmEdge_PluginListModuleLength() and WasmEdge_PluginListModule() APIs for listing the module names of a plug-in.WasmEdge_PluginCreateModule() API for creating the specific module instance in a plug-in by its name.sock_accept() is compatible with the WASI spec.AF_UINXVM APIs.
WasmEdge_VMGetRegisteredModule() API for retrieving a registered module by its name.WasmEdge_VMListRegisteredModuleLength() and WasmEdge_VMListRegisteredModule() APIs for listing the registered module names.wasm_bpf plug-in.--dir guest_path:host_path:readonly option in WasmEdge CLI to assign the read-only configuration.wasi_ephemeral_sock.
sock_recv_from.sock_getlocaladdr.libtool to archive the WasmEdge static library.Fixed issues:
filestat.path_filestat_set_times.open for the wchar path issue on windows.path_open.wasi_nn::TensorType to prevent from comparing with dirty data.keypair_generate for rsa-pss.keypair_import read pem as pkcs8.sock_getpeeraddr.threads proposal.
atomic.notify and atomic.wait instructions.atomic.fence instruction.NaN in runMaxOp() and runMinOp().Refactor:
s33 and sn loading and decoding.WasmEdge::ValType.
WasmEdge::ValType::None.WasmEdge::BlockType for supporting the type index.WasmEdge::Validator::VType and used the WasmEdge::ValType instead.Known issues:
O1 or upper optimizations on MacOS platforms will cause bus error when execution.--optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.msvcp140.dll is missing occurs.Documentations:
Tests:
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.
Features:
WasmEdge_ConfigureSetForceInterpreter() API to set the force interpreter mode.WasmEdge_ConfigureIsForceInterpreter() API to check the force interpreter mode in configurations.WasmEdge_LogOff() API to turn off the logging.SOVERSION to 0.0.1.--force-interpreter option in the wasmedge tool to forcibly execute WASM files (includes the AOT compiled WASM files) in interpreter mode.-DWASMEDGE_PLUGIN_WASI_NN_BACKEND="TensorFlowLite" in cmake.fmt format of logging to 9.0.0.epollOneoff in the WASI component.Fixed issues:
_start function of the WasmEdge CLI command mode.
_start function, the WasmEdge CLI will execute that function in the reactor mode.frintn on arm64 platforms.unreachable status to record on every control stacks.std namespace in the experimental::expected.wasmedgec tool to compile the universal WASM file, the AOT compiled WASM data will be appended into the output.Known issues:
O1 or upper optimizations on MacOS platforms will cause bus error when execution.--optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.msvcp140.dll is missing occurs.Documentations:
v0.11.0.Tests:
Thank all the contributors that made this release possible!
Abhinandan Udupa, Gustavo Ye, HangedFish, Harry Chiang, Hiroaki Nakamura, Kenvi Zhu, LFsWang, MediosZ, Shen-Ta Hsieh, Shreyas Atre, Xin Liu, YiYing He, abhinandanudupa, dm4, he11c, hydai, vincent, yyy1000, zhlhahaha
If you want to build from source, please use WasmEdge-0.11.2-src.tar.gz instead of the zip or tarball provided by GitHub directly.
Features:
-DWASMEDGE_PLUGIN_WASI_NN_BACKEND="PyTorch" in cmake.wasmedgec tool.v128 value type printing in wasmedge tool.Fixed issues:
private members into the protected in the module instance class.Known issues:
O1 or upper optimizations on MacOS platforms will cause bus error when execution.--optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.msvcp140.dll is missing occurs.Documentations:
Tests:
Thank all the contributors that made this release possible!
DarumaDocker, Faidon Liambotis, Gustavo Ye, LFsWang, MediosZ, Michael Yuan, Shen-Ta Hsieh, Tricster, Xin Liu, Yeongju Kang, YiYing He, Zhou Zhou, hydai, jeeeerrrpop, sonder-joker, vincent
If you want to build from source, please use WasmEdge-0.11.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.
Breaking changes:
WasmEdge_HostFunc_t is replaced by const WasmEdge_CallingFrameContext *.WasmEdge_WrapFunc_t is replaced by const WasmEdge_CallingFrameContext *.WasmEdge_Result.WasmEdge_StoreFindModule().WasmEdge_AsyncWait().WasmEdge_AsyncWaitFor().WasmEdge_AsyncGetReturnsLength().WasmEdge_AsyncGet().WasmEdge_VMGetFunctionType().WasmEdge_VMGetFunctionTypeRegistered().WasmEdge_VMGetFunctionListLength().WasmEdge_VMGetFunctionList().WasmEdge_VMGetImportModuleContext().WasmEdge_Plugin_loadWithDefaultPluginPaths() to WasmEdge_PluginLoadWithDefaultPaths().libwasmedge.so, libwasmedge.dyld, and wasmedge.dll.lwasmedge_c to lwasmedge.libwasmedge.so.0.libwasmedge.so.0.0.0.Features:
WASMEDGE_LINK_LLVM_STATIC option to link the LLVM statically into WasmEdge shared library or tools.WASMEDGE_BUILD_STATIC_TOOLS option and replaced by the WASMEDGE_LINK_TOOLS_STATIC option.WasmEdge_ResultGen() API to generate the result and return.CallingFrame instead of the memory instance in host functions.
WasmEdge_CallingFrameContext struct.WasmEdge_CallingFrameGetModuleInstance() API to get the module instance of current top frame in calling stack in host function body.WasmEdge_CallingFrameGetMemoryInstance() API to get the memory instance by index in host function body.
WasmEdge_CallingFrameGetMemoryInstance(Context, 0) to get the same memory instance of the previous host function definition.WasmEdge_CallingFrameGetExecutor() API to get the executor context in host function body.WasmEdge_Result struct to support user defined error codes of host functions.
WasmEdge_ResultGen() API to generate the WasmEdge_Result struct of user defined error code.WasmEdge_ResultGetCategory() API to get the error code category.WasmEdge_ModuleInstanceWASIGetNativeHandler to get the native handler.WasmEdge_CompilerCompileFromBuffer to compile from buffer.httpsreq plugin on Linux platforms.Fixed issues:
memarg of memory instructions for the multiple memories proposal changes.SSE4.1 is not supported on the x86_64 platforms or the NEON is not supported on the aarch64 platforms.sdk_version of lld warning on MacOS with LLVM 14.lld symbols of WasmEdge shared library.Refactor:
Known issues:
O1 or upper optimizations on MacOS platforms will cause bus error when execution.O0 in WasmEdge C API..dylib on MacOS for the shared library format output when using wasmedgec tool.msvcp140.dll is missing occurs.Documentations:
0.10.1 to 0.11.0, please refer to the document.0.10.1, please refer to the document.Tests:
20220712.Thank all the contributors that made this release possible!
Cheng-En Lee, Chih-Hsuan Yen, Galden, GreyBalloonYU, HeZean, Michael Yuan, Shen-Ta Hsieh, Xin Liu, Yi Huang, Yi-Ying He, Zhenghao Lu, Zhou Zhou, dm4, hydai
If you want to build from source, please use WasmEdge-0.11.0-src.tar.gz instead of the zip or tarball provided by GitHub directly.
Features:
-DWASMEDGE_PLUGIN_WASI_NN_BACKEND="OpenVINO" in cmake.-DWASMEDGE_PLUGIN_WASI_CRYPTO=ON in cmake.-DWASMEDGE_BUILD_STATIC_LIB=On and -DWASMEDGE_BUILD_STATIC_TOOLS=On to build the stand-alone WasmEdge CLI tools.WasmEdge_VMContext in WasmEdge C API.
WasmEdge_VMGetLoaderContext API for retrieving the WasmEdge_LoaderContext in VM.WasmEdge_VMGetValidatorContext API for retrieving the WasmEdge_ValidatorContext in VM.WasmEdge_VMGetExecutorContext API for retrieving the WasmEdge_ExecutorContext in VM.WasmEdge_Driver_Compiler API to trigger the WasmEdge AOT compiler tool.WasmEdge_Driver_Tool API to trigger the WasmEdge runtime tool.threads proposal.
WasmEdge_Proposal_Threads for the configuration in WasmEdge C API.--enable-threads to enable the proposal in wasmedge and wasmedgec tools.macho in lld on LLVM-14 envronment.Fixed issues:
.wasm on MacOS as the universal WASM format output of the AOT compiler to enable the AOT mode.Refactor:
WasmEdge::Driver.test/plugins folder.Known issues:
msvcp140.dll is missing occurs.Documentations:
Tests:
threads proposal.Thank all the contributors that made this release possible!
Abhinandan Udupa, Chris Ho, Faidon Liambotis, Frank Lin, Jianbai Ye, Kevin O'Neal, LFsWang, Lokesh Mandvekar, Michael Yuan, O3Ol, RichardAH, Shen-Ta Hsieh, Shreyas Atre, Sylveon, Tricster, William Wen, 罗泽轩, Xin Liu, Yi Huang, Yi-Ying He, Yixing Jia, Yukang, abhinandanudupa, alabulei1, dm4, eat4toast, eee4017, hydai, sonder-joker, spacewander, swartz-k, yale
If you want to build from source, please use WasmEdge-0.10.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.
Breaking changes:
WasmEdge_ImportObjectContext into the WasmEdge_ModuleInstanceContext.
WasmEdge_ImportObjectCreate() is changed to WasmEdge_ModuleInstanceCreate().WasmEdge_ImportObjectDelete() is changed to WasmEdge_ModuleInstanceDelete().WasmEdge_ImportObjectAddFunction() is changed to WasmEdge_ModuleInstanceAddFunction().WasmEdge_ImportObjectAddTable() is changed to WasmEdge_ModuleInstanceAddTable().WasmEdge_ImportObjectAddMemory() is changed to WasmEdge_ModuleInstanceAddMemory().WasmEdge_ImportObjectAddGlobal() is changed to WasmEdge_ModuleInstanceAddGlobal().WasmEdge_ImportObjectCreateWASI() is changed to WasmEdge_ModuleInstanceCreateWASI().WasmEdge_ImportObjectCreateWasmEdgeProcess() is changed to WasmEdge_ModuleInstanceCreateWasmEdgeProcess().WasmEdge_ImportObjectInitWASI() is changed to WasmEdge_ModuleInstanceInitWASI().WasmEdge_ImportObjectInitWasmEdgeProcess() is changed to WasmEdge_ModuleInstanceInitWasmEdgeProcess().WasmEdge_FunctionInstanceContext instead of the index in the FuncRef value type.
WasmEdge_ValueGenFuncRef() is changed to use the const WasmEdge_FunctionInstanceContext * as it's argument.WasmEdge_ValueGetFuncRef() is changed to return the const WasmEdge_FunctionInstanceContext *.WasmEdge_StoreContext to the WasmEdge_ModuleInstanceContext.
WasmEdge_StoreListFunctionLength() and WasmEdge_StoreListFunctionRegisteredLength() is replaced by WasmEdge_ModuleInstanceListFunctionLength().WasmEdge_StoreListTableLength() and WasmEdge_StoreListTableRegisteredLength() is replaced by WasmEdge_ModuleInstanceListTableLength().WasmEdge_StoreListMemoryLength() and WasmEdge_StoreListMemoryRegisteredLength() is replaced by WasmEdge_ModuleInstanceListMemoryLength().WasmEdge_StoreListGlobalLength() and WasmEdge_StoreListGlobalRegisteredLength() is replaced by WasmEdge_ModuleInstanceListGlobalLength().WasmEdge_StoreListFunction() and WasmEdge_StoreListFunctionRegistered() is replaced by WasmEdge_ModuleInstanceListFunction().WasmEdge_StoreListTable() and WasmEdge_StoreListTableRegistered() is replaced by WasmEdge_ModuleInstanceListTable().WasmEdge_StoreListMemory() and WasmEdge_StoreListMemoryRegistered() is replaced by WasmEdge_ModuleInstanceListMemory().WasmEdge_StoreListGlobal() and WasmEdge_StoreListGlobalRegistered() is replaced by WasmEdge_ModuleInstanceListGlobal().WasmEdge_StoreFindFunction() and WasmEdge_StoreFindFunctionRegistered() is replaced by WasmEdge_ModuleInstanceFindFunction().WasmEdge_StoreFindTable() and WasmEdge_StoreFindTableRegistered() is replaced by WasmEdge_ModuleInstanceFindTable().WasmEdge_StoreFindMemory() and WasmEdge_StoreFindMemoryRegistered() is replaced by WasmEdge_ModuleInstanceFindMemory().WasmEdge_StoreFindGlobal() and WasmEdge_StoreFindGlobalRegistered() is replaced by WasmEdge_ModuleInstanceFindGlobal().WasmEdge_VMContext APIs.
WasmEdge_VMGetActiveModule().WasmEdge_VMGetImportModuleContext() is changed to return the WasmEdge_FunctionInstanceContext *.WasmEdge_VMRegisterModuleFromImport() is changed to use the const WasmEdge_ModuleInstanceContext * as it's argument.0.9.1 to 0.10.0, please refer to the document.Features:
tail-call proposal.
WasmEdge_Proposal_TailCall for the configuration in WasmEdge C API.--enable-tail-call to enable the proposal in wasmedge and wasmedgec tools.extended-const proposal.
WasmEdge_Proposal_ExtendedConst for the configuration in WasmEdge C API.--enable-extended-const to enable the proposal in wasmedge and wasmedgec tools.WasmEdge_VMContext, WasmEdge_ConfigureContext, WasmEdge_ModuleInstanceContext, and WasmEdge_StoreContext APIs.send_to.resv_from.wasmedge_process to a loadable plugin.Fixed issues:
poll_oneoff with the same fd twice.fd_close on socket.::getaddrinfo.Known issues:
.dylib on MacOS, .so on Linux, and .dll on Windows for the shared library format output of the AOT compiler.Refactor:
StackManager in Executor as thread local to support the multi-thread.std::unordered_map of the enumeration strings with DenseMap and SpareMap.enum.inc file.ErrCode enumeration for the newest spec tests.tail-call proposal.
call_indirect execution routine in compiler into AOT and interpreter path.StackManager.Loader.
StackManager for better performance in the interpreter mode.
StackManager and used the pre-calculated data for branch.StackManager.StoreManager and ModuleInstance.
StoreManager.StoreManager, ModuleInstance, and Executor.
ModuleInstance-based resource management instead of StoreManager-based.StoreManager into the ModuleInstance.ImportObject into the ModuleInstance.FunctionInstance rather than the function name in Executor.Documentations:
0.9.1 to 0.10.0, please refer to the document.0.9.1, please refer to the document.v0.9.2 to v0.10.0, please refer to the document.v0.9.2, please refer to the document.Tests:
20220504.tail-call proposal.extended-const proposal.poll_oneoff, send_to, and recv_from.Thank all the contributors that made this release possible!
朱亚光, Abhinandan Udupa, Ang Lee, Binbin Zhang, Chin Zhi Wei, DarumaDocker, Elon Cheng, FlyingOnion, Hanged Fish, Herschel Wang, JIAN ZHONG, JcJinChen, Jeremy, JessesChou, JieDing, Kodalien, Kunshuai Zhu, LFsWang, LaingKe, MediosZ, Michael Yuan, Nicholas Zhan, 华德禹, O3Ol, Rui Li, Shen-Ta Hsieh, Shreyas Atre, Sylveon, TheLightRunner, Vaniot, Vinson, 罗泽轩, Xin Liu, Yi Huang, YiYing He, YoungLH, abhinandanudupa, border1px, dm4, eat4toast, hydai, jerbmarx, luckyJ-nj, meoww-bot, mydreamer4134, situ2001, tpmccallum, treeplus, wangyuan249, yale, 王琦
If you want to build from source, please use WasmEdge-0.10.0-src.tar.gz instead of the zip or tarball provided by GitHub directly.
Features:
sock_getsockopt, sock_setsockopt, sock_getlocaladdr, sock_getpeeraddr, and sock_getaddrinfo host functions for the WASI socket proposal.WasmEdge_Async struct in WasmEdge C API for the asynchronous execution.
WasmEdge_AsyncWait API for waiting an asynchronous execution.WasmEdge_AsyncWaitFor API for waiting an asynchronous execution with timeout.WasmEdge_AsyncCancel API for canceling an asynchronous execution.WasmEdge_AsyncGetReturnsLength API for waiting and getting the return value length of asynchronous execution.WasmEdge_AsyncGet API for waiting and getting the asynchronous execution results.WasmEdge_AsyncDelete API for destroying the WasmEdge_Async object.WasmEdge_VMAsyncRunWasmFromFile API for executing WASM from a file asynchronously.WasmEdge_VMAsyncRunWasmFromBuffer API for executing WASM from a buffer asynchronously.WasmEdge_VMAsyncRunWasmFromASTModule API for executing WASM from an WasmEdge_ASTModuleContext asynchronously.WasmEdge_VMAsyncExecute API for invoking a WASM function asynchronously.WasmEdge_VMAsyncExecuteRegistered API for invoking a registered WASM function asynchronously.WasmEdge_ConfigureCompilerSetInterruptible API for setting the interruptibility of the AOT compiler.WasmEdge_ConfigureCompilerIsInterruptible API for getting the interruptibility of the AOT compiler.multi-memories proposal.
WasmEdge_Proposal_MultiMemories for the configuration in WasmEdge C API.--enable-multi-memory to enable the proposal in wasmedge and wasmedgec tools.wasmedge CLI.
--gas-limit to assign the limitation of costs.Fixed issues:
fread and fwrite WASI functions on Windows.Refactor:
assumingUnreachable instead of __builtin_unreachable to help the compiler to generate better codes.WasmEdge::BlockType into a struct.Documentations:
Tests:
multi-memories proposal.getaddrinfo host function.Misc:
blake3 library to 1.2.0.Thank all the contributors that made this release possible!
2021, Antonio Yang, AvengerMoJo, Hanged Fish, Harinath Nampally, KernelErr, Michael Yuan, MileyFu, O3Ol, Saksham Sharma, Shen-Ta Hsieh(BestSteve), Shreyas Atre, SonOfMagic, Stephan Renatus, Sven Pfennig, Vaughn Dice, Xin Liu, Yi, Yi-Ying He, Yukang Chen, ZefengYu, ZhengX, alabulei1, alittlehorse, baiyutang, 董哲, hydai, javadoors, majinghe, meoww-bot, pasico, peterbi, villanel, wangshishuo, wangyuan249, wby, wolfishLamb, 王琦
If you want to build from source, please use WasmEdge-0.9.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.
Breaking changes:
SIMD proposal by default.
WasmEdge_ConfigureContext will turn on the SIMD proposal automatically.--disable-simd to disable the SIMD proposal in wasmedge and wasmedgec.--enable-instruction-count.--enable-gas-measuring.--enable-time-measuring.--enable-all-statistics will enable all available statistics options.wasmedgec AOT compiler tool behavior changes.
.so, wasmedgec will output the AOT compiled WASM in shared library format..wasm or other cases, wasmedgec will output the WASM file with adding the AOT compiled binary in custom sections. wasmedge runtime will run in AOT mode when it executes the output WASM file.wasmedge folder. Developers should include the wasmedge/wasmedge.h for using the WasmEdge shared library after installation.enum_errcode.h, enum_types.h, and enum_configure.h in the wasmedge folder.201402L C++ standard checking if developer includes the headers with a C++ compiler.Interpreter into Executor.
Interpreter namespace into Executor.Interpreter folder into Executor folder.Interpreter APIs and listed below.ImportObject context.HostFunctionContext into FunctionInstanceContext.
WasmEdge_HostFunctionContext object. Please use the WasmEdge_FunctionInstanceContext object instead.WasmEdge_HostFunctionCreate function. Please use the WasmEdge_FunctionInstanceCreate function instead.WasmEdge_HostFunctionCreateBinding function. Please use the WasmEdge_FunctionInstanceCreateBinding function instead.WasmEdge_HostFunctionDelete function. Please use the WasmEdge_FunctionInstanceDelete function instead.WasmEdge_ImportObjectAddHostFunction function. Please use the WasmEdge_ImportObjectAddFunction function instead.FunctionInstance context.WasmEdge_TableTypeContext, which is used for table instances creation.WasmEdge_MemoryTypeContext, which is used for memory instances creation.WasmEdge_GlobalTypeContext, which is used for global instances creation.WasmEdge_TableTypeContext for table instances creation.
WasmEdge_TableInstanceGetRefType API.WasmEdge_TableInstanceGetTableType API to get the table type instead.WasmEdge_MemoryTypeContext for memory instances creation.
WasmEdge_MemoryInstanceGetMemoryType API.WasmEdge_GlobalTypeContext for global instances creation.
WasmEdge_GlobalInstanceGetValType and WasmEdge_GlobalInstanceGetMutability API.WasmEdge_GlobalInstanceGetGlobalType API to get the global type instead.WasmEdge_FunctionTypeContext objects returned from WasmEdge_VMGetFunctionList, WasmEdge_VMGetFunctionType, and WasmEdge_VMGetFunctionTypeRegistered functions.WasmEdge_String objects returned from WasmEdge_StoreListFunction, WasmEdge_StoreListFunctionRegistered, WasmEdge_StoreListTable, WasmEdge_StoreListTableRegistered, WasmEdge_StoreListMemory, WasmEdge_StoreListMemoryRegistered, WasmEdge_StoreListGlobal, WasmEdge_StoreListGlobalRegistered, WasmEdge_StoreListModule, and WasmEdge_VMGetFunctionList functions.Interpreter related APIs.
WasmEdge_InterpreterContext struct with WasmEdge_ExecutorContext struct.WasmEdge_InterpreterCreate function with WasmEdge_ExecutorCreate function.WasmEdge_InterpreterInstantiate function with WasmEdge_ExecutorInstantiate function.WasmEdge_InterpreterRegisterImport function with WasmEdge_ExecutorRegisterImport function.WasmEdge_InterpreterRegisterModule function with WasmEdge_ExecutorRegisterModule function.WasmEdge_InterpreterInvoke function with WasmEdge_ExecutorInvoke function.WasmEdge_InterpreterInvokeRegistered function with WasmEdge_ExecutorInvokeRegistered function.WasmEdge_InterpreterDelete function with WasmEdge_ExecutorDelete function.WasmEdge_ConfigureCompilerSetInstructionCounting to WasmEdge_ConfigureStatisticsSetInstructionCounting.WasmEdge_ConfigureCompilerSetCostMeasuring to WasmEdge_ConfigureStatisticsSetCostMeasuring.WasmEdge_ConfigureCompilerSetTimeMeasuring to WasmEdge_ConfigureStatisticsSetTimeMeasuring.WasmEdge_ConfigureCompilerGetInstructionCounting to WasmEdge_ConfigureStatisticsGetInstructionCounting.WasmEdge_ConfigureCompilerGetCostMeasuring to WasmEdge_ConfigureStatisticsGetCostMeasuring.WasmEdge_ConfigureCompilerGetTimeMeasuring to WasmEdge_ConfigureStatisticsGetTimeMeasuring.Dirs and DirLen parameters in the WasmEdge_ImportObjectCreateWASI.Dirs and DirLen parameters in the WasmEdge_ImportObjectInitWASI.Features:
disable-import-export-mut-globals to disable the Import/Export mutable globals proposal in wasmedge and wasmedgec.disable-non-trap-float-to-int to disable the Non-trapping float-to-int conversions proposal in wasmedge and wasmedgec.disable-sign-extension-operators to disable the Sign-extension operators proposal in wasmedge and wasmedgec.disable-multi-value to disable the Multi-value proposal in wasmedge and wasmedgec.ImportTypeContext and ExportTypeContext from the ASTModuleContext.WasmEdge_ImportTypeContext.WasmEdge_ExportTypeContext.WasmEdge_ASTModuleListImportsLength function can query the imports list length from an AST module context.WasmEdge_ASTModuleListExportsLength function can query the exports list length from an AST module context.WasmEdge_ASTModuleListImports function can list all import types of an AST module context.WasmEdge_ASTModuleListExports function can list all export types of an AST module context.WasmEdge_ImportTypeGetExternalType function can get the external type of an import type context.WasmEdge_ImportTypeGetModuleName function can get the import module name.WasmEdge_ImportTypeGetExternalName function can get the import external name.WasmEdge_ImportTypeGetFunctionType function can get the function type of an import type context.WasmEdge_ImportTypeGetTableType function can get the table type of an import type context.WasmEdge_ImportTypeGetMemoryType function can get the memory type of an import type context.WasmEdge_ImportTypeGetGlobalType function can get the global type of an import type context.WasmEdge_ExportTypeGetExternalType function can get the external type of an export type context.WasmEdge_ExportTypeGetExternalName function can get the export external name.WasmEdge_ExportTypeGetFunctionType function can get the function type of an export type context.WasmEdge_ExportTypeGetTableType function can get the table type of an export type context.WasmEdge_ExportTypeGetMemoryType function can get the memory type of an export type context.WasmEdge_ExportTypeGetGlobalType function can get the global type of an export type context.WasmEdge_ImportObjectWASIGetExitCode function can get the exit code from WASI after execution.WasmEdge_ConfigureCompilerSetOutputFormat function can set the AOT compiler output format.WasmEdge_ConfigureCompilerGetOutputFormat function can get the AOT compiler output format.WasmEdge_ConfigureCompilerSetGenericBinary function can set the option of AOT compiler generic binary output.WasmEdge_ConfigureCompilerIsGenericBinary function can get the option of AOT compiler generic binary output.Fixed issues:
WasmEdge_String creation.VM creation issue.
sock_accept.Refactor:
genNullRef().common.common/values.h into common/types.h.loader.validator, executor, runtime, api, and vm for the AST node changes.AST::FunctionType, AST::TableType, AST::MemoryType, and AST::GlobalType for instance creation and member handling.Runtime::Instance::FType and used AST::FunctionType instead.StoreManager. Used the getter from ModuleInstance instead.StoreManager.Documentations:
wasmedge commands in the Run and SIMD documentationBindings:
bindings/rust.Tests:
ErrInfo unit tests.AST unit tests into loader.Interpreter tests into Executor folder.ExternRef tests.Misc:
assuming for assert checking to help compiler to generate better codes.Thank all the contributors that made this release possible!
2021, actly, alabulei1, Alex, Antonio Yang, Ashutosh Sharma, Avinal Kumar, blackanger, Chojan Shang, dm4, eee4017, fossabot, hydai, Jayita Pramanik, Kenvi Zhu, luishsu, LuisHsu, MaazKhan711635, Michael Yuan, MileyFu, Nick Hynes, O3Ol, Peter Chang, robnanarivo, Shen-Ta Hsieh, Shreyas Atre, slidoooor, Sylveon, Timothy McCallum, Vikas S Shetty, vincent, Xin Liu, Yi Huang, yiying, YiYing He, Yona, Yukang, 牟展佑
If you want to build from source, please use WasmEdge-0.9.0-src.tar.gz instead of the zip or tarball provided by GitHub directly.
Features:
libwasmedge_c.a (OFF by default).ErrCode to C declarations.WasmEdge_String to C string.WasmEdge_MemoryInstanceContext.--generic-binary to generate generic binaries and disable using host features.wasmedge-sys and wasmedge-rs crates.Fixed issues:
--dir guest_path:host_path.wasi_snapshot_preview1::path_read_link
Out comments for parameters with receiving outputs.wasi_snapshot_preview1::path_filestat_set_times
u64.Misc:
WASMEDGE_FORCE_DISABLE_LTO to forcibly disable link time optimization (OFF by default).
WASMEDGE_FORCE_DISABLE_LTO option.dpkg-dev in docker images to enable dpkg-shlibdeps when creating the deb release.Refactor:
Documentations:
printf type in the C API document.Tests:
WasmEdge_String copy tests.WasmEdge_MemoryInstanceContext get data pointer tests.Features:
wasmedge_process module.
WasmEdge_ImportObjectCreateWasmEdgeProcess() can create and initialize the wasmedge_process import object.WasmEdge_ImportObjectInitWasmEdgeProcess() can initialize the given wasmedge_process import object.MMap for Linux.
mmap with MAP_NORESERVE for overcommited allocation.MMap for file loading.FileMgr variants into one class.Fixed issues:
Refactor:
11.1.0.11.1.0.1.76.Configure class.Unexpected end loading malformed test cases.
setSectionSize function to specify the reading boundary before the end of the file.std::filesystem.Documentations:
SSVM related projects into WasmEdge.Tools:
wasmedgec AOT compiler tool for API changes of the Configure.Tests:
assert_malformed tests for WASM binary in spec tests.
Configure APIs.Breaking changes:
WasmEdge (formerly ssvm).
wasmedge is the WebAssembly runtime (formerly ssvm).wasmedgec is the WebAssembly AOT compiler (formerly ssvmc).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.reference-types and bulk-memory-operations proposals by default in tools.
disable-bulk-memory to disable the bulk-memory-operations proposal in wasmedge and wasmedgec.disable-reference-types to disable the reference-types proposal in wasmedge and wasmedgec.Features:
WasmEdge C API and shared library.
wasmedge.h and link the libwasmedge_c.so for compiling and running WASM.BUILD_SHARED_LIB to enable compiling the shared library (ON by default).BUILD_AOT_RUNTIME is set as OFF.common/version.h: define the package version from cmake.Configure.
reference-types and bulk-memory-operations proposals by default.Log to enable the debug logging level.PO.StoreManager to list the registered module names.TableInstance to grow table with ref.null.SIMD implementation with the newest SIMD proposal.AOT compile cache.
blake3 hash calculator to calculate hash for caching files.VM for loading WASM module from AST::Module.Fixed issues:
CMAKE_CURRENT_SOURCE_DIR in this project for supporting to be as a submodule.0.0.0-unreleased) when getting the version from git describe failed.boost include variable names.WASI poll_oneoff.
SIGINT and SIGTERM while waiting for the file descriptor and check SIGTERM after epoll.AOT compiler.Validator errors.
br_table for pushing wrong types into validation stack.global_set for iterating illegal indices.Interpreter errors.
ErrCode::ExecutionFailed when invoking the host functions.ErrCode::Terminated occurs.MemoryInstance.Refactor:
CostTable class into Statistics.
1 by default.Proposal and HostRegistration configurations into Configure.
Proposal order.Configure in Loader, Validator, Interpreter, and VM instead of passing by reference.StoreManager.
std::variant to save space in FunctionInstance.Interpreter.Interpreter.const quantifier in get and load data functions of MemoryInstance.Documentations:
wasi_ephemeral_sock APIs from wasi_snapshot_preview1.Tools:
wasmedge: WebAssembly runtime (formerly ssvm)
bulk-memory-operations and reference-types proposals by default.
disable-bulk-memory to disable the bulk-memory-operations proposal.disable-reference-types to disable the reference-types proposal.vm API changes.WASI.wasmedgec: WebAssembly AOT compiler (formerly ssvmc)
bulk-memory-operations and reference-types proposals by default.
disable-bulk-memory to disable the bulk-memory-operations proposal when compiling.disable-reference-types to disable the reference-types proposal when compiling.Tests:
SIMD test data.WasmEdge 0.8.0, we use the wasm-dev-0.8.0 tag for the core tests and the SIMD proposal tests.SpecTest class.spectest host function definitions for importing repeatedly.WasmEdge C API tests.
WasmEdge shared library.WasmEdge shared library in both using Interpreter APIs and VM APIs.Features:
easylogging++ to v9.97.0.
WASI host functions for old system (CentOS 6).
WASI subscription insterface.pipe for old GLIBC.PO.ssvm_process in ssvm tool.
--allow-command COMMAND to add a command into white list in ssvm_process host functions.--allow-command-all to allow all commands in ssvm_process host functions.Fixed issues:
file manager.
readBytes.LEB128 and ULEB128 decoding and error codes.ssvm_process host functions.
Refactor:
std::unique_ptr in AST nodes.OpCode::Else instruction.If, Block, and Loop instructions.OpCode and value type validation of proposal configuration checking to loader phase.Label in stack manager.
Label will record the from instruction iterator that causes entering this label.next instruction getter in stack manager.interpreter.
program counter to iterate and execute the instructions.OpCode.AOT related proxy codes and helper functions in interpreter to dependent files.Tools:
binfmt supporting for WASM interpreter.
tools/ssvm/ssvm-static with the same arguments as ssvm.manylinux* support for legacy operatoring systems
manylinux1 is based on CentOS 5.9manylinux2010 is based on CentOS 6manylinux2014 is based on CentOS 7Tests:
LEB128 and ULEB128 decoding.PO tests.ssvm_process tests.Features:
ssvm and ssvmr tools.
ON in default.cmake -DBUILD_TOOLS=Off to disable the compilation of tools/ssvm folder when building.--enable-bulk-memory to enable bulk-memory operations proposal.--enable-reference-types to enable reference types proposal.--enable-simd to enable SIMD proposal.--enable-all to enable all supported proposals.roundeven intrinsic in LLVM 11.Fixed issues:
std::filesystem::path for all paths.call_indirect table index checking in the validation phase.reinterpret_cast in interpreter.terminated case.linkcount to u64.Refactor:
uint128_t into SSVM::ValVariant.
v128.SSVM::RefVariant for 64bit-width reference variant.trunc instructions for readability.Tools:
ssvmr tool, since the functionalities are the same as ssvm tool.
tools/ssvm/ssvm with the same arguments.tools/ssvm-aot are moved into tools/ssvm now.Tests:
args functions.environ functions.clock functions.proc_exit and random_get.Features:
Refactor:
stack manager.OpCode::End instruction.std::bitset for VM configuration.std::array for cost table storage.include/support into include/common.
support/castng.h into common/types.h.Measurement into Statistics.support/time.h into common/timer.h. Used standard steady clock instead.common/ast.h into common/astdef.h.common/ast/ to ast/.SSVM::Support namespace.Tests:
Features:
funcref conversions.externref conversions.data count section, data segment, and element segment.data segment and element segment.data instance and element instance.Refactor:
ValType is updated to include NumType and RefType.NumType is updated to include i32, i64, f32, and f64.RefType is updated to include funcref and externref, which replaced the ElemType.datas, elements, and refs.memory instance.table instance.module instance for placing data instance and element instance.store for owning data instance and element instance.interpreter.Tests:
funcref and externref types parameters in core tests.externref tests for testing object binding and samples.
Features:
Features:
Refactor:
memory instance, instead of preserving 4G at once.Fixed Issues:
ssvm_process error handling when execution commands.
Tests:
This is a bug-fix release for the ssvm_process component.
Fixed Issues:
ssvm_process.Features:
ssvmc.SSVM_Process configuration.
ssvm_process host modules.ssvm_process host functions are SSVM extension for executing commands.rust_process_interface_library crate..SSVM_Process configuration in both ssvmr and ssvm.Refactor:
mprotect memory boundary checking in memory instance.Fixed Issues:
Features:
ssvmr and ssvm.Refactor:
vector instead of deque in Validator.Fixed Issues:
SIGINT when ssvm is forced interrupted.Tests:
Tools:
ssvm interpreter.
ssvm provides interpreter mode of executing wasm.ssvm is the same as ssvmr.STATIC_BUILD mode for linking std::filesystem statically.This is a bug-fix release for the warnings.
Fixed Issues:
-Wall.-Wall flag in CMakeFile.Refactor:
This is a bug-fix release for the wasi component.
Fixed Issues:
Features:
multi-value return proposal.signed extension and saturated convert instructions.
assert_invalid tests--env option for environment variables.PATH=/usr/bin, SHELL=ZSH.--dir option for preopens directories./sandbox:/real/path, /sandbox2:/real/path2.us. (= Wasm instruction execution time + Host function execution time)us.us. A host function can be a evmc function like evmc::storage_get, a wasi function like random_get, or any customized host function.Refactor:
Fixed Issues:
-Wreorder warnings in errinfo.hTools:
Features:
Refactor:
span features instead of std::vector &.std::string_view for passing strings.nullptr.Fixed Issues:
Features:
SSVM_DISABLE_AOT_RUNTIME to disable building ahead of time compilation mode.Tools:
Refactor:
span features in host functions.expected.CMakeFile to support recursively copying.Store for invoking instead of the exported function name.Expect instead of ErrCode in host functions.Expect class rather than in function parameter.Store.executor and use interpreter instead.ExpVM to VM and removed the old one.VM to all tools.nearestint instructions.Fixed Issues:
export section checking to support "" function name.table instance.data and element sections.memory and table instances boundary according to Wasm spec.memory and table instances until all checkings were done.loop instruction.trunc and clz instructions.div instruction in both integer and floating-point inputs.NaN operand in min and max instructions.memory instructions.mod instructions.NaN operand in min and max instructions.Tests:
ssvm-evmc tests.span feature.Deprecated:
SSVM 0.5.1 is a bug-fix release from 0.5.0.
Features:
Store for importing.globals, can be registered into Store.Store for external access.Refactor:
common namespace for cross-component data structures and type definitions.common.common.common.expected featuresAST object directly.AST object and return the results.validator/vm to formchecker.instances, host functions, stack manager, and store manager classes to runtime folder.frame, label, and value entry classes into stack manager.stack manager. All of these checks are verified in the validation stage.ImportObj class for handling the host modules registration.interpreter namespace.executor class to interpreter.host namespace.EEI, Wasi-core, and ONNC host functions to host.host environments from environment manager to respective host modules.runWasmFile can instantiate and invoke a wasm function directly.loadWasm, validate, instantiate, execute sequentially can make developers control the workflow manually.exported wasm functions.Store.host environments of EEI and Wasi-core into respective host modules.ssvm-proxy and ssvm-evmc tools.Tools:
ssvm-evm is replaced by ssvm-evmc.ssvm-aot
ssvm-aot provides ahead-of-time(AOT) compilation mechanism for general wasm applications.Tests:
ssvm-evm tests.ssvm-aot.expected feature.AST tests to the test top folder.Fixed issues:
fail instead of revert when the execution state is out of gas.globals.Features:
Refactor:
Tools:
Tests:
Fixed issues:
vm_snapshot.Fixed issues:
argument_types and return_types in input JSON format.Features:
Tools:
Features:
Tools:
Features:
Runtime:
Test: