Releases: WasmEdge/WasmEdge
WasmEdge 0.14.0-rc.5
0.14.0-rc.5 (2024-05-08)
Breaking changes:
- [Version]: Bump the version of the WasmEdge shared library.
- Due to the breaking change of API, bump the
SOVERSION
to0.1.0
. - Due to the breaking change of API, bump the plug-in
API_VERSION
to3
.
- Due to the breaking change of API, bump the
- [C API]: Changes for applying Typed Function References Proposal.
- New
WasmEdge_ValType
structure for replacingenum WasmEdge_ValType
.- Merge the
enum WasmEdge_ValType
andenum WasmEdge_RefType
into theenum WasmEdge_TypeCode
.
- Merge the
- Refactored the error code. The error code number may different from previous versions.
- Extend the error code to 2 bytes.
- Updated the related APIs for using
enum WasmEdge_ValType
as parameters.WasmEdge_FunctionTypeCreate()
WasmEdge_FunctionTypeGetParameters()
WasmEdge_FunctionTypeGetReturns()
WasmEdge_TableTypeCreate()
WasmEdge_TableTypeGetRefType()
WasmEdge_GlobalTypeCreate()
WasmEdge_GlobalTypeGetValType()
- Removed
WasmEdge_ValueGenNullRef()
API. - Due to non-defaultable values after this proposal, the following APIs return the result instead of void.
WasmEdge_GlobalInstanceSetValue()
- Introduced the
WasmEdge_Bytes
structure.- This structure is for packaging the
uint8_t
buffers. The oldFromBuffer
related APIs will be replaced by the corresponding APIs in the future versions. WasmEdge_CompilerCompileFromBytes()
API has the same function asWasmEdge_CompilerCompileFromBuffer()
and will replace it in the future.WasmEdge_LoaderParseFromBytes()
API has the same function asWasmEdge_LoaderParseFromBuffer()
and will replace it in the future.WasmEdge_VMRegisterModuleFromBytes()
API has the same function asWasmEdge_VMRegisterModuleFromBuffer()
and will replace it in the future.WasmEdge_VMRunWasmFromBytes()
API has the same function asWasmEdge_VMRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMAsyncRunWasmFromBytes()
API has the same function asWasmEdge_VMAsyncRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMLoadWasmFromBytes()
API has the same function asWasmEdge_VMLoadWasmFromBuffer()
and will replace it in the future.
- This structure is for packaging the
- New APIs for WASM Exception-Handling proposal.
- Added the
WasmEdge_TagTypeContext
struct. - Added the
WasmEdge_TagInstanceContext
struct. - Added the
WasmEdge_TagTypeGetFunctionType()
API for retrieving the function type from a tag type. - Added the
WasmEdge_ImportTypeGetTagType()
API for retrieving the tag type from an import type. - Added the
WasmEdge_ExportTypeGetTagType()
API for retrieving the tag type from an export type. - Added the
WasmEdge_ModuleInstanceFindTag()
API for finding an exported tag instance from a module instance. - Added the
WasmEdge_ModuleInstanceListTagLength()
andWasmEdge_ModuleInstanceListTag()
APIs for listing the exported tag instances of a module instance.
- Added the
- New
- Refactored the
OpCode
mechanism for speeding up and supporting WASM multi-bytes instruction OpCodes.
Features:
- Bumpped
spdlog
tov1.13.0
. - Bumpped
simdjson
tov3.9.1
. - [Proposal]: Apply new propoals.
- Supported WASM Typed Function References proposal.
- Added the
WasmEdge_Proposal_FunctionReferences
for the configuration in WasmEdge C API. - Users can use the
--enable-function-reference
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Supported WASM GC proposal (interpreter only).
- Added the
WasmEdge_Proposal_GC
for the configuration in WasmEdge C API. - Users can use the
--enable-gc
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Supported WASM Exception-Handling proposal (interpreter only).
- Added the
WasmEdge_Proposal_ExceptionHandling
for the configuration in WasmEdge C API. - Users can use the
--enable-exception-handling
to enable the proposal inwasmedge
andwasmedgec
tools. - This proposal supports old deprecated
try
,catch
, andcatch_all
instructions, and will remove them in the future version.
- Added the
- Component Model proposal (experimental, loader phase only).
- Added the
WasmEdge_Proposal_Component
for the configuration in WasmEdge C API. - Users can use the
--enable-component
to enable the proposal inwasmedge
tool.
- Added the
- Supported WASM Typed Function References proposal.
- [JIT]: Support LLVM JIT.
- [C API]: New C API for supporting the new proposals.
WasmEdge_ValType
related APIs can help developers to generate or compare value types.WasmEdge_ValTypeGenI32()
(replacingWasmEdge_ValType_I32
)WasmEdge_ValTypeGenI64()
(replacingWasmEdge_ValType_I64
)WasmEdge_ValTypeGenF32()
(replacingWasmEdge_ValType_F32
)WasmEdge_ValTypeGenF64()
(replacingWasmEdge_ValType_F64
)WasmEdge_ValTypeGenV128()
(replacingWasmEdge_ValType_V128
)WasmEdge_ValTypeGenFuncRef()
(replacingWasmEdge_ValType_FuncRef
)WasmEdge_ValTypeGenExternRef()
(replacingWasmEdge_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.
- [Serializer]: Supported WASM module serialization (experimental).
- This is the API-level feature. Developers can use the
WasmEdge_LoaderSerializeASTModule()
API to serialize a loaded WASM module into bytes.
- This is the API-level feature. Developers can use the
- [Tools]: Print the plug-in versions when using the
--version
option. - [Installer]: Enabled
ggml-blas
andrustls
plugin supporting (#3032) (#3108). - [WASI-NN] ggml backend:
- Bump llama.cpp to b2781.
- Support llama.cpp options:
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.
- Add
enable-debug-log
option to show more debug information. - Default enable Metal on macOS.
- Introduce
load_by_name_with_config()
to load model with metadata. - Introduce single token inference by
compute_single
,get_output_single
, andfini_single
- Introduce
unload()
function to release the model. - Add some llama errors to WASI-NN.
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.
- Support Llava and Gemma inference.
- Add
mmproj
option to set the projection model. - Add
image
option to set the image.
- Add
- Improve logging mechanism.
- Show the version of
llama.cpp
in the metadata. - Support Phi-3-Mini model.
- Support embedding generation.
- Support Windows build.
- [Plugin] Initial support for
wasmedge_ffmpeg
plug-in.
Fixed issues:
- Fixed some API document in the API header.
- [Executor]: Minor fixes.
- Fixed integer overflow on
memGrow
boundary check. - Refined the slice copy in table instances.
- Cleaned the unused bits of WASM return values to avoid security issues.
- Fixed integer overflow on
- [WASI]: Minor fixes.
- Fixed the function signature matching for WASI imports when backwarding supporting older version. (#3073)
- Fixed large timestamp causing overflow (#3106).
- Handle HUP only events.
- Checking same file descriptor for
fd_renumber
(#3040). - Fixed
path_unlink_file
for trailing slash path. - Fixed
path_readlink
for not following symbolic link issue. - Fixed
path_open
for checkingO_TRUNC
rights. - Fixed
path_open
for removing path relative rights on file. - Checking
path_symlink
for creating a symlink to an absolute path. - Checking
fd_prestat_dir_name
buffer size. - Checking
filestat_set_times
for invalid flags. - Checking validation of file descriptor in
socket_accept
(#3041).
- Fixed duplicated loading of the same plug-in.
- Fixed option toggle for
wasmedge_process
plug-in.
Tests:
- Updated the WASM spec tests to the date 2024/02/17.
- Updated the spec tests for the Exception Handling proposal.
- Added the spec tests for the Typed Function Reference proposal.
- Added the spec tests for the GC proposal.
Known issues:
- Universal WASM format failed on macOS platforms.
- In the current status, the universal WASM format output of the AOT compiler with the
O1
or upper optimizations on MacOS platforms will cause a bus error during execution. - We are trying to fix this issue. For a working around, please use the
--optimize=0
to set the compiler optimization level toO0
inwasmedgec
CLI.
- In the current status, the universal WASM format output of the AOT compiler with the
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, 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-rc.5-src.tar.gz instead of the zip or tarball provided by GitH...
WasmEdge 0.14.0-alpha.4
0.14.0-alpha.4 (2024-04-29)
Breaking changes:
- [Version]: Bump the version of the WasmEdge shared library.
- Due to the breaking change of API, bump the
SOVERSION
to0.1.0
. - Due to the breaking change of API, bump the plug-in
API_VERSION
to3
.
- Due to the breaking change of API, bump the
- [C API]: Changes for applying Typed Function References Proposal.
- New
WasmEdge_ValType
structure for replacingenum WasmEdge_ValType
.- Merge the
enum WasmEdge_ValType
andenum WasmEdge_RefType
into theenum WasmEdge_TypeCode
.
- Merge the
- Refactored the error code. The error code number may different from previous versions.
- Extend the error code to 2 bytes.
- Updated the related APIs for using
enum WasmEdge_ValType
as parameters.WasmEdge_FunctionTypeCreate()
WasmEdge_FunctionTypeGetParameters()
WasmEdge_FunctionTypeGetReturns()
WasmEdge_TableTypeCreate()
WasmEdge_TableTypeGetRefType()
WasmEdge_GlobalTypeCreate()
WasmEdge_GlobalTypeGetValType()
- Removed
WasmEdge_ValueGenNullRef()
API. - Due to non-defaultable values after this proposal, the following APIs return the result instead of void.
WasmEdge_GlobalInstanceSetValue()
- Introduced the
WasmEdge_Bytes
structure.- This structure is for packaging the
uint8_t
buffers. The oldFromBuffer
related APIs will be replaced by the corresponding APIs in the future versions. WasmEdge_CompilerCompileFromBytes()
API has the same function asWasmEdge_CompilerCompileFromBuffer()
and will replace it in the future.WasmEdge_LoaderParseFromBytes()
API has the same function asWasmEdge_LoaderParseFromBuffer()
and will replace it in the future.WasmEdge_VMRegisterModuleFromBytes()
API has the same function asWasmEdge_VMRegisterModuleFromBuffer()
and will replace it in the future.WasmEdge_VMRunWasmFromBytes()
API has the same function asWasmEdge_VMRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMAsyncRunWasmFromBytes()
API has the same function asWasmEdge_VMAsyncRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMLoadWasmFromBytes()
API has the same function asWasmEdge_VMLoadWasmFromBuffer()
and will replace it in the future.
- This structure is for packaging the
- New APIs for WASM Exception-Handling proposal.
- Added the
WasmEdge_TagTypeContext
struct. - Added the
WasmEdge_TagInstanceContext
struct. - Added the
WasmEdge_TagTypeGetFunctionType()
API for retrieving the function type from a tag type. - Added the
WasmEdge_ImportTypeGetTagType()
API for retrieving the tag type from an import type. - Added the
WasmEdge_ExportTypeGetTagType()
API for retrieving the tag type from an export type. - Added the
WasmEdge_ModuleInstanceFindTag()
API for finding an exported tag instance from a module instance. - Added the
WasmEdge_ModuleInstanceListTagLength()
andWasmEdge_ModuleInstanceListTag()
APIs for listing the exported tag instances of a module instance.
- Added the
- New
- Refactored the
OpCode
mechanism for speeding up and supporting WASM multi-bytes instruction OpCodes.
Features:
- Bumpped
spdlog
tov1.13.0
. - Bumpped
simdjson
tov3.9.1
. - [Proposal]: Apply new propoals.
- Supported WASM Typed Function References proposal.
- Added the
WasmEdge_Proposal_FunctionReferences
for the configuration in WasmEdge C API. - Users can use the
--enable-function-reference
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Supported WASM GC proposal (interpreter only).
- Added the
WasmEdge_Proposal_GC
for the configuration in WasmEdge C API. - Users can use the
--enable-gc
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Supported WASM Exception-Handling proposal (interpreter only).
- Added the
WasmEdge_Proposal_ExceptionHandling
for the configuration in WasmEdge C API. - Users can use the
--enable-exception-handling
to enable the proposal inwasmedge
andwasmedgec
tools. - This proposal supports old deprecated
try
,catch
, andcatch_all
instructions, and will remove them in the future version.
- Added the
- Component Model proposal (experimental, loader phase only).
- Added the
WasmEdge_Proposal_Component
for the configuration in WasmEdge C API. - Users can use the
--enable-component
to enable the proposal inwasmedge
tool.
- Added the
- Supported WASM Typed Function References proposal.
- [JIT]: Support LLVM JIT.
- [C API]: New C API for supporting the new proposals.
WasmEdge_ValType
related APIs can help developers to generate or compare value types.WasmEdge_ValTypeGenI32()
(replacingWasmEdge_ValType_I32
)WasmEdge_ValTypeGenI64()
(replacingWasmEdge_ValType_I64
)WasmEdge_ValTypeGenF32()
(replacingWasmEdge_ValType_F32
)WasmEdge_ValTypeGenF64()
(replacingWasmEdge_ValType_F64
)WasmEdge_ValTypeGenV128()
(replacingWasmEdge_ValType_V128
)WasmEdge_ValTypeGenFuncRef()
(replacingWasmEdge_ValType_FuncRef
)WasmEdge_ValTypeGenExternRef()
(replacingWasmEdge_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.
- [Serializer]: Supported WASM module serialization (experimental).
- This is the API-level feature. Developers can use the
WasmEdge_LoaderSerializeASTModule()
API to serialize a loaded WASM module into bytes.
- This is the API-level feature. Developers can use the
- [Tools]: Print the plug-in versions when using the
--version
option. - [Installer]: Enabled
ggml-blas
andrustls
plugin supporting (#3032) (#3108). - [WASI-NN] ggml backend:
- Bump llama.cpp to b2734.
- Support llama.cpp options:
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.
- Add
enable-debug-log
option to show more debug information. - Default enable Metal on macOS.
- Introduce
load_by_name_with_config()
to load model with metadata. - Introduce single token inference by
compute_single
,get_output_single
, andfini_single
- Introduce
unload()
function to release the model. - Add some llama errors to WASI-NN.
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.
- Support Llava and Gemma inference.
- Add
mmproj
option to set the projection model. - Add
image
option to set the image.
- Add
- Improve logging mechanism.
- Show the version of
llama.cpp
in the metadata. - Support Phi-3-Mini model.
- Support embedding generation.
- Support Windows build.
- [Plugin] Initial support for
wasmedge_ffmpeg
plug-in.
Fixed issues:
- Fixed some API document in the API header.
- [Executor]: Minor fixes.
- Fixed integer overflow on
memGrow
boundary check. - Refined the slice copy in table instances.
- Cleaned the unused bits of WASM return values to avoid security issues.
- Fixed integer overflow on
- [WASI]: Minor fixes.
- Fixed the function signature matching for WASI imports when backwarding supporting older version. (#3073)
- Fixed large timestamp causing overflow (#3106).
- Handle HUP only events.
- Checking same file descriptor for
fd_renumber
(#3040). - Fixed
path_unlink_file
for trailing slash path. - Fixed
path_readlink
for not following symbolic link issue. - Fixed
path_open
for checkingO_TRUNC
rights. - Fixed
path_open
for removing path relative rights on file. - Checking
path_symlink
for creating a symlink to an absolute path. - Checking
fd_prestat_dir_name
buffer size. - Checking
filestat_set_times
for invalid flags. - Checking validation of file descriptor in
socket_accept
(#3041).
- Fixed duplicated loading of the same plug-in.
- Fixed option toggle for
wasmedge_process
plug-in.
Tests:
- Updated the WASM spec tests to the date 2024/02/17.
- Updated the spec tests for the Exception Handling proposal.
- Added the spec tests for the Typed Function Reference proposal.
- Added the spec tests for the GC proposal.
Known issues:
- Universal WASM format failed on macOS platforms.
- In the current status, the universal WASM format output of the AOT compiler with the
O1
or upper optimizations on MacOS platforms will cause a bus error during execution. - We are trying to fix this issue. For a working around, please use the
--optimize=0
to set the compiler optimization level toO0
inwasmedgec
CLI.
- In the current status, the universal WASM format output of the AOT compiler with the
Thank all the contributors who made this release possible!
Abhinandan Udupa, Akihiro Suda, Charlie chan, Dhruv Jain, Draco, Hrushikesh, Ikko Eltociear Ashimine, Khagan (Khan) Karimov, LO, CHIN-HAO, Little Willy, Lîm Tsú-thuàn, Meenu Yadav, Omkar Acharekar, Saiyam Pathak, Sarrah Bastawala, Shen-Ta Hsieh, Shreyas Atre, Yage Hu, Yi Huang, Yi-Ying He, alabulei1, am009, dm4, hetvishastri, hydai, redismongo, richzw, tannal, vincent, zhumeme
If you want to build from source, please use WasmEdge-0.14.0-alpha.4-src.tar.gz instead of the zip or tarball provided by GitHub directly.
WasmEdge 0.14.0-rc.4
0.14.0-rc.4 (2024-04-03)
Breaking changes:
- [Version]: Bump the version of the WasmEdge shared library.
- Due to the breaking change of API, bump the
SOVERSION
to0.1.0
. - Due to the breaking change of API, bump the plug-in
API_VERSION
to3
.
- Due to the breaking change of API, bump the
- [C API]: Changes for applying Typed Function References Proposal.
- New
WasmEdge_ValType
structure for replacingenum WasmEdge_ValType
.- Merge the
enum WasmEdge_ValType
andenum WasmEdge_RefType
into theenum WasmEdge_TypeCode
.
- Merge the
- Refactored the error code. The error code number may different from previous versions.
- Extend the error code to 2 bytes.
- Updated the related APIs for using
enum WasmEdge_ValType
as parameters.WasmEdge_FunctionTypeCreate()
WasmEdge_FunctionTypeGetParameters()
WasmEdge_FunctionTypeGetReturns()
WasmEdge_TableTypeCreate()
WasmEdge_TableTypeGetRefType()
WasmEdge_GlobalTypeCreate()
WasmEdge_GlobalTypeGetValType()
- Removed
WasmEdge_ValueGenNullRef()
API. - Due to non-defaultable values after this proposal, the following APIs return the result instead of void.
WasmEdge_GlobalInstanceSetValue()
- Introduced the
WasmEdge_Bytes
structure.- This structure is for packaging the
uint8_t
buffers. The oldFromBuffer
related APIs will be replaced by the corresponding APIs in the future versions. WasmEdge_CompilerCompileFromBytes()
API has the same function asWasmEdge_CompilerCompileFromBuffer()
and will replace it in the future.WasmEdge_LoaderParseFromBytes()
API has the same function asWasmEdge_LoaderParseFromBuffer()
and will replace it in the future.WasmEdge_VMRegisterModuleFromBytes()
API has the same function asWasmEdge_VMRegisterModuleFromBuffer()
and will replace it in the future.WasmEdge_VMRunWasmFromBytes()
API has the same function asWasmEdge_VMRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMAsyncRunWasmFromBytes()
API has the same function asWasmEdge_VMAsyncRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMLoadWasmFromBytes()
API has the same function asWasmEdge_VMLoadWasmFromBuffer()
and will replace it in the future.
- This structure is for packaging the
- New
Features:
- Bumpped
spdlog
tov1.13.0
. - [Proposal]: Apply new propoals.
- Supported WASM Typed Function References proposal.
- Added the
WasmEdge_Proposal_FunctionReferences
for the configuration in WasmEdge C API. - Users can use the
--enable-function-reference
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Supported WASM GC proposal (interpreter only).
- Added the
WasmEdge_Proposal_GC
for the configuration in WasmEdge C API. - Users can use the
--enable-gc
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Component Model proposal (experimental, loader phase only).
- Added the
WasmEdge_Proposal_Component
for the configuration in WasmEdge C API. - Users can use the
--enable-component
to enable the proposal inwasmedge
tool.
- Added the
- Supported WASM Typed Function References proposal.
- [JIT]: Support LLVM JIT.
- [C API]: New C API for supporting the new proposals.
WasmEdge_ValType
related APIs can help developers to generate or compare value types.WasmEdge_ValTypeGenI32()
(replacingWasmEdge_ValType_I32
)WasmEdge_ValTypeGenI64()
(replacingWasmEdge_ValType_I64
)WasmEdge_ValTypeGenF32()
(replacingWasmEdge_ValType_F32
)WasmEdge_ValTypeGenF64()
(replacingWasmEdge_ValType_F64
)WasmEdge_ValTypeGenV128()
(replacingWasmEdge_ValType_V128
)WasmEdge_ValTypeGenFuncRef()
(replacingWasmEdge_ValType_FuncRef
)WasmEdge_ValTypeGenExternRef()
(replacingWasmEdge_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.
- [Serializer]: Supported WASM module serialization (experimental).
- This is the API-level feature. Developers can use the
WasmEdge_LoaderSerializeASTModule()
API to serialize a loaded WASM module into bytes.
- This is the API-level feature. Developers can use the
- [Tools]: Print the plug-in versions when using the
--version
option. - [Installer]: Enabled
ggml-blas
andrustls
plugin supporting (#3032) (#3108). - [WASI-NN] ggml backend:
- Bump llama.cpp to b2534.
- Support llama.cpp options:
threads
: the thread number for inference.temp
: set temperature for inference.repeat-penalty
: set repeat penalty for inference.
- Add
enable-debug-log
option to show more debug information. - Default enable Metal on macOS.
- Introduce
load_by_name_with_config()
to load model with metadata. - Introduce single token inference by
compute_single
,get_output_single
, andfini_single
- Add some llama errors to WASI-NN.
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.
- Support Llava and Gemma inference.
- Add
mmproj
option to set the projection model. - Add
image
option to set the image.
- Add
- Support embedding generation.
- Support Windows build.
- [Plugin] Initial support for
wasmedge_ffmpeg
plug-in.
Fixed issues:
- Fixed some API document in the API header.
- [Executor]: Minor fixes.
- Fixed integer overflow on
memGrow
boundary check. - Refined the slice copy in table instances.
- Fixed integer overflow on
- [WASI]: Minor fixes.
- Fixed the function signature matching for WASI imports when backwarding supporting older version. (#3073)
- Fixed large timestamp causing overflow (#3106).
- Handle HUP only events.
- Checking same file descriptor for
fd_renumber
(#3040). - Fixed
path_unlink_file
for trailing slash path. - Fixed
path_readlink
for not following symbolic link issue. - Fixed
path_open
for checkingO_TRUNC
rights. - Fixed
path_open
for removing path relative rights on file. - Checking
path_symlink
for creating a symlink to an absolute path. - Checking
fd_prestat_dir_name
buffer size. - Checking
filestat_set_times
for invalid flags. - Checking validation of file descriptor in
socket_accept
(#3041).
- Fixed duplicated loading of the same plug-in.
- Fixed option toggle for
wasmedge_process
plug-in.
Tests:
- Updated the WASM spec tests to the date 2024/02/17.
- Added the spec tests for the Typed Function Reference proposal.
- Added the spec tests for the GC proposal.
Known issues:
- Universal WASM format failed on macOS platforms.
- In the current status, the universal WASM format output of the AOT compiler with the
O1
or upper optimizations on MacOS platforms will cause a bus error during execution. - We are trying to fix this issue. For a working around, please use the
--optimize=0
to set the compiler optimization level toO0
inwasmedgec
CLI.
- In the current status, the universal WASM format output of the AOT compiler with the
Thank all the contributors who made this release possible!
Abhinandan Udupa, Akihiro Suda, Charlie chan, Dhruv Jain, Draco, Hrushikesh, Ikko Eltociear Ashimine, Khagan (Khan) Karimov, LO, CHIN-HAO, Little Willy, Lîm Tsú-thuàn, Meenu Yadav, Omkar Acharekar, Saiyam Pathak, Sarrah Bastawala, Shen-Ta Hsieh, Shreyas Atre, Yage Hu, Yi Huang, Yi-Ying He, alabulei1, am009, dm4, hetvishastri, hydai, richzw, tannal, vincent, zhumeme
If you want to build from source, please use WasmEdge-0.14.0-rc.4-src.tar.gz instead of the zip or tarball provided by GitHub directly.
WasmEdge 0.14.0-rc.3
0.14.0-rc.3 (2024-03-22)
Breaking changes:
- [Version]: Bump the version of the WasmEdge shared library.
- Due to the breaking change of API, bump the
SOVERSION
to0.1.0
. - Due to the breaking change of API, bump the plug-in
API_VERSION
to3
.
- Due to the breaking change of API, bump the
- [C API]: Changes for applying Typed Function References Proposal.
- New
WasmEdge_ValType
structure for replacingenum WasmEdge_ValType
.- Merge the
enum WasmEdge_ValType
andenum WasmEdge_RefType
into theenum WasmEdge_TypeCode
.
- Merge the
- Refactored the error code. The error code number may different from previous versions.
- Extend the error code to 2 bytes.
- Updated the related APIs for using
enum WasmEdge_ValType
as parameters.WasmEdge_FunctionTypeCreate()
WasmEdge_FunctionTypeGetParameters()
WasmEdge_FunctionTypeGetReturns()
WasmEdge_TableTypeCreate()
WasmEdge_TableTypeGetRefType()
WasmEdge_GlobalTypeCreate()
WasmEdge_GlobalTypeGetValType()
- Removed
WasmEdge_ValueGenNullRef()
API. - Due to non-defaultable values after this proposal, the following APIs return the result instead of void.
WasmEdge_GlobalInstanceSetValue()
- Introduced the
WasmEdge_Bytes
structure.- This structure is for packaging the
uint8_t
buffers. The oldFromBuffer
related APIs will be replaced by the corresponding APIs in the future versions. WasmEdge_CompilerCompileFromBytes()
API has the same function asWasmEdge_CompilerCompileFromBuffer()
and will replace it in the future.WasmEdge_LoaderParseFromBytes()
API has the same function asWasmEdge_LoaderParseFromBuffer()
and will replace it in the future.WasmEdge_VMRegisterModuleFromBytes()
API has the same function asWasmEdge_VMRegisterModuleFromBuffer()
and will replace it in the future.WasmEdge_VMRunWasmFromBytes()
API has the same function asWasmEdge_VMRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMAsyncRunWasmFromBytes()
API has the same function asWasmEdge_VMAsyncRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMLoadWasmFromBytes()
API has the same function asWasmEdge_VMLoadWasmFromBuffer()
and will replace it in the future.
- This structure is for packaging the
- New
Features:
- Bumpped
spdlog
tov1.13.0
. - [Proposal]: Apply new propoals.
- Supported WASM Typed Function References proposal.
- Added the
WasmEdge_Proposal_FunctionReferences
for the configuration in WasmEdge C API. - Users can use the
--enable-function-reference
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Supported WASM GC proposal (interpreter only).
- Added the
WasmEdge_Proposal_GC
for the configuration in WasmEdge C API. - Users can use the
--enable-gc
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Component Model proposal (experimental, loader phase only).
- Added the
WasmEdge_Proposal_Component
for the configuration in WasmEdge C API. - Users can use the
--enable-function-reference
to enable the proposal inwasmedge
tool.
- Added the
- Supported WASM Typed Function References proposal.
- [JIT]: Support LLVM JIT.
- [C API]: New C API for supporting the new proposals.
WasmEdge_ValType
related APIs can help developers to generate or compare value types.WasmEdge_ValTypeGenI32()
(replacingWasmEdge_ValType_I32
)WasmEdge_ValTypeGenI64()
(replacingWasmEdge_ValType_I64
)WasmEdge_ValTypeGenF32()
(replacingWasmEdge_ValType_F32
)WasmEdge_ValTypeGenF64()
(replacingWasmEdge_ValType_F64
)WasmEdge_ValTypeGenV128()
(replacingWasmEdge_ValType_V128
)WasmEdge_ValTypeGenFuncRef()
(replacingWasmEdge_ValType_FuncRef
)WasmEdge_ValTypeGenExternRef()
(replacingWasmEdge_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.
- [Serializer]: Supported WASM module serialization (experimental).
- This is the API-level feature. Developers can use the
WasmEdge_LoaderSerializeASTModule()
API to serialize a loaded WASM module into bytes.
- This is the API-level feature. Developers can use the
- [Tools]: Print the plug-in versions when using the
--version
option. - [Installer]: Enabled
ggml-blas
andrustls
plugin supporting (#3032) (#3108). - [WASI-NN] ggml backend:
- Bump llama.cpp to b2479.
- Support llama.cpp options:
threads
: the thread number for inference.temp
: set temperature for inference.repeat-penalty
: set repeat penalty for inference.
- Add
enable-debug-log
option to show more debug information. - Default enable Metal on macOS.
- Introduce
load_by_name_with_config()
to load model with metadata. - Introduce single token inference by
compute_single
,get_output_single
, andfini_single
- Add some llama errors to WASI-NN.
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.
- Support Llava and Gemma inference.
- Add
mmproj
option to set the projection model. - Add
image
option to set the image.
- Add
- Support embedding generation.
- [Plugin] Initial support for
wasmedge_ffmpeg
plug-in.
Fixed issues:
- Fixed some API document in the API header.
- [Executor]: Minor fixes.
- Fixed integer overflow on
memGrow
boundary check. - Refined the slice copy in table instances.
- Fixed integer overflow on
- [WASI]: Minor fixes.
- Fixed the function signature matching for WASI imports when backwarding supporting older version. (#3073)
- Fixed large timestamp causing overflow (#3106).
- Handle HUP only events.
- Checking same file descriptor for
fd_renumber
(#3040). - Fixed
path_unlink_file
for trailing slash path. - Fixed
path_readlink
for not following symbolic link issue. - Fixed
path_open
for checkingO_TRUNC
rights. - Fixed
path_open
for removing path relative rights on file. - Checking
path_symlink
for creating a symlink to an absolute path. - Checking
fd_prestat_dir_name
buffer size. - Checking
filestat_set_times
for invalid flags. - Checking validation of file descriptor in
socket_accept
(#3041).
- Fixed duplicated loading of the same plug-in.
- Fixed option toggle for
wasmedge_process
plug-in.
Tests:
- Updated the WASM spec tests to the date 2023/10/26.
- Added the spec tests for the Typed Function Reference proposal.
Known issues:
- Universal WASM format failed on macOS platforms.
- In the current status, the universal WASM format output of the AOT compiler with the
O1
or upper optimizations on MacOS platforms will cause a bus error during execution. - We are trying to fix this issue. For a working around, please use the
--optimize=0
to set the compiler optimization level toO0
inwasmedgec
CLI.
- In the current status, the universal WASM format output of the AOT compiler with the
Thank all the contributors who made this release possible!
Abhinandan Udupa, Akihiro Suda, Charlie chan, Dhruv Jain, Draco, Hrushikesh, Ikko Eltociear Ashimine, Khagan (Khan) Karimov, LO, CHIN-HAO, Little Willy, Lîm Tsú-thuàn, Meenu Yadav, Omkar Acharekar, Saiyam Pathak, Sarrah Bastawala, Shen-Ta Hsieh, Shreyas Atre, Yage Hu, Yi Huang, Yi-Ying He, alabulei1, am009, dm4, hetvishastri, hydai, richzw, tannal, vincent, zhumeme
If you want to build from source, please use WasmEdge-0.14.0-rc.3-src.tar.gz instead of the zip or tarball provided by GitHub directly.
WasmEdge 0.14.0-rc.2
0.14.0-rc.2 (2024-03-20)
Breaking changes:
- [Version]: Bump the version of the WasmEdge shared library.
- Due to the breaking change of API, bump the
SOVERSION
to0.1.0
. - Due to the breaking change of API, bump the plug-in
API_VERSION
to3
.
- Due to the breaking change of API, bump the
- [C API]: Changes for applying Typed Function References Proposal.
- New
WasmEdge_ValType
structure for replacingenum WasmEdge_ValType
.- Merge the
enum WasmEdge_ValType
andenum WasmEdge_RefType
into theenum WasmEdge_TypeCode
.
- Merge the
- Refactored the error code. The error code number may different from previous versions.
- Extend the error code to 2 bytes.
- Updated the related APIs for using
enum WasmEdge_ValType
as parameters.WasmEdge_FunctionTypeCreate()
WasmEdge_FunctionTypeGetParameters()
WasmEdge_FunctionTypeGetReturns()
WasmEdge_TableTypeCreate()
WasmEdge_TableTypeGetRefType()
WasmEdge_GlobalTypeCreate()
WasmEdge_GlobalTypeGetValType()
- Removed
WasmEdge_ValueGenNullRef()
API. - Due to non-defaultable values after this proposal, the following APIs return the result instead of void.
WasmEdge_GlobalInstanceSetValue()
- Introduced the
WasmEdge_Bytes
structure.- This structure is for packaging the
uint8_t
buffers. The oldFromBuffer
related APIs will be replaced by the corresponding APIs in the future versions. WasmEdge_CompilerCompileFromBytes()
API has the same function asWasmEdge_CompilerCompileFromBuffer()
and will replace it in the future.WasmEdge_LoaderParseFromBytes()
API has the same function asWasmEdge_LoaderParseFromBuffer()
and will replace it in the future.WasmEdge_VMRegisterModuleFromBytes()
API has the same function asWasmEdge_VMRegisterModuleFromBuffer()
and will replace it in the future.WasmEdge_VMRunWasmFromBytes()
API has the same function asWasmEdge_VMRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMAsyncRunWasmFromBytes()
API has the same function asWasmEdge_VMAsyncRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMLoadWasmFromBytes()
API has the same function asWasmEdge_VMLoadWasmFromBuffer()
and will replace it in the future.
- This structure is for packaging the
- New
Features:
- Bumpped
spdlog
tov1.13.0
. - [Proposal]: Apply new propoals.
- Supported WASM Typed Function References proposal.
- Added the
WasmEdge_Proposal_FunctionReferences
for the configuration in WasmEdge C API. - Users can use the
--enable-function-reference
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Supported WASM GC proposal (interpreter only).
- Added the
WasmEdge_Proposal_GC
for the configuration in WasmEdge C API. - Users can use the
--enable-gc
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Component Model proposal (experimental, loader phase only).
- Added the
WasmEdge_Proposal_Component
for the configuration in WasmEdge C API. - Users can use the
--enable-component
to enable the proposal inwasmedge
tool.
- Added the
- Supported WASM Typed Function References proposal.
- [JIT]: Support LLVM JIT.
- [C API]: New C API for supporting the new proposals.
WasmEdge_ValType
related APIs can help developers to generate or compare value types.WasmEdge_ValTypeGenI32()
(replacingWasmEdge_ValType_I32
)WasmEdge_ValTypeGenI64()
(replacingWasmEdge_ValType_I64
)WasmEdge_ValTypeGenF32()
(replacingWasmEdge_ValType_F32
)WasmEdge_ValTypeGenF64()
(replacingWasmEdge_ValType_F64
)WasmEdge_ValTypeGenV128()
(replacingWasmEdge_ValType_V128
)WasmEdge_ValTypeGenFuncRef()
(replacingWasmEdge_ValType_FuncRef
)WasmEdge_ValTypeGenExternRef()
(replacingWasmEdge_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.
- [Serializer]: Supported WASM module serialization (experimental).
- This is the API-level feature. Developers can use the
WasmEdge_LoaderSerializeASTModule()
API to serialize a loaded WASM module into bytes.
- This is the API-level feature. Developers can use the
- [Tools]: Print the plug-in versions when using the
--version
option. - [Installer]: Enabled
ggml-blas
andrustls
plugin supporting (#3032) (#3108). - [WASI-NN] ggml backend:
- Bump llama.cpp to b2334.
- Support llama.cpp options:
threads
: the thread number for inference.temp
: set temperature for inference.repeat-penalty
: set repeat penalty for inference.
- Add
enable-debug-log
option to show more debug information. - Default enable Metal on macOS.
- Introduce
load_by_name_with_config()
to load model with metadata. - Introduce single token inference by
compute_single
,get_output_single
, andfini_single
- Add some llama errors to WASI-NN.
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.
- Support Llava and Gemma inference.
- Add
mmproj
option to set the projection model. - Add
image
option to set the image.
- Add
- Support embedding generation.
- [Plugin] Initial support for
wasmedge_ffmpeg
plug-in.
Fixed issues:
- Fixed some API document in the API header.
- [Executor]: Minor fixes.
- Fixed integer overflow on
memGrow
boundary check. - Refined the slice copy in table instances.
- Fixed integer overflow on
- [WASI]: Minor fixes.
- Fixed the function signature matching for WASI imports when backwarding supporting older version. (#3073)
- Fixed large timestamp causing overflow (#3106).
- Handle HUP only events.
- Checking same file descriptor for
fd_renumber
(#3040). - Fixed
path_unlink_file
for trailing slash path. - Fixed
path_readlink
for not following symbolic link issue. - Fixed
path_open
for checkingO_TRUNC
rights. - Fixed
path_open
for removing path relative rights on file. - Checking
path_symlink
for creating a symlink to an absolute path. - Checking
fd_prestat_dir_name
buffer size. - Checking
filestat_set_times
for invalid flags. - Checking validation of file descriptor in
socket_accept
(#3041).
- Fixed duplicated loading of the same plug-in.
- Fixed option toggle for
wasmedge_process
plug-in.
Tests:
- Updated the WASM spec tests to the date 2023/10/26.
- Added the spec tests for the Typed Function Reference proposal.
Known issues:
- Universal WASM format failed on macOS platforms.
- In the current status, the universal WASM format output of the AOT compiler with the
O1
or upper optimizations on MacOS platforms will cause a bus error during execution. - We are trying to fix this issue. For a working around, please use the
--optimize=0
to set the compiler optimization level toO0
inwasmedgec
CLI.
- In the current status, the universal WASM format output of the AOT compiler with the
Thank all the contributors who made this release possible!
Abhinandan Udupa, Akihiro Suda, Charlie chan, Dhruv Jain, Draco, Hrushikesh, Ikko Eltociear Ashimine, Khagan (Khan) Karimov, LO, CHIN-HAO, Little Willy, Lîm Tsú-thuàn, Meenu Yadav, Omkar Acharekar, Saiyam Pathak, Sarrah Bastawala, Shen-Ta Hsieh, Shreyas Atre, Yage Hu, Yi Huang, Yi-Ying He, alabulei1, am009, dm4, hetvishastri, hydai, richzw, tannal, vincent, zhumeme
If you want to build from source, please use WasmEdge-0.14.0-rc.2-src.tar.gz instead of the zip or tarball provided by GitHub directly.
WasmEdge 0.14.0-rc.1
0.14.0-rc.1 (2024-03-15)
Breaking changes:
- [Version]: Bump the version of the WasmEdge shared library.
- Due to the breaking change of API, bump the
SOVERSION
to0.1.0
. - Due to the breaking change of API, bump the plug-in
API_VERSION
to3
.
- Due to the breaking change of API, bump the
- [C API]: Changes for applying Typed Function References Proposal.
- New
WasmEdge_ValType
structure for replacingenum WasmEdge_ValType
.- Merge the
enum WasmEdge_ValType
andenum WasmEdge_RefType
into theenum WasmEdge_TypeCode
.
- Merge the
- Refactored the error code. The error code number may different from previous versions.
- Extend the error code to 2 bytes.
- Updated the related APIs for using
enum WasmEdge_ValType
as parameters.WasmEdge_FunctionTypeCreate()
WasmEdge_FunctionTypeGetParameters()
WasmEdge_FunctionTypeGetReturns()
WasmEdge_TableTypeCreate()
WasmEdge_TableTypeGetRefType()
WasmEdge_GlobalTypeCreate()
WasmEdge_GlobalTypeGetValType()
- Removed
WasmEdge_ValueGenNullRef()
API. - Due to non-defaultable values after this proposal, the following APIs return the result instead of void.
WasmEdge_GlobalInstanceSetValue()
- Introduced the
WasmEdge_Bytes
structure.- This structure is for packaging the
uint8_t
buffers. The oldFromBuffer
related APIs will be replaced by the corresponding APIs in the future versions. WasmEdge_CompilerCompileFromBytes()
API has the same function asWasmEdge_CompilerCompileFromBuffer()
and will replace it in the future.WasmEdge_LoaderParseFromBytes()
API has the same function asWasmEdge_LoaderParseFromBuffer()
and will replace it in the future.WasmEdge_VMRegisterModuleFromBytes()
API has the same function asWasmEdge_VMRegisterModuleFromBuffer()
and will replace it in the future.WasmEdge_VMRunWasmFromBytes()
API has the same function asWasmEdge_VMRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMAsyncRunWasmFromBytes()
API has the same function asWasmEdge_VMAsyncRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMLoadWasmFromBytes()
API has the same function asWasmEdge_VMLoadWasmFromBuffer()
and will replace it in the future.
- This structure is for packaging the
- New
Features:
- Bumpped
spdlog
tov1.13.0
. - [Proposal]: Apply new propoals.
- Supported WASM Typed Function References proposal.
- Added the
WasmEdge_Proposal_FunctionReferences
for the configuration in WasmEdge C API. - Users can use the
--enable-function-reference
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Supported WASM GC proposal (interpreter only).
- Added the
WasmEdge_Proposal_GC
for the configuration in WasmEdge C API. - Users can use the
--enable-gc
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Component Model proposal (experimental, loader phase only).
- Added the
WasmEdge_Proposal_Component
for the configuration in WasmEdge C API. - Users can use the
--enable-function-reference
to enable the proposal inwasmedge
tool.
- Added the
- Supported WASM Typed Function References proposal.
- [JIT]: Support LLVM JIT.
- [C API]: New C API for supporting the new proposals.
WasmEdge_ValType
related APIs can help developers to generate or compare value types.WasmEdge_ValTypeGenI32()
(replacingWasmEdge_ValType_I32
)WasmEdge_ValTypeGenI64()
(replacingWasmEdge_ValType_I64
)WasmEdge_ValTypeGenF32()
(replacingWasmEdge_ValType_F32
)WasmEdge_ValTypeGenF64()
(replacingWasmEdge_ValType_F64
)WasmEdge_ValTypeGenV128()
(replacingWasmEdge_ValType_V128
)WasmEdge_ValTypeGenFuncRef()
(replacingWasmEdge_ValType_FuncRef
)WasmEdge_ValTypeGenExternRef()
(replacingWasmEdge_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.
- [Serializer]: Supported WASM module serialization (experimental).
- This is the API-level feature. Developers can use the
WasmEdge_LoaderSerializeASTModule()
API to serialize a loaded WASM module into bytes.
- This is the API-level feature. Developers can use the
- [Tools]: Print the plug-in versions when using the
--version
option. - [Installer]: Enabled
ggml-blas
andrustls
plugin supporting (#3032) (#3108). - [WASI-NN] ggml backend:
- Bump llama.cpp to b2334.
- Support llama.cpp options:
threads
: the thread number for inference.temp
: set temperature for inference.repeat-penalty
: set repeat penalty for inference.
- Add
enable-debug-log
option to show more debug information. - Default enable Metal on macOS.
- Introduce
load_by_name_with_config()
to load model with metadata. - Introduce single token inference by
compute_single
,get_output_single
, andfini_single
- Add some llama errors to WASI-NN.
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.
- Support Llava and Gemma inference.
- Add
mmproj
option to set the projection model. - Add
image
option to set the image.
- Add
- Support embedding generation.
- [Plugin] Initial support for
wasmedge_ffmpeg
plug-in.
Fixed issues:
- Fixed some API document in the API header.
- [Executor]: Minor fixes.
- Fixed integer overflow on
memGrow
boundary check. - Refined the slice copy in table instances.
- Fixed integer overflow on
- [WASI]: Minor fixes.
- Fixed the function signature matching for WASI imports when backwarding supporting older version. (#3073)
- Fixed large timestamp causing overflow (#3106).
- Handle HUP only events.
- Checking same file descriptor for
fd_renumber
(#3040). - Fixed
path_unlink_file
for trailing slash path. - Fixed
path_readlink
for not following symbolic link issue. - Fixed
path_open
for checkingO_TRUNC
rights. - Fixed
path_open
for removing path relative rights on file. - Checking
path_symlink
for creating a symlink to an absolute path. - Checking
fd_prestat_dir_name
buffer size. - Checking
filestat_set_times
for invalid flags. - Checking validation of file descriptor in
socket_accept
(#3041).
- Fixed duplicated loading of the same plug-in.
- Fixed option toggle for
wasmedge_process
plug-in.
Tests:
- Updated the WASM spec tests to the date 2023/10/26.
- Added the spec tests for the Typed Function Reference proposal.
Known issues:
- Universal WASM format failed on macOS platforms.
- In the current status, the universal WASM format output of the AOT compiler with the
O1
or upper optimizations on MacOS platforms will cause a bus error during execution. - We are trying to fix this issue. For a working around, please use the
--optimize=0
to set the compiler optimization level toO0
inwasmedgec
CLI.
- In the current status, the universal WASM format output of the AOT compiler with the
Thank all the contributors who made this release possible!
Abhinandan Udupa, Akihiro Suda, Charlie chan, Dhruv Jain, Draco, Hrushikesh, Ikko Eltociear Ashimine, Khagan (Khan) Karimov, LO, CHIN-HAO, Little Willy, Lîm Tsú-thuàn, Meenu Yadav, Omkar Acharekar, Saiyam Pathak, Sarrah Bastawala, Shen-Ta Hsieh, Shreyas Atre, Yage Hu, Yi Huang, Yi-Ying He, alabulei1, am009, dm4, hetvishastri, hydai, richzw, tannal, vincent, zhumeme
If you want to build from source, please use WasmEdge-0.14.0-rc.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.
WasmEdge 0.14.0-alpha.3
0.14.0-alpha.3 (2024-03-05)
Breaking changes:
- [Version]: Bump the version of the WasmEdge shared library.
- Due to the breaking change of API, bump the
SOVERSION
to0.1.0
. - Due to the breaking change of API, bump the plug-in
API_VERSION
to3
.
- Due to the breaking change of API, bump the
- [C API]: Changes for applying Typed Function References Proposal.
- New
WasmEdge_ValType
structure for replacingenum WasmEdge_ValType
.- Merge the
enum WasmEdge_ValType
andenum WasmEdge_RefType
into theenum WasmEdge_TypeCode
.
- Merge the
- Refactored the error code. The error code number may different from previous versions.
- Extend the error code to 2 bytes.
- Updated the related APIs for using
enum WasmEdge_ValType
as parameters.WasmEdge_FunctionTypeCreate()
WasmEdge_FunctionTypeGetParameters()
WasmEdge_FunctionTypeGetReturns()
WasmEdge_TableTypeCreate()
WasmEdge_TableTypeGetRefType()
WasmEdge_GlobalTypeCreate()
WasmEdge_GlobalTypeGetValType()
- Removed
WasmEdge_ValueGenNullRef()
API. - Due to non-defaultable values after this proposal, the following APIs return the result instead of void.
WasmEdge_GlobalInstanceSetValue()
- Introduced the
WasmEdge_Bytes
structure.- This structure is for packaging the
uint8_t
buffers. The oldFromBuffer
related APIs will be replaced by the corresponding APIs in the future versions. WasmEdge_CompilerCompileFromBytes()
API has the same function asWasmEdge_CompilerCompileFromBuffer()
and will replace it in the future.WasmEdge_LoaderParseFromBytes()
API has the same function asWasmEdge_LoaderParseFromBuffer()
and will replace it in the future.WasmEdge_VMRegisterModuleFromBytes()
API has the same function asWasmEdge_VMRegisterModuleFromBuffer()
and will replace it in the future.WasmEdge_VMRunWasmFromBytes()
API has the same function asWasmEdge_VMRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMAsyncRunWasmFromBytes()
API has the same function asWasmEdge_VMAsyncRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMLoadWasmFromBytes()
API has the same function asWasmEdge_VMLoadWasmFromBuffer()
and will replace it in the future.
- This structure is for packaging the
- New
Features:
- [Proposal]: Apply new propoals.
- Supported WASM Typed Function References proposal.
- Added the
WasmEdge_Proposal_FunctionReferences
for the configuration in WasmEdge C API. - Users can use the
--enable-function-reference
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Supported WASM GC proposal (interpreter only).
- Added the
WasmEdge_Proposal_GC
for the configuration in WasmEdge C API. - Users can use the
--enable-gc
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Component Model proposal (experimental, loader phase only).
- Added the
WasmEdge_Proposal_Component
for the configuration in WasmEdge C API. - Users can use the
--enable-function-reference
to enable the proposal inwasmedge
tool.
- Added the
- Supported WASM Typed Function References proposal.
- [JIT]: Support LLVM JIT.
- [C API]: New C API for supporting the new proposals.
WasmEdge_ValType
related APIs can help developers to generate or compare value types.WasmEdge_ValTypeGenI32()
(replacingWasmEdge_ValType_I32
)WasmEdge_ValTypeGenI64()
(replacingWasmEdge_ValType_I64
)WasmEdge_ValTypeGenF32()
(replacingWasmEdge_ValType_F32
)WasmEdge_ValTypeGenF64()
(replacingWasmEdge_ValType_F64
)WasmEdge_ValTypeGenV128()
(replacingWasmEdge_ValType_V128
)WasmEdge_ValTypeGenFuncRef()
(replacingWasmEdge_ValType_FuncRef
)WasmEdge_ValTypeGenExternRef()
(replacingWasmEdge_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.
- [Serializer]: Supported WASM module serialization (experimental).
- This is the API-level feature. Developers can use the
WasmEdge_LoaderSerializeASTModule()
API to serialize a loaded WASM module into bytes.
- This is the API-level feature. Developers can use the
- [Tools]: Print the plug-in versions when using the
--version
option. - [Installer]: Enabled
ggml-blas
andrustls
plugin supporting (#3032) (#3108). - [WASI-NN] ggml backend:
- Bump llama.cpp to b2334.
- Support llama.cpp options:
threads
: the thread number for inference.temp
: set temperature for inference.repeat-penalty
: set repeat penalty for inference.
- Add
enable-debug-log
option to show more debug information. - Default enable Metal on macOS.
- Introduce
load_by_name_with_config()
to load model with metadata. - Introduce single token inference by
compute_single
,get_output_single
, andfini_single
- Add some llama errors to WASI-NN.
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.
- Support Llava and Gemma inference.
- Add
mmproj
option to set the projection model. - Add
image
option to set the image.
- Add
- Support embedding generation.
Fixed issues:
- Fixed some API document in the API header.
- [Executor]: Minor fixes.
- Fixed integer overflow on
memGrow
boundary check. - Refined the slice copy in table instances.
- Fixed integer overflow on
- [WASI]: Minor fixes.
- Fixed the function signature matching for WASI imports when backwarding supporting older version. (#3073)
- Fixed large timestamp causing overflow (#3106).
- Handle HUP only events.
- Checking same file descriptor for
fd_renumber
(#3040). - Fixed
path_unlink_file
for trailing slash path. - Fixed
path_readlink
for not following symbolic link issue. - Fixed
path_open
for checkingO_TRUNC
rights. - Fixed
path_open
for removing path relative rights on file. - Checking
path_symlink
for creating a symlink to an absolute path. - Checking
fd_prestat_dir_name
buffer size. - Checking
filestat_set_times
for invalid flags. - Checking validation of file descriptor in
socket_accept
(#3041).
Tests:
- Updated the WASM spec tests to the date 2023/10/26.
- Added the spec tests for the Typed Function Reference proposal.
Known issues:
- Universal WASM format failed on macOS platforms.
- In the current status, the universal WASM format output of the AOT compiler with the
O1
or upper optimizations on MacOS platforms will cause a bus error during execution. - We are trying to fix this issue. For a working around, please use the
--optimize=0
to set the compiler optimization level toO0
inwasmedgec
CLI.
- In the current status, the universal WASM format output of the AOT compiler with the
Thank all the contributors who made this release possible!
Abhinandan Udupa, Akihiro Suda, Dhruv Jain, Draco, Ikko Eltociear Ashimine, Khagan (Khan) Karimov, LO, CHIN-HAO, Little Willy, Lîm Tsú-thuàn, Meenu Yadav, Omkar Acharekar, Saiyam Pathak, Sarrah Bastawala, Shen-Ta Hsieh, Shreyas Atre, Yage Hu, Yi Huang, Yi-Ying He, alabulei1, am009, dm4, hetvishastri, hydai, richzw, tannal, vincent, zhumeme
If you want to build from source, please use WasmEdge-0.14.0-alpha.3-src.tar.gz instead of the zip or tarball provided by GitHub directly.
WasmEdge 0.14.0-alpha.2
0.14.0-alpha.2 (2024-02-23)
Breaking changes:
- [Version]: Bump the version of the WasmEdge shared library.
- Due to the breaking change of API, bump the
SOVERSION
to0.1.0
. - Due to the breaking change of API, bump the plug-in
API_VERSION
to3
.
- Due to the breaking change of API, bump the
- [C API]: Changes for applying Typed Function References Proposal.
- New
WasmEdge_ValType
structure for replacingenum WasmEdge_ValType
.- Merge the
enum WasmEdge_ValType
andenum WasmEdge_RefType
into theenum WasmEdge_TypeCode
.
- Merge the
- Refactored the error code. The error code number may different from previous versions.
- Extend the error code to 2 bytes.
- Updated the related APIs for using
enum WasmEdge_ValType
as parameters.WasmEdge_FunctionTypeCreate()
WasmEdge_FunctionTypeGetParameters()
WasmEdge_FunctionTypeGetReturns()
WasmEdge_TableTypeCreate()
WasmEdge_TableTypeGetRefType()
WasmEdge_GlobalTypeCreate()
WasmEdge_GlobalTypeGetValType()
- Removed
WasmEdge_ValueGenNullRef()
API. - Due to non-defaultable values after this proposal, the following APIs return the result instead of void.
WasmEdge_GlobalInstanceSetValue()
- Introduced the
WasmEdge_Bytes
structure.- This structure is for packaging the
uint8_t
buffers. The oldFromBuffer
related APIs will be replaced by the corresponding APIs in the future versions. WasmEdge_CompilerCompileFromBytes()
API has the same function asWasmEdge_CompilerCompileFromBuffer()
and will replace it in the future.WasmEdge_LoaderParseFromBytes()
API has the same function asWasmEdge_LoaderParseFromBuffer()
and will replace it in the future.WasmEdge_VMRegisterModuleFromBytes()
API has the same function asWasmEdge_VMRegisterModuleFromBuffer()
and will replace it in the future.WasmEdge_VMRunWasmFromBytes()
API has the same function asWasmEdge_VMRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMAsyncRunWasmFromBytes()
API has the same function asWasmEdge_VMAsyncRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMLoadWasmFromBytes()
API has the same function asWasmEdge_VMLoadWasmFromBuffer()
and will replace it in the future.
- This structure is for packaging the
- New
Features:
- [Proposal]: Apply new propoals.
- Supported WASM Typed Function References proposal.
- Added the
WasmEdge_Proposal_FunctionReferences
for the configuration in WasmEdge C API. - Users can use the
--enable-function-reference
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Supported WASM GC proposal (interpreter only).
- Added the
WasmEdge_Proposal_GC
for the configuration in WasmEdge C API. - Users can use the
--enable-gc
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Component Model proposal (experimental, loader phase only).
- Added the
WasmEdge_Proposal_Component
for the configuration in WasmEdge C API. - Users can use the
--enable-function-reference
to enable the proposal inwasmedge
tool.
- Added the
- Supported WASM Typed Function References proposal.
- [JIT]: Support LLVM JIT.
- [C API]: New C API for supporting the new proposals.
WasmEdge_ValType
related APIs can help developers to generate or compare value types.WasmEdge_ValTypeGenI32()
(replacingWasmEdge_ValType_I32
)WasmEdge_ValTypeGenI64()
(replacingWasmEdge_ValType_I64
)WasmEdge_ValTypeGenF32()
(replacingWasmEdge_ValType_F32
)WasmEdge_ValTypeGenF64()
(replacingWasmEdge_ValType_F64
)WasmEdge_ValTypeGenV128()
(replacingWasmEdge_ValType_V128
)WasmEdge_ValTypeGenFuncRef()
(replacingWasmEdge_ValType_FuncRef
)WasmEdge_ValTypeGenExternRef()
(replacingWasmEdge_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.
- [Serializer]: Supported WASM module serialization (experimental).
- This is the API-level feature. Developers can use the
WasmEdge_LoaderSerializeASTModule()
API to serialize a loaded WASM module into bytes.
- This is the API-level feature. Developers can use the
- [Tools]: Print the plug-in versions when using the
--version
option. - [Installer]: Enabled
ggml-blas
andrustls
plugin supporting (#3032) (#3108). - [WASI-NN] ggml backend:
- Bump llama.cpp to b2230.
- Support llama.cpp options:
threads
: the thread number for inference.temp
: set temperature for inference.repeat-penalty
: set repeat penalty for inference.
- Add
enable-debug-log
option to show more debug information. - Default enable Metal on macOS.
- Introduce
load_by_name_with_config()
to load model with metadata. - Introduce single token inference by
compute_single
,get_output_single
, andfini_single
- Add some llama errors to WASI-NN.
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.
- Support Llava and Gemma inference.
- Add
mmproj
option to set the projection model. - Add
image
option to set the image.
- Add
- Support embedding generation.
Fixed issues:
- Fixed some API document in the API header.
- [Executor]: Minor fixes.
- Fixed integer overflow on
memGrow
boundary check. - Refined the slice copy in table instances.
- Fixed integer overflow on
- [WASI]: Minor fixes.
- Fixed the function signature matching for WASI imports when backwarding supporting older version. (#3073)
- Fixed large timestamp causing overflow (#3106).
- Handle HUP only events.
- Checking same file descriptor for
fd_renumber
(#3040). - Fixed
path_unlink_file
for trailing slash path. - Fixed
path_readlink
for not following symbolic link issue. - Fixed
path_open
for checkingO_TRUNC
rights. - Fixed
path_open
for removing path relative rights on file. - Checking
path_symlink
for creating a symlink to an absolute path. - Checking
fd_prestat_dir_name
buffer size. - Checking
filestat_set_times
for invalid flags. - Checking validation of file descriptor in
socket_accept
(#3041).
Tests:
- Updated the WASM spec tests to the date 2023/10/26.
- Added the spec tests for the Typed Function Reference proposal.
Known issues:
- Universal WASM format failed on macOS platforms.
- In the current status, the universal WASM format output of the AOT compiler with the
O1
or upper optimizations on MacOS platforms will cause a bus error during execution. - We are trying to fix this issue. For a working around, please use the
--optimize=0
to set the compiler optimization level toO0
inwasmedgec
CLI.
- In the current status, the universal WASM format output of the AOT compiler with the
Thank all the contributors who made this release possible!
Abhinandan Udupa, Akihiro Suda, Dhruv Jain, Draco, Ikko Eltociear Ashimine, Khagan (Khan) Karimov, LO, CHIN-HAO, Little Willy, Lîm Tsú-thuàn, Meenu Yadav, Omkar Acharekar, Saiyam Pathak, Sarrah Bastawala, Shen-Ta Hsieh, Shreyas Atre, Yage Hu, Yi Huang, Yi-Ying He, alabulei1, am009, dm4, hydai, richzw, vincent, zhumeme
If you want to build from source, please use WasmEdge-0.14.0-alpha.2-src.tar.gz instead of the zip or tarball provided by GitHub directly.
WasmEdge 0.14.0-alpha.1
0.14.0-alpha.1 (2024-01-05)
Breaking changes:
- [Version]: Bump the version of the WasmEdge shared library.
- Due to the breaking change of API, bump the
SOVERSION
to0.1.0
. - Due to the breaking change of API, bump the plug-in
API_VERSION
to3
.
- Due to the breaking change of API, bump the
- [C API]: Changes for applying Typed Function References Proposal.
- New
WasmEdge_ValType
structure for replacingenum WasmEdge_ValType
.- Merge the
enum WasmEdge_ValType
andenum WasmEdge_RefType
into theenum WasmEdge_TypeCode
.
- Merge the
- Refactored the error code. The error code number may different from previous versions.
- Extend the error code to 2 bytes.
- Updated the related APIs for using
enum WasmEdge_ValType
as parameters.WasmEdge_FunctionTypeCreate()
WasmEdge_FunctionTypeGetParameters()
WasmEdge_FunctionTypeGetReturns()
WasmEdge_TableTypeCreate()
WasmEdge_TableTypeGetRefType()
WasmEdge_GlobalTypeCreate()
WasmEdge_GlobalTypeGetValType()
- Removed
WasmEdge_ValueGenNullRef()
API. - Due to non-defaultable values after this proposal, the following APIs return the result instead of void.
WasmEdge_GlobalInstanceSetValue()
- Introduced the
WasmEdge_Bytes
structure.- This structure is for packaging the
uint8_t
buffers. The oldFromBuffer
related APIs will be replaced by the corresponding APIs in the future versions. WasmEdge_CompilerCompileFromBytes()
API has the same function asWasmEdge_CompilerCompileFromBuffer()
and will replace it in the future.WasmEdge_LoaderParseFromBytes()
API has the same function asWasmEdge_LoaderParseFromBuffer()
and will replace it in the future.WasmEdge_VMRegisterModuleFromBytes()
API has the same function asWasmEdge_VMRegisterModuleFromBuffer()
and will replace it in the future.WasmEdge_VMRunWasmFromBytes()
API has the same function asWasmEdge_VMRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMAsyncRunWasmFromBytes()
API has the same function asWasmEdge_VMAsyncRunWasmFromBuffer()
and will replace it in the future.WasmEdge_VMLoadWasmFromBytes()
API has the same function asWasmEdge_VMLoadWasmFromBuffer()
and will replace it in the future.
- This structure is for packaging the
- New
Features:
- [Proposal]: Apply new propoals.
- Supported WASM Typed Function References proposal.
- Added the
WasmEdge_Proposal_FunctionReferences
for the configuration in WasmEdge C API. - Users can use the
--enable-function-reference
to enable the proposal inwasmedge
andwasmedgec
tools.
- Added the
- Component Model proposal (experimental, loader phase only).
- Added the
WasmEdge_Proposal_Component
for the configuration in WasmEdge C API. - Users can use the
--enable-function-reference
to enable the proposal inwasmedge
tool.
- Added the
- Supported WASM Typed Function References proposal.
- [C API]: New C API for supporting the new proposals.
WasmEdge_ValType
related APIs can help developers to generate or compare value types.WasmEdge_ValTypeGenI32()
(replacingWasmEdge_ValType_I32
)WasmEdge_ValTypeGenI64()
(replacingWasmEdge_ValType_I64
)WasmEdge_ValTypeGenF32()
(replacingWasmEdge_ValType_F32
)WasmEdge_ValTypeGenF64()
(replacingWasmEdge_ValType_F64
)WasmEdge_ValTypeGenV128()
(replacingWasmEdge_ValType_V128
)WasmEdge_ValTypeGenFuncRef()
(replacingWasmEdge_ValType_FuncRef
)WasmEdge_ValTypeGenExternRef()
(replacingWasmEdge_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.
- [Serializer]: Supported WASM module serialization (experimental).
- This is the API-level feature. Developers can use the
WasmEdge_LoaderSerializeASTModule()
API to serialize a loaded WASM module into bytes.
- This is the API-level feature. Developers can use the
- [Tools]: Print the plug-in versions when using the
--version
option. - [Installer]: Enabled
ggml-blas
andrustls
plugin supporting (#3032) (#3108). - [WASI-NN] ggml backend:
- Bump llama.cpp to b1743
- Support llama.cpp options:
threads
: the thread number for inference.temp
: set temperature for inference.repeat-penalty
: set repeat penalty for inference.
- Add
enable-debug-log
option to show more debug information. - Default enable Metal on macOS.
- Introduce
load_by_name_with_config()
to load model with metadata. - Introduce single token inference by
compute_single
,get_output_single
, andfini_single
- Add some llama errors to WASI-NN
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.
Fixed issues:
- Fixed some API document in the API header.
- [WASI]: Minor fixes.
- Fixed the function signature matching for WASI imports when backwarding supporting older version. (#3073)
- Fixed large timestamp causing overflow (#3106).
- Handle HUP only events.
- Checking same file descriptor for
fd_renumber
(#3040). - Fixed
path_unlink_file
for trailing slash path. - Fixed
path_readlink
for not following symbolic link issue. - Fixed
path_open
for checkingO_TRUNC
rights. - Fixed
path_open
for removing path relative rights on file. - Checking
path_symlink
for creating a symlink to an absolute path. - Checking
fd_prestat_dir_name
buffer size. - Checking
filestat_set_times
for invalid flags. - Checking validation of file descriptor in
socket_accept
(#3041).
Tests:
- Updated the WASM spec tests to the date 2023/10/26.
- Added the spec tests for the Typed Function Reference proposal.
Known issues:
- Universal WASM format failed on macOS platforms.
- In the current status, the universal WASM format output of the AOT compiler with the
O1
or upper optimizations on MacOS platforms will cause a bus error during execution. - We are trying to fix this issue. For a working around, please use the
--optimize=0
to set the compiler optimization level toO0
inwasmedgec
CLI.
- In the current status, the universal WASM format output of the AOT compiler with the
Thank all the contributors who made this release possible!
Abhinandan Udupa, Akihiro Suda, Dhruv Jain, Draco, Little Willy, Lîm Tsú-thuàn, Meenu Yadav, Omkar Acharekar, Saiyam Pathak, Shen-Ta Hsieh, Shreyas Atre, Yage Hu, Yi-Ying He, alabulei1, am009, dm4, hydai, richzw, zhumeme
If you want to build from source, please use WasmEdge-0.14.0-alpha.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.
WasmEdge 0.13.5
0.13.5 (2023-11-03)
Features:
- [Component] share loading entry for component and module (#2945)
- Initial support for the component model proposal.
- This PR allows WasmEdge to recognize the component and module format.
- [WASI-NN] ggml backend:
- Provide options for enabling OpenBLAS, Metal, and cuBLAS.
- Bump llama.cpp to b1383
- Build thirdparty/ggml only when the ggml backend is enabled.
- Enable the ggml plugin on the macOS platform.
- Introduce
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. - Unified the preload options with case-insensitive matching
- Introduce
metadata
for setting the ggml options.- The following options are supported:
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
)
- The following options are supported:
- Notice: Because of the limitation of the WASI-NN proposal, there is no way to set the metadata during the loading process. The current workaround will re-load the model when
n_gpu_layers
is set to a non-zero value. - Installer: Support WASI-NN ggml plugin on both macOS Intel model (CPU only) and macOS Apple Silicon model. (#2882)
- [Java Bindings] provide platform-specific jni and jar for Java bindings (#2980)
- [C API]:
- [Plugin]:
- [zlib]:
- initial support of the zlib plugin (#2562)
- With a simple building guide and basic working examples
- [zlib]:
- [MSVC] Support MSVC for building WasmEdge
- [AOT] Support LLVM 17
Fixed issues:
- [Installer]: Double quote the strings to prevent splitting in env file (#2994)
- [AOT]:
- Validate AOT section header fields
- Add invariant attribute for memory and global pointer
- [C API]:
- Fix the wrong logic of getting types from exports.
- [Example] Fix get-string with the latest C++ internal getSpan API. Fixes #2887 (#2929)
- [CI] install llvm@16 to fix macOS build (#2878)
Misc:
- [Example] Update wit-bindgen version from 0.7.0 to 0.11.0 (#2770)
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.