Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to 0.14.1 #8

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
135 changes: 38 additions & 97 deletions .CurrentChangelog.md
Original file line number Diff line number Diff line change
@@ -1,108 +1,49 @@
### 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` to `0.1.0`.
* Due to the breaking change of API, bump the plug-in `API_VERSION` to `3`.
* [C API]: Changes for applying Typed Function References Proposal.
* New `WasmEdge_ValType` structure for replacing `enum WasmEdge_ValType`.
* Merge the `enum WasmEdge_ValType` and `enum WasmEdge_RefType` into the `enum WasmEdge_TypeCode`.
* 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 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.
### 0.14.1 (2024-09-16)

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 in `wasmedge` and `wasmedgec` tools.
* 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 in `wasmedge` tool.
* [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()` (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.
* [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.
* [Tools]: Print the plug-in versions when using the `--version` option.
* [Installer]: Enabled `ggml-blas` and `rustls` plugin supporting (#3032) (#3108).
* Supported LLVM 17.0.6.
* Bumpped `spdlog` to `v1.13.0`.
* Bumpped `fmt` to `11.0.2`.
* Bumpped `simdjson` to `v3.10.0`.
* Bumpped `googletest` to `1.15.2`.
* [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`, and `fini_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.
* Bump llama.cpp to b3651.
* Static link `libggml` and `libllama`.
* Refined the CMake to support multiple backends of WASI-NN with ggml backend.
* Supported compute single in RPC mode.
* [WASI-NN] Added support for whisper.cpp backend.
* [WASI-NN] Added support for piper backend.
* [WASI-NN] Added support for ChatTTS backend.
* [WASI-NN] Added support for Burn.rs backend.
* Supported `squeezenet` and `whisper` models.
* [Plugin] Supported `wasmedge_stablediffusion` plug-in.
* Enabled CUBLAS.
* Enabled metal support on MacOS.
* [Plugin] Moved `wasi_logging` into built-in plug-in.
* Instead of installing `wasi_logging` plug-in shared library, developers can find and get this plug-in after calling `WasmEdge_PluginLoadWithDefaultPaths()` API.
* In the WasmEdge CLI tools, the built-in plug-ins will automatically be loaded.
* [Proposal] Initial support for instantiation phase of component model.
* Due to the breaking change of API, bump the plug-in `API_VERSION` to `3`.
* [Proposal] Supported WASM Relaxed-SIMD proposal.
* Added the `WasmEdge_Proposal_RelaxSIMD` for the configuration in WasmEdge C API.
* Users can use the `--enable-relaxed-simd` to enable the proposal in `wasmedge` and `wasmedgec` tools.

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 checking `O_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 warnings on GCC-14.
* Fixed the `fmt` related header inclusion for error logging.
* Fixed WASI test error in Windows.
* Fixed version checking in source tarball.
* Fixed version detection issue when building from source.
* Fixed the visibility of internal symbols.
* [Loader] Fixed alignment checking in loading immediates for memory instructions.
* [Runtime] Fixed allocation issue when configured the limited memory page size.
* Used `fmt::format` instead of string stream in error logging.

Tests:

* Updated the WASM spec tests to the date 2023/10/26.
* Added the spec tests for the Typed Function Reference proposal.
* Added WASI test suites on Windows.

Known issues:

Expand All @@ -112,6 +53,6 @@ Known issues:

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
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.0-alpha.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.
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.
1 change: 0 additions & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,3 @@ CheckOptions:
value: CamelCase
- key: readability-identifier-naming.VariableCase
value: CamelCase

155 changes: 128 additions & 27 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1,28 +1,129 @@
# Global rule:
* @hydai
.devcontainer/ @hydai
.github/ @hydai
bindings/ @hydai
bindings/rust/ @hydai @yanganto
bindings/java/ @dannypsnl
cmake/ @ibmibmibm
docs/ @hydai
include/ @q82419
lib/ @q82419
**/aot/ @ibmibmibm
**/host/wasi/ @ibmibmibm
**/system/ @ibmibmibm
**/api/ @q82419
plugins/ @ibmibmibm
plugins/wasi_logging/ @michael1017
rpm/ @hydai @dm4
test/ @q82419
test/aot/ @ibmibmibm
test/host/wasi/ @ibmibmibm
test/po/ @ibmibmibm
test/span/ @ibmibmibm
thirdparty/ @ibmibmibm
tools/ @hydai @ibmibmibm @q82419
utils/ @hydai @ibmibmibm @q82419
utils/install.sh @SAtacker
utils/uninstall.sh @SAtacker
# General Owner: @hydai
* @hydai

# Specific Files
# General Owner: @dannypsnl
*.nix @dannypsnl

# GitHub Actions
# General Owner: @hydai
.devcontainer/ @hydai
.github/ @hydai
.github/actions/ @0yi0
.github/workflows/ @0yi0

# Language Bindings
# General Owner: @hydai
bindings/ @hydai
bindings/java/ @dannypsnl

# CMake
# General Owner: @ibmibmibm
cmake/ @ibmibmibm

# Documentation
# General Owner: @hydai
docs/ @hydai

# Examples
# General Owner: @q82419
examples/ @q82419
examples/capi/unix_domain_socket/ @hydai
examples/capi/wasi-env/ @hydai
examples/js/ @hydai

# Source Codes
# General Owner: @ibmibmibm @q82419
include/ @q82419 @ibmibmibm
lib/ @q82419 @ibmibmibm

**/aot/ @ibmibmibm
**/api/ @q82419
**/common/ @ibmibmibm
**/driver/ @ibmibmibm
**/executor/ @q82419
**/host/ @q82419
**/host/wasi/ @ibmibmibm
**/llvm/ @ibmibmibm
**/loader/ @q82419 @ibmibmibm @dannypsnl
**/plugin/ @ibmibmibm
**/po/ @ibmibmibm
**/system/ @ibmibmibm
**/validator/ @q82419 @dannypsnl
**/vm/ @q82419 @dannypsnl

include/ast/ @q82419
include/ast/component/ @dannypsnl
include/driver/wasi_nn_rpc/ @dm4
include/experimental/ @ibmibmibm
include/runtime/ @q82419 @dannypsnl
lib/loader/ast/ @q82419
lib/loader/ast/component/ @dannypsnl
lib/loader/serialize/ @q82419
lib/wasi_nn_rpc/ @dm4

plugins/ @hydai
plugins/wasi_crypto/ @sonder-joker
plugins/wasi_logging/ @michael1017 @q82419
plugins/wasi_nn/ @dm4 @hydai
plugins/wasmedge_image/ @q82419
plugins/wasmedge_opencvmini/ @dannypsnl
plugins/wasmedge_process/ @q82419
plugins/wasmedge_tensorflow/ @q82419
plugins/wasmedge_tensorflowlite/ @q82419

# Tests
test/ @q82419 @ibmibmibm
test/aot/ @ibmibmibm
test/api/ @q82419
test/common/ @ibmibmibm
test/errinfo/ @q82419
test/executor/ @q82419
test/expected/ @ibmibmibm
test/externref/ @q82419
test/host/ @q82419 @ibmibmibm
test/host/mock/ @q82419
test/host/socket/ @ibmibmibm
test/host/wasi/ @ibmibmibm
test/llvm/ @ibmibmibm
test/loader/ @q82419 @dannypsnl
test/memlimit/ @q82419
test/mixcall/ @q82419
test/plugins/ @hydai
test/plugins/unittest/ @q82419
test/plugins/wasi_crypto/ @sonder-joker @hydai
test/plugins/wasi_logging/ @michael1017 @q82419
test/plugins/wasi_nn/ @dm4 @hydai
test/plugins/wasm_bpf/ @hydai
test/plugins/wasmedge_ffmpeg/ @hydai
test/plugins/wasmedge_image/ @q82419
test/plugins/wasmedge_opencvmini/ @dannypsnl
test/plugins/wasmedge_process/ @q82419
test/plugins/wasmedge_tensorflow/ @q82419
test/plugins/wasmedge_tensorflowlite/ @q82419
test/plugins/wasmedge_zlib/ @hydai
test/po/ @ibmibmibm
test/span/ @ibmibmibm
test/spec/ @q82419
test/thread/ @ibmibmibm

# Thirdparty Libraries
thirdparty/ @ibmibmibm
thirdparty/wasi_crypto/ @sonder-joker @hydai

# Tools
tools/ @ibmibmibm

# Utils
utils/ @hydai
utils/corpus/ @ibmibmibm
utils/docker/ @hydai @0yi0
utils/install* @SAtacker
utils/uninstall.sh @SAtacker
utils/opencvmini/ @dannypsnl
utils/openwrt/ @ibmibmibm
utils/wasi-cpp-header/ @ibmibmibm
utils/wasi-crypto/ @sonder-joker
utils/wasi-nn/ @dm4
utils/wasi-test/ @ibmibmibm
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,6 @@ body:
placeholder: |
- C++ Compiler version:
- CMake version:
- CMake flags: (e.g. `-DCMAKE_BUILD_TYPE=Release -DWASMEDGE_BUILD_AOT_RUNTIME=ON`)
- CMake flags: (e.g. `-DCMAKE_BUILD_TYPE=Release -DWASMEDGE_USE_LLVM=ON`)
validations:
required: false
70 changes: 70 additions & 0 deletions .github/ISSUE_TEMPLATE/lfx_mentorship_idea.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: "LFX Mentorship Project Idea"
description: This template is for submitting a project idea for the LFX Mentorship program.
title: "LFX mentorship (): <title>"
labels: ["LFX Mentorship", "LFX Mentorship Idea"]
projects: ["WasmEdge/8"]
body:
- type: textarea
id: project-title
attributes:
label: "Project Title"
description: Please shortly describe the project title you want to propose for the LFX Mentorship program.
placeholder: Describe in one line
validations:
required: true
- type: textarea
id: description
attributes:
label: "Description"
description: Please shortly describe the project content you want to propose for the LFX Mentorship program.
placeholder: Describe in a few lines about the project content.
validations:
required: true
- type: textarea
id: expected-outcome
attributes:
label: "Expected Outcome"
description: Please shortly describe the expected outcome of the project you want to propose for the LFX Mentorship program.
placeholder: Describe in several bullet points about the expected outcome. E.g. A new feature, a new tool, etc.
validations:
required: true
- type: textarea
id: recommend-skills
attributes:
label: "Recommend skills"
description: Please shortly describe the recommend skills for the project you want to propose for the LFX Mentorship program.
placeholder: Describe in several bullet points about the recommend skills. E.g. C++, Rust, WebAssembly, etc.
validations:
required: true
- type: textarea
id: pre-tests
attributes:
label: "Pre-tests"
description: Please shortly describe the pre-tests for the project you want to propose for the LFX Mentorship program.
placeholder: This is optional, if you have any pre-tests for the project, please describe in several bullet points. Otherwise, you can leave it "N/A".
validations:
required: true
- type: textarea
id: mentors
attributes:
label: "Mentor(s)"
description: Please write down the mentor(s) in this format, e.g. "MentorName (@MentorGitHubID, MentorEmail)"
placeholder: According to the CNCF policy, at least two mentors(one for major, another for backup) are required for each project.
validations:
required: true
- type: textarea
id: apply-link
attributes:
label: "Apply Link"
description: Leave TBD if you don't have the apply link yet.
placeholder: TBD
validations:
required: true
- type: textarea
id: appendix
attributes:
label: "Appendix"
description: Please provide any additional information you want to share.
placeholder: This is optional, if you have any additional information, please describe in several bullet points.
validations:
required: false
Loading
Loading