WasmEdge

WasmEdge is a lightweight, high-performance, and extensible WebAssembly runtime for cloud native, edge, and decentralized applications. It powers serverless apps, embedded functions, microservices, smart contracts, and IoT devices.

APACHE-2.0 License

Stars
8K
Committers
187

Bot releases are visible (Hide)

WasmEdge - WasmEdge 0.12.0-alpha.1

Published by github-actions[bot] almost 2 years ago

0.12.0-alpha.1 (2022-12-23)

Features:

  • Updated the WasmEdge shared library.
    • Due to the breaking change of ABI, bump the SOVERSION to 0.0.2.
  • Introduced the python version WasmEdge installer.
  • Updated the ABI of the wasi_ephemeral_sock.
    • Added the output port of the sock_recv_from.
    • Updated the API of sock_getlocaladdr.
    • Unified the socket address size to 128-bit.
  • Supported using libtool to archive the WasmEdge static library.

Fixed issues:

  • Fixed WASI-NN issues.
    • Fixed the definition of wasi_nn::TensorType to prevent from comparing with dirty data.
  • Fixed the lost intrinsics table in AOT mode when using the WasmEdge C API.
  • Fixed the implementation in threads proposal.
    • Fixed the error in atomic.nofify and atomic.wait instructions.
    • Fixed the decoding of atomic.fence instruction.
    • Corrected the error message of waiting on unshared memory.

Refactor:

  • Refactored the implementation of number loading in the file manager.
    • Supported s33 and sn loading and decoding.
  • Refactored the WasmEdge::ValType.
    • Removed the WasmEdge::ValType::None.
    • Used the flag in WasmEdge::BlockType for supporting the type index.
    • Removed the WasmEdge::Validator::VType and used the WasmEdge::ValType instead.

Known issues:

  • Universal WASM format failed on MacOS platforms.
    • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
    • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Updated the WASM spec tests to the date 2022/12/15.

Thank all the contributors that made this release possible!

DarumaDocker, Harry Chiang, Justin Echternach, Kenvi Zhu, LFsWang, Lîm Tsú-thuàn, MediosZ, Puelloc, Rafael Fernández López, Shreyas Atre, Sylveon, Xin Liu, Xiongsheng Wang, YiYing He, alabulei1, dm4, hydai, jeongkyu, little-willy

If you want to build from source, please use WasmEdge-0.12.0-alpha.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

WasmEdge - WasmEdge 0.11.2

Published by github-actions[bot] almost 2 years ago

0.11.2 (2022-11-03)

Features:

  • Added the new WasmEdge C API.
    • Added the WasmEdge_ConfigureSetForceInterpreter() API to set the force interpreter mode.
    • Added the WasmEdge_ConfigureIsForceInterpreter() API to check the force interpreter mode in configurations.
    • Added the WasmEdge_LogOff() API to turn off the logging.
    • Due to introducing the new APIs, bump the SOVERSION to 0.0.1.
  • Added the additional hint messages if import not found when in instantiation.
  • Added the forcibly interpreter execution mode in WasmEdge CLI.
    • Users can use the --force-interpreter option in the wasmedge tool to forcibly execute WASM files (includes the AOT compiled WASM files) in interpreter mode.
  • Supported WASI-NN plug-in with TensorFlow-Lite backend on Ubuntu 20.04 x86_64.
    • Users can refer to the WASI-NN document for the information.
    • For building with enabling WASI-NN with TensorFlow-Lite backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="TensorFlowLite" in cmake.
  • Bump the fmt format of logging to 9.0.0.
  • Added the new experimental edge-triggered epoll API epollOneoff in the WASI component.

Fixed issues:

  • Detected the valid _start function of the WasmEdge CLI command mode.
    • For the invalid _start function, the WasmEdge CLI will execute that function in the reactor mode.
  • Fixed the non-English WasmEdge CLI arguments error on Windows.
  • Fixed the AOT compiler issues.
    • Fixed the operand of frintn on arm64 platforms.
    • Corrected the unreachable status to record on every control stacks.
  • Refined the Loader performance.
    • Capped the maximum local counts to 67108864 (2^26).
    • Rejected wrong data when loading the universal WASM.
    • Rejected the unreasonable long vector sizes.
  • Fixed the lost std namespace in the experimental::expected.
  • Fixed the repeatedly compilation of universal WASM format.
    • If users use the wasmedgec tool to compile the universal WASM file, the AOT compiled WASM data will be appended into the output.
    • In the cases of duplicated AOT compiled universal WASM file which has more than 1 section of AOT compiled WASM data, the WasmEdge runtime will use the latest appended one when execution.
  • Hided the local symbols of the WasmEdge shared library.
  • Loaded the default plug-in path from the path related to the WasmEdge shared library.
    • This only fixed on the MacOS and Linux platforms now.
  • Updated the minimum CMake required version on Android.

Known issues:

  • Universal WASM format failed on MacOS platforms.
    • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
    • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Added the WASI-NN TensorFlow-Lite backend unit test.
  • Added the new C API unit tests.
  • Applied more fuzz tests for WasmEdge CLI.

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.

WasmEdge - WasmEdge 0.11.2-rc.3

Published by github-actions[bot] almost 2 years ago

0.11.2-rc.3 (2022-11-01)

Features:

  • Added the new WasmEdge C API.
    • Added the WasmEdge_ConfigureSetForceInterpreter() API to set the force interpreter mode.
    • Added the WasmEdge_ConfigureIsForceInterpreter() API to check the force interpreter mode in configurations.
    • Added the WasmEdge_LogOff() API to turn off the logging.
    • Due to introducing the new APIs, bump the SOVERSION to 0.0.1.
  • Added the additional hint messages if import not found when in instantiation.
  • Added the forcibly interpreter execution mode in WasmEdge CLI.
    • Users can use the --force-interpreter option in the wasmedge tool to forcibly execute WASM files (includes the AOT compiled WASM files) in interpreter mode.
  • Supported WASI-NN plug-in with TensorFlow-Lite backend on Ubuntu 20.04 x86_64.
    • Users can refer to the WASI-NN document for the information.
    • For building with enabling WASI-NN with TensorFlow-Lite backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="TensorFlowLite" in cmake.
  • Bump the fmt format of logging to 9.0.0.
  • Add the new experimental edge-triggered epoll API epollOneoff in the WASI component.

Fixed issues:

  • Detected the valid _start function of the WasmEdge CLI command mode.
    • For the invalid _start function, the WasmEdge CLI will execute that function in the reactor mode.
  • Fixed the non-English WasmEdge CLI arguments error on Windows.
  • Fixed the AOT compiler issues.
    • Fixed the operand of frintn on arm64 platforms.
    • Corrected the unreachable status to record on every control stacks.
  • Refined the Loader performance.
    • Capped the maximum local counts to 67108864 (2^26).
    • Rejected wrong data when loading the universal WASM.
    • Rejected the unreasonable long vector sizes.
  • Fixed the lost std namespace in the experimental::expected.
  • Fixed the repeatedly compilation of universal WASM format.
    • If users use the wasmedgec tool to compile the universal WASM file, the AOT compiled WASM data will be appended into the output.
    • In the cases of duplicated AOT compiled universal WASM file which has more than 1 section of AOT compiled WASM data, the WasmEdge runtime will use the latest appended one when execution.
  • Hided the local symbols of the WasmEdge shared library.
  • Loaded the default plug-in path from the path related to the WasmEdge shared library.
    • This only fixed on the MacOS and Linux platforms now.
  • Updated the minimum CMake required version on Android.

Known issues:

  • Universal WASM format failed on MacOS platforms.
    • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
    • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Added the WASI-NN TensorFlow-Lite backend unit test.
  • Added the new C API unit tests.
  • Applied more fuzz tests for WasmEdge CLI.

Thank all the contributors that made this release possible!

Abhinandan Udupa, Gustavo Ye, HangedFish, Harry Chiang, Hiroaki Nakamura, Kenvi Zhu, LFsWang, 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-rc.3-src.tar.gz instead of the zip or tarball provided by GitHub directly.

WasmEdge - WasmEdge 0.11.2-rc.2

Published by github-actions[bot] almost 2 years ago

0.11.2-rc.2 (2022-10-31)

Features:

  • Added the new WasmEdge C API.
    • Added the WasmEdge_ConfigureSetForceInterpreter() API to set the force interpreter mode.
    • Added the WasmEdge_ConfigureIsForceInterpreter() API to check the force interpreter mode in configurations.
    • Added the WasmEdge_LogOff() API to turn off the logging.
    • Due to introducing the new APIs, bump the SOVERSION to 0.0.1.
  • Added the additional hint messages if import not found when in instantiation.
  • Added the forcibly interpreter execution mode in WasmEdge CLI.
    • Users can use the --force-interpreter option in the wasmedge tool to forcibly execute WASM files (includes the AOT compiled WASM files) in interpreter mode.
  • Supported WASI-NN plug-in with TensorFlow-Lite backend on Ubuntu 20.04 x86_64.
    • Users can refer to the WASI-NN document for the information.
    • For building with enabling WASI-NN with TensorFlow-Lite backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="TensorFlowLite" in cmake.
  • Bump the fmt format of logging to 9.0.0.

Fixed issues:

  • Detected the valid _start function of the WasmEdge CLI command mode.
    • For the invalid _start function, the WasmEdge CLI will execute that function in the reactor mode.
  • Fixed the non-English WasmEdge CLI arguments error on Windows.
  • Fixed the AOT compiler issues.
    • Fixed the operand of frintn on arm64 platforms.
    • Corrected the unreachable status to record on every control stacks.
  • Refined the Loader performance.
    • Capped the maximum local counts to 67108864 (2^26).
    • Rejected wrong data when loading the universal WASM.
    • Rejected the unreasonable long vector sizes.
  • Fixed the lost std namespace in the experimental::expected.
  • Fixed the repeatedly compilation of universal WASM format.
    • If users use the wasmedgec tool to compile the universal WASM file, the AOT compiled WASM data will be appended into the output.
    • In the cases of duplicated AOT compiled universal WASM file which has more than 1 section of AOT compiled WASM data, the WasmEdge runtime will use the latest appended one when execution.
  • Hided the local symbols of the WasmEdge shared library.
  • Loaded the default plug-in path from the path related to the WasmEdge shared library.
    • This only fixed on the MacOS and Linux platforms now.
  • Updated the minimum CMake required version on Android.

Known issues:

  • Universal WASM format failed on MacOS platforms.
    • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
    • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Added the WASI-NN TensorFlow-Lite backend unit test.
  • Added the new C API unit tests.
  • Applied more fuzz tests for WasmEdge CLI.

Thank all the contributors that made this release possible!

Abhinandan Udupa, Gustavo Ye, HangedFish, Harry Chiang, Hiroaki Nakamura, Kenvi Zhu, LFsWang, 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-rc.2-src.tar.gz instead of the zip or tarball provided by GitHub directly.

WasmEdge - WasmEdge 0.11.2-rc.1

Published by github-actions[bot] almost 2 years ago

0.11.2-rc.1 (2022-10-28)

Features:

  • Added the new WasmEdge C API.
    • Added the WasmEdge_ConfigureSetForceInterpreter() API to set the force interpreter mode.
    • Added the WasmEdge_ConfigureIsForceInterpreter() API to check the force interpreter mode in configurations.
    • Added the WasmEdge_LogOff() API to turn off the logging.
    • Due to introducing the new APIs, bump the SOVERSION to 0.0.1.
  • Added the additional hint messages if import not found when in instantiation.
  • Added the forcibly interpreter execution mode in WasmEdge CLI.
    • Users can use the --force-interpreter option in the wasmedge tool to forcibly execute WASM files (includes the AOT compiled WASM files) in interpreter mode.
  • Supported WASI-NN plug-in with TensorFlow-Lite backend on Ubuntu 20.04 x86_64.
    • Users can refer to the WASI-NN document for the information.
    • For building with enabling WASI-NN with TensorFlow-Lite backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="TensorFlowLite" in cmake.
  • Bump the fmt format of logging to 9.0.0.

Fixed issues:

  • Detected the valid _start function of the WasmEdge CLI command mode.
    • For the invalid _start function, the WasmEdge CLI will execute that function in the reactor mode.
  • Fixed the non-English WasmEdge CLI arguments error on Windows.
  • Fixed the AOT compiler issues.
    • Fixed the operand of frintn on arm64 platforms.
    • Corrected the unreachable status to record on every control stacks.
  • Refined the Loader performance.
    • Capped the maximum local counts to 67108864 (2^26).
    • Rejected wrong data when loading the universal WASM.
    • Rejected the unreasonable long vector sizes.
  • Fixed the lost std namespace in the experimental::expected.
  • Fixed the repeatedly compilation of universal WASM format.
    • If users use the wasmedgec tool to compile the universal WASM file, the AOT compiled WASM data will be appended into the output.
    • In the cases of duplicated AOT compiled universal WASM file which has more than 1 section of AOT compiled WASM data, the WasmEdge runtime will use the latest appended one when execution.
  • Hided the local symbols of the WasmEdge shared library.

Known issues:

  • Universal WASM format failed on MacOS platforms.
    • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
    • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Added the WASI-NN TensorFlow-Lite backend unit test.
  • Added the new C API unit tests.
  • Applied more fuzz tests for WasmEdge CLI.

Thank all the contributors that made this release possible!

Abhinandan Udupa, Gustavo Ye, Harry Chiang, Hiroaki Nakamura, Kenvi Zhu, LFsWang, Shen-Ta Hsieh, Shreyas Atre, Xin Liu, YiYing He, abhinandanudupa, dm4, he11c, hydai, vincent, zhlhahaha

If you want to build from source, please use WasmEdge-0.11.2-rc.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

WasmEdge - WasmEdge 0.11.2-alpha.1

Published by github-actions[bot] almost 2 years ago

0.11.2-alpha.1 (2022-10-25)

Features:

  • Added the new WasmEdge C API.
    • Added the WasmEdge_ConfigureSetForceInterpreter() API to set the force interpreter mode.
    • Added the WasmEdge_ConfigureIsForceInterpreter() API to check the force interpreter mode in configurations.
    • Added the WasmEdge_LogOff() API to turn off the logging.
    • Due to introducing the new APIs, bump the SOVERSION to 0.0.1.
  • Added the additional hint messages if import not found when in instantiation.
  • Added the forcibly interpreter execution mode in WasmEdge CLI.
    • Users can use the --force-interpreter option in the wasmedge tool to forcibly execute WASM files (includes the AOT compiled WASM files) in interpreter mode.
  • Supported WASI-NN plug-in with TensorFlow-Lite backend on Ubuntu 20.04 x86_64.
    • Users can refer to the WASI-NN document for the information.
    • For building with enabling WASI-NN with TensorFlow-Lite backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="TensorFlowLite" in cmake.
  • Bump the fmt format of logging to 9.0.0.

Fixed issues:

  • Detected the valid _start function of the WasmEdge CLI command mode.
    • For the invalid _start function, the WasmEdge CLI will execute that function in the reactor mode.
  • Fixed the non-English WasmEdge CLI arguments error on Windows.
  • Fixed the AOT compiler issues.
    • Fixed the operand of frintn on arm64 platforms.
    • Corrected the unreachable status to record on every control stacks.
  • Refined the Loader performance.
    • Capped the maximum local counts to 67108864 (2^26).
    • Rejected wrong data when loading the universal WASM.
    • Rejected the unreasonable long vector sizes.
  • Fixed the lost std namespace in the experimental::expected.
  • Fixed the repeatedly compilation of universal WASM format.
    • If users use the wasmedgec tool to compile the universal WASM file, the AOT compiled WASM data will be appended into the output.
    • In the cases of duplicated AOT compiled universal WASM file which has more than 1 section of AOT compiled WASM data, the WasmEdge runtime will use the latest appended one when execution.
  • Hided the local symbols of the WasmEdge shared library.

Known issues:

  • Universal WASM format failed on MacOS platforms.
    • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
    • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Added the WASI-NN TensorFlow-Lite backend unit test.
  • Added the new C API unit tests.
  • Applied more fuzz tests for WasmEdge CLI.

Thank all the contributors that made this release possible!

Abhinandan Udupa, Gustavo Ye, Harry Chiang, Hiroaki Nakamura, Kenvi Zhu, LFsWang, Shen-Ta Hsieh, Shreyas Atre, Xin Liu, YiYing He, abhinandanudupa, he11c, hydai, vincent

If you want to build from source, please use WasmEdge-0.11.2-alpha.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

WasmEdge - WasmEdge 0.11.1

Published by github-actions[bot] about 2 years ago

0.11.1 (2022-10-03)

Features:

  • Supported WASI-NN plug-in with PyTorch backend on Ubuntu 20.04 x86_64.
    • Users can refer to the WASI-NN document for the information.
    • For building with enabling WASI-NN with PyTorch backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="PyTorch" in cmake.
  • Updated the WASI-Crypto proposal and supported OpenSSL 3.0.
  • Supported LLVM 15.
  • Added the plug-in C API.
  • Extended WasmEdge CLI.
    • Allow the optimization level assignment in wasmedgec tool.
    • Supported the v128 value type printing in wasmedge tool.
  • Released Ubuntu 20.04 version with statically linked LLVM.

Fixed issues:

  • Fixed the private members into the protected in the module instance class.
  • Fixed the type mismatch for IntrinsicsTable initialization statement in the AOT compiler.

Known issues:

  • Universal WASM format failed on MacOS platforms.
    • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
    • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Added the WASI-NN PyTorch backend unit test.
  • Added fuzzing tests for WasmEdge CLI.

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.

WasmEdge - WasmEdge 0.11.1-rc.1

Published by github-actions[bot] about 2 years ago

0.11.1-rc.1 (2022-09-28)

Features:

  • Supported WASI-NN plug-in with PyTorch backend on Ubuntu 20.04 x86_64.
    • Users can refer to the WASI-NN document for the information.
    • For building with enabling WASI-NN with PyTorch backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="PyTorch" in cmake.
  • Updated the WASI-Crypto proposal and supported OpenSSL 3.0.
  • Supported LLVM 15.
  • Added the plug-in C API.
  • Extended WasmEdge CLI.
    • Allow the optimization level assignment in wasmedgec tool.
    • Supported the v128 value type printing in wasmedge tool.

Fixed issues:

  • Fixed the private members into the protected in the module instance class.
  • Fixed the type mismatch for IntrinsicsTable initialization statement in the AOT compiler.

Known issues:

  • Universal WASM format failed on MacOS platforms.
    • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
    • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Added the WASI-NN PyTorch backend unit test.
  • Added fuzzing tests for WasmEdge CLI.

Thank all the contributors that made this release possible!

DarumaDocker, Gustavo Ye, LFsWang, MediosZ, Michael Yuan, Shen-Ta Hsieh, Tricster, Xin Liu, Yeongju Kang, YiYing He, Zhou Zhou, hydai, sonder-joker

If you want to build from source, please use WasmEdge-0.11.1-rc.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

WasmEdge - WasmEdge 0.11.1-alpha.1

Published by github-actions[bot] about 2 years ago

0.11.1-alpha.1 (2022-09-26)

Features:

  • Supported WASI-NN plug-in with PyTorch backend on Ubuntu 20.04 x86_64.
    • Users can refer to the WASI-NN document for the information.
    • For building with enabling WASI-NN with PyTorch backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="PyTorch" in cmake.
  • Updated the WASI-Crypto proposal and supported OpenSSL 3.0.
  • Supported LLVM 15.
  • Added the plug-in C API.
  • Extended WasmEdge CLI.
    • Allow the optimization level assignment in wasmedgec tool.
    • Supported the v128 value type printing in wasmedge tool.

Fixed issues:

  • Fixed the private members into the protected in the module instance class.
  • Fixed the type mismatch for IntrinsicsTable initialization statement in the AOT compiler.

Known issues:

  • Universal WASM format failed on MacOS platforms.
    • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
    • We are trying to fix this issue. For working around, please use the --optimize=0 to set the compiler optimization level to O0 in wasmedgec CLI.
  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Added the WASI-NN PyTorch backend unit test.
  • Added fuzzing tests for WasmEdge CLI.

Thank all the contributors that made this release possible!

DarumaDocker, Gustavo Ye, LFsWang, MediosZ, Michael Yuan, Shen-Ta Hsieh, Tricster, Xin Liu, Yeongju Kang, YiYing He, Zhou Zhou, hydai, sonder-joker

If you want to build from source, please use WasmEdge-0.11.1-alpha.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

WasmEdge - WasmEdge 0.11.0

Published by github-actions[bot] about 2 years ago

0.11.0 (2022-08-31)

Breaking changes:

  • WasmEdge C API changes.
    • Refactored the host function definition to export the calling frame.
      • The first parameter of WasmEdge_HostFunc_t is replaced by const WasmEdge_CallingFrameContext *.
      • The first parameter of WasmEdge_WrapFunc_t is replaced by const WasmEdge_CallingFrameContext *.
    • Extended the content of WasmEdge_Result.
    • Added the const qualifier of some APIs.
      • Added the const qualifer of the first parameter of WasmEdge_StoreFindModule().
      • Added the const qualifer of the first parameter of WasmEdge_AsyncWait().
      • Added the const qualifer of the first parameter of WasmEdge_AsyncWaitFor().
      • Added the const qualifer of the first parameter of WasmEdge_AsyncGetReturnsLength().
      • Added the const qualifer of the first parameter of WasmEdge_AsyncGet().
      • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionType().
      • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionTypeRegistered().
      • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionListLength().
      • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionList().
      • Added the const qualifer of the first parameter of WasmEdge_VMGetImportModuleContext().
    • Renamed the plugin API.
      • Renamed WasmEdge_Plugin_loadWithDefaultPluginPaths() to WasmEdge_PluginLoadWithDefaultPaths().
  • Dropped the manylinux1 and manylinux2010 support. Please refer to the deprecation notice.
  • Standardize the SONAME and SOVERSION for WasmEdge C API
    • The name of the library is changed to libwasmedge.so, libwasmedge.dyld, and wasmedge.dll.
    • Users should change the linker flag from lwasmedge_c to lwasmedge.
    • The initialized SONAME is set to libwasmedge.so.0.
    • The initialized SOVERSION is set to libwasmedge.so.0.0.0.

Features:

  • Updated CMake options of WasmEdge project.
    • Added WASMEDGE_LINK_LLVM_STATIC option to link the LLVM statically into WasmEdge shared library or tools.
    • Removed the WASMEDGE_BUILD_STATIC_TOOLS option and replaced by the WASMEDGE_LINK_TOOLS_STATIC option.
    • For details, please refer to the documentation.
    • After this version, our releases on MacOS platforms will link the LLVM library statically to reduce the installation of LLVM from Homebrew for the users.
  • Supported the user-defined error code for host functions.
    • The 24-bit size user-defined error code is supported (smaller than 16777216).
    • Developers can use the WasmEdge_ResultGen() API to generate the result and return.
  • Exported the CallingFrame instead of the memory instance in host functions.
    • New WasmEdge_CallingFrameContext struct.
    • Developers can use WasmEdge_CallingFrameGetModuleInstance() API to get the module instance of current top frame in calling stack in host function body.
    • Developers can use WasmEdge_CallingFrameGetMemoryInstance() API to get the memory instance by index in host function body.
      • To quickly upgrate from the previous WasmEdge versions, developer can use the WasmEdge_CallingFrameGetMemoryInstance(Context, 0) to get the same memory instance of the previous host function definition.
    • Developers can use WasmEdge_CallingFrameGetExecutor() API to get the executor context in host function body.
  • Extended the WasmEdge_Result struct to support user defined error codes of host functions.
    • Added WasmEdge_ResultGen() API to generate the WasmEdge_Result struct of user defined error code.
    • Added WasmEdge_ResultGetCategory() API to get the error code category.
  • Added a new API for looking up the native handler from a given WASI mapped Fd/Handler.
    • Added WasmEdge_ModuleInstanceWASIGetNativeHandler to get the native handler.
  • Added a new API for compiling a given WASM byte array.
    • Added WasmEdge_CompilerCompileFromBuffer to compile from buffer.
  • Added httpsreq plugin on Linux platforms.

Fixed issues:

  • Fixed the binary format loading.
    • Fixed the error of immediate loading of const instructions in debug mode.
    • Updated the memarg of memory instructions for the multiple memories proposal changes.
  • Fixed the AOT issues.
    • Fixed the missed mask of shift operands.
    • Fixed the fallback case of vector instructions if the SSE4.1 is not supported on the x86_64 platforms or the NEON is not supported on the aarch64 platforms.
    • Fixed the sdk_version of lld warning on MacOS with LLVM 14.
  • Fixed the unexpected error message when execution.
    • Refined the terminated case to prevent from printing the unexpected error message.
  • Refined the symbols of output WasmEdge shared libraries.
    • Removed the weak symbol of WasmEdge plugins.
    • Hide the lld symbols of WasmEdge shared library.
  • Fixed the release packaging.
    • Fixed the lost of statically linking LLVM into WasmEdge shared library.
    • Fixed the lost of files when packaging on Windows.

Refactor:

  • Reorginized the CI workflows to reuse the similar jobs.
  • Refactored the enum related headers.
    • Separated the C and C++ enum definition headers.
    • Not to package the C++ related headers.
  • Updated the WASI and plugin host functions for the API change.

Known issues:

  • Universal WASM format failed on MacOS platforms.
    • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
    • We are trying to fix this issue. For working around, please use the shared library format output of the AOT mode, or set the compiler optimization level to O0 in WasmEdge C API.
    • Developers can specify the extension name as .dylib on MacOS for the shared library format output when using wasmedgec tool.
  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Updated the spec tests to the date 20220712.
  • Updated the test suite of the multiple memories proposal.
  • Updated the plugin tests for the host function API breaking change.

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.

WasmEdge - WasmEdge 0.11.0-rc.1

Published by github-actions[bot] about 2 years ago

0.11.0-rc.1 (2022-08-26)

Breaking changes:

  • WasmEdge C API changes.
    • Refactored the host function definition to export the calling frame.
      • The first parameter of WasmEdge_HostFunc_t is replaced by const WasmEdge_CallingFrameContext *.
      • The first parameter of WasmEdge_WrapFunc_t is replaced by const WasmEdge_CallingFrameContext *.
    • Extended the content of WasmEdge_Result.
    • Added the const qualifier of some APIs.
      • Added the const qualifer of the first parameter of WasmEdge_StoreFindModule().
      • Added the const qualifer of the first parameter of WasmEdge_AsyncWait().
      • Added the const qualifer of the first parameter of WasmEdge_AsyncWaitFor().
      • Added the const qualifer of the first parameter of WasmEdge_AsyncGetReturnsLength().
      • Added the const qualifer of the first parameter of WasmEdge_AsyncGet().
      • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionType().
      • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionTypeRegistered().
      • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionListLength().
      • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionList().
      • Added the const qualifer of the first parameter of WasmEdge_VMGetImportModuleContext().
    • Renamed the plugin API.
      • Renamed WasmEdge_Plugin_loadWithDefaultPluginPaths() to WasmEdge_PluginLoadWithDefaultPaths().
  • Dropped the manylinux1 and manylinux2010 support. Please refer to the deprecation notice.
  • Standardize the SONAME and SOVERSION for WasmEdge C API
    • The name of the library is changed to libwasmedge.so, libwasmedge.dyld, and wasmedge.dll.
    • Users should change the linker flag from lwasmedge_c to lwasmedge.
    • The initialized SONAME is set to libwasmedge.so.0.
    • The initialized SOVERSION is set to libwasmedge.so.0.0.0.

Features:

  • Updated CMake options of WasmEdge project.
    • Added WASMEDGE_LINK_LLVM_STATIC option to link the LLVM statically into WasmEdge shared library or tools.
    • Removed the WASMEDGE_BUILD_STATIC_TOOLS option and replaced by the WASMEDGE_LINK_TOOLS_STATIC option.
    • For details, please refer to the documentation.
    • After this version, our releases on MacOS platforms will link the LLVM library statically to reduce the installation of LLVM from Homebrew for the users.
  • Supported the user-defined error code for host functions.
    • The 24-bit size user-defined error code is supported (smaller than 16777216).
    • Developers can use the WasmEdge_ResultGen() API to generate the result and return.
  • Exported the CallingFrame instead of the memory instance in host functions.
    • New WasmEdge_CallingFrameContext struct.
    • Developers can use WasmEdge_CallingFrameGetModuleInstance() API to get the module instance of current top frame in calling stack in host function body.
    • Developers can use WasmEdge_CallingFrameGetMemoryInstance() API to get the memory instance by index in host function body.
      • To quickly upgrate from the previous WasmEdge versions, developer can use the WasmEdge_CallingFrameGetMemoryInstance(Context, 0) to get the same memory instance of the previous host function definition.
    • Developers can use WasmEdge_CallingFrameGetExecutor() API to get the executor context in host function body.
  • Extended the WasmEdge_Result struct to support user defined error codes of host functions.
    • Added WasmEdge_ResultGen() API to generate the WasmEdge_Result struct of user defined error code.
    • Added WasmEdge_ResultGetCategory() API to get the error code category.
  • Added a new API for looking up the native handler from a given WASI mapped Fd/Handler.
    • Added WasmEdge_ModuleInstanceWASIGetNativeHandler to get the native handler.
  • Added a new API for compiling a given WASM byte array.
    • Added WasmEdge_CompilerCompileFromBuffer to compile from buffer.
  • Added httpsreq plugin on Linux platforms.

Fixed issues:

  • Fixed the binary format loading.
    • Fixed the error of immediate loading of const instructions in debug mode.
    • Updated the memarg of memory instructions for the multiple memories proposal changes.
  • Fixed the AOT issues.
    • Fixed the missed mask of shift operands.
    • Fixed the fallback case of vector instructions if the SSE4.1 is not supported on the x86_64 platforms or the NEON is not supported on the aarch64 platforms.
    • Fixed the sdk_version of lld warning on MacOS with LLVM 14.
  • Fixed the unexpected error message when execution.
    • Refined the terminated case to prevent from printing the unexpected error message.
  • Refined the symbols of output WasmEdge shared libraries.
    • Removed the weak symbol of WasmEdge plugins.
    • Hide the lld symbols of WasmEdge shared library.
  • Fixed the release packaging.
    • Fixed the lost of statically linking LLVM into WasmEdge shared library.
    • Fixed the lost of files when packaging on Windows.

Refactor:

  • Reorginized the CI workflows to reuse the similar jobs.
  • Refactored the enum related headers.
    • Separated the C and C++ enum definition headers.
    • Not to package the C++ related headers.
  • Updated the WASI and plugin host functions for the API change.

Known issues:

  • Universal WASM format failed on MacOS platforms.
    • In current status, the universal WASM format output of the AOT compiler with the O1 or upper optimizations on MacOS platforms will cause bus error when execution.
    • We are trying to fix this issue. For working around, please use the shared library format output of the AOT mode, or set the compiler optimization level to O0 in WasmEdge C API.
    • Developers can specify the extension name as .dylib on MacOS for the shared library format output when using wasmedgec tool.
  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Updated the spec tests to the date 20220712.
  • Updated the test suite of the multiple memories proposal.
  • Updated the plugin tests for the host function API breaking change.

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-rc.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

WasmEdge - WasmEdge 0.11.0-alpha.1

Published by github-actions[bot] about 2 years ago

0.11.0-alpha.1 (2022-08-22)

Breaking changes:

  • WasmEdge C API changes.
    • Refactored the host function definition to export the calling frame.
      • The first parameter of WasmEdge_HostFunc_t is replaced by const WasmEdge_CallingFrameContext *.
      • The first parameter of WasmEdge_WrapFunc_t is replaced by const WasmEdge_CallingFrameContext *.
    • Extended the content of WasmEdge_Result.
    • Added the const qualifier of some APIs.
      • Added the const qualifer of the first parameter of WasmEdge_StoreFindModule().
      • Added the const qualifer of the first parameter of WasmEdge_AsyncWait().
      • Added the const qualifer of the first parameter of WasmEdge_AsyncWaitFor().
      • Added the const qualifer of the first parameter of WasmEdge_AsyncGetReturnsLength().
      • Added the const qualifer of the first parameter of WasmEdge_AsyncGet().
      • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionType().
      • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionTypeRegistered().
      • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionListLength().
      • Added the const qualifer of the first parameter of WasmEdge_VMGetFunctionList().
      • Added the const qualifer of the first parameter of WasmEdge_VMGetImportModuleContext().
    • Renamed the plugin API.
      • Renamed WasmEdge_Plugin_loadWithDefaultPluginPaths() to WasmEdge_PluginLoadWithDefaultPaths().

Features:

  • Updated CMake options of WasmEdge project.
    • Added WASMEDGE_LINK_LLVM_STATIC option to link the LLVM statically into WasmEdge shared library or tools.
    • Removed the WASMEDGE_BUILD_STATIC_TOOLS option and replaced by the WASMEDGE_LINK_TOOLS_STATIC option.
    • For details, please refer to the documentation.
    • After this version, our releases on MacOS platforms will link the LLVM library statically to reduce the installation of LLVM from Homebrew for the users.
  • Supported the user-defined error code for host functions.
    • The 24-bit size user-defined error code is supported (smaller than 16777216).
    • Developers can use the WasmEdge_ResultGen() API to generate the result and return.
  • Exported the CallingFrame instead of the memory instance in host functions.
    • New WasmEdge_CallingFrameContext struct.
    • Developers can use WasmEdge_CallingFrameGetModuleInstance() API to get the module instance of current top frame in calling stack in host function body.
    • Developers can use WasmEdge_CallingFrameGetMemoryInstance() API to get the memory instance by index in host function body.
      • To quickly upgrate from the previous WasmEdge versions, developer can use the WasmEdge_CallingFrameGetMemoryInstance(Context, 0) to get the same memory instance of the previous host function definition.
    • Developers can use WasmEdge_CallingFrameGetExecutor() API to get the executor context in host function body.
  • Extended the WasmEdge_Result struct to support user defined error codes of host functions.
    • Added WasmEdge_ResultGen() API to generate the WasmEdge_Result struct of user defined error code.
    • Added WasmEdge_ResultGetCategory() API to get the error code category.
  • Added a new API for looking up the native handler from a given WASI mapped Fd/Handler.
    • Added WasmEdge_ModuleInstanceWASIGetNativeHandler to get the native handler.
  • Added a new API for compiling a given WASM byte array.
    • Added WasmEdge_CompilerCompileFromArray to compile from buffer.
  • Added httpsreq plugin on Linux platforms.

Fixed issues:

  • Fixed the binary format loading.
    • Fixed the error of immediate loading of const instructions in debug mode.
    • Updated the memarg of memory instructions for the multiple memories proposal changes.
  • Fixed the AOT issues.
    • Fixed the missed mask of shift operands.
    • Fixed the fallback case of vector instructions if the SSE4.1 is not supported on the x86_64 platforms or the NEON is not supported on the aarch64 platforms.
  • Fixed the unexpected error message when execution.
    • Refined the terminated case to prevent from printing the unexpected error message.
  • Refined the symbols of output WasmEdge shared libraries.
    • Removed the weak symbol of WasmEdge plugins.
    • Hide the lld symbols of WasmEdge shared library.
  • Fixed the release packaging.
    • Fixed the lost of statically linking LLVM into WasmEdge shared library.
    • Fixed the lost of files when packaging on Windows.

Refactor:

  • Reorginized the CI workflows to reuse the similar jobs.
  • Refactored the enum related headers.
    • Separated the C and C++ enum definition headers.
    • Not to package the C++ related headers.
  • Updated the WASI and plugin host functions for the API change.

Known issues:

  • Universal WASM format failed on MacOS platforms.
    • In current status, the universal WASM format output of the AOT compiler on MacOS platforms will cause bus error when execution.
    • We are trying to fix this issue. For working around, please use the shared library format output of the AOT mode.
    • Developers can specify the extension name as .dylib on MacOS for the shared library format output of the AOT compiler.
  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Updated the spec tests to the date 20220712.
  • Updated the test suite of the multiple memories proposal.
  • Updated the plugin tests for the host function API breaking change.

Thank all the contributors that made this release possible!

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-alpha.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

WasmEdge - WasmEdge 0.10.1

Published by github-actions[bot] about 2 years ago

0.10.1 (2022-07-28)

Features:

  • Supported WASI-NN plug-in with OpenVINO backend on Ubuntu 20.04 x86_64.
    • Users can refer to the standard extension status for the information.
    • For building with enabling WASI-NN with OpenVINO backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="OpenVINO" in cmake.
  • Supported WASI-crypto plug-in on Ubuntu 20.04 x86_64, manylinux2014 x86_64, and manylinux2014 aarch64.
    • Users can refer to the standard extension status for the information.
    • For building with enabling WASI-crypto with OpenSSL 1.1, please add the -DWASMEDGE_PLUGIN_WASI_CRYPTO=ON in cmake.
  • Added the static tool building option.
    • By default, WasmEdge tools will depend on the WasmEdge shared library.
    • Developers can add the -DWASMEDGE_BUILD_STATIC_LIB=On and -DWASMEDGE_BUILD_STATIC_TOOLS=On to build the stand-alone WasmEdge CLI tools.
  • Exported the components of WasmEdge_VMContext in WasmEdge C API.
    • Added the WasmEdge_VMGetLoaderContext API for retrieving the WasmEdge_LoaderContext in VM.
    • Added the WasmEdge_VMGetValidatorContext API for retrieving the WasmEdge_ValidatorContext in VM.
    • Added the WasmEdge_VMGetExecutorContext API for retrieving the WasmEdge_ExecutorContext in VM.
  • Added the API for CLI tools.
    • Developers can use the WasmEdge_Driver_Compiler API to trigger the WasmEdge AOT compiler tool.
    • Developers can use the WasmEdge_Driver_Tool API to trigger the WasmEdge runtime tool.
  • Supported the WASM threads proposal.
    • Added the WasmEdge_Proposal_Threads for the configuration in WasmEdge C API.
    • Users can use the --enable-threads to enable the proposal in wasmedge and wasmedgec tools.
  • Supported LLVM 14 on MacOS.
    • Used the new macho in lld on LLVM-14 envronment.
    • Bumpped IWYU to 0.18 to be compatible with LLVM 14 on MacOS.
  • Bumpped the MacOS x86_64 build to MacOS 11.

Fixed issues:

  • Fixed the universal WASM format failed on MacOS platforms.
    • Developers can specify the extension name as .wasm on MacOS as the universal WASM format output of the AOT compiler to enable the AOT mode.
  • Fixed the WasmEdge C API static library on MacOS with LLVM 14.
    • The WasmEdge C API static library is in experimental and not guaranteed. The shared library is recommended.
  • Reduced the branch miss when instantiating AOT-compiled WASM.

Refactor:

  • Moved the code of WasmEdge CLI tools into WasmEdge::Driver.
  • Moved the plugin tests into the test/plugins folder.

Known issues:

  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Added the spec tests for the threads proposal.
  • Added the WASI-NN unit tests.

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.

WasmEdge - WasmEdge 0.10.1-rc.1

Published by github-actions[bot] about 2 years ago

0.10.1-rc.1 (2022-07-26)

Features:

  • Supported WASI-NN plug-in with OpenVINO backend on Ubuntu 20.04 x86_64.
    • Users can refer to the standard extension status for the information.
    • For building with enabling WASI-NN with OpenVINO backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="OpenVINO" in cmake.
  • Supported WASI-crypto plug-in on Ubuntu 20.04 x86_64, manylinux2014 x86_64, and manylinux2014 aarch64.
    • Users can refer to the standard extension status for the information.
    • For building with enabling WASI-crypto with OpenSSL 1.1, please add the -DWASMEDGE_PLUGIN_WASI_CRYPTO=ON in cmake.
  • Added the static tool building option.
    • By default, WasmEdge tools will depend on the WasmEdge shared library.
    • Developers can add the -DWASMEDGE_BUILD_STATIC_LIB=On and -DWASMEDGE_BUILD_STATIC_TOOLS=On to build the stand-alone WasmEdge CLI tools.
  • Exported the components of WasmEdge_VMContext in WasmEdge C API.
    • Added the WasmEdge_VMGetLoaderContext API for retrieving the WasmEdge_LoaderContext in VM.
    • Added the WasmEdge_VMGetValidatorContext API for retrieving the WasmEdge_ValidatorContext in VM.
    • Added the WasmEdge_VMGetExecutorContext API for retrieving the WasmEdge_ExecutorContext in VM.
  • Added the API for CLI tools.
    • Developers can use the WasmEdge_Driver_Compiler API to trigger the WasmEdge AOT compiler tool.
    • Developers can use the WasmEdge_Driver_Tool API to trigger the WasmEdge runtime tool.
  • Supported the WASM threads proposal.
    • Added the WasmEdge_Proposal_Threads for the configuration in WasmEdge C API.
    • Users can use the --enable-threads to enable the proposal in wasmedge and wasmedgec tools.
  • Supported LLVM 14 on MacOS.
    • Used the new macho in lld on LLVM-14 envronment.
    • Bumpped IWYU to 0.18 to be compatible with LLVM 14 on MacOS.

Fixed issues:

  • Fixed the universal WASM format failed on MacOS platforms.
    • Developers can specify the extension name as .wasm on MacOS as the universal WASM format output of the AOT compiler to enable the AOT mode.
  • Fixed the WasmEdge C API static library on MacOS with LLVM 14.
    • The WasmEdge C API static library is in experimental and not guaranteed. The shared library is recommended.
  • Reduced the branch miss when instantiating AOT-compiled WASM.

Refactor:

  • Moved the code of WasmEdge CLI tools into WasmEdge::Driver.
  • Moved the plugin tests into the test/plugins folder.

Known issues:

  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Added the spec tests for the threads proposal.
  • Added the WASI-NN unit tests.

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-alpha.2-src.tar.gz instead of the zip or tarball provided by GitHub directly.

WasmEdge - WasmEdge 0.10.1-alpha.3

Published by github-actions[bot] over 2 years ago

0.10.1-alpha.3 (2022-07-20)

Features:

  • Supported WASI-NN plug-in with OpenVINO backend on Ubuntu 20.04 x86_64.
    • Users can refer to the standard extension status for the information.
    • For building with enabling WASI-NN with OpenVINO backend, please add the -DWASMEDGE_PLUGIN_WASI_NN_BACKEND="OpenVINO" in cmake.
  • Added the static tool building option.
    • By default, WasmEdge tools will depend on the WasmEdge shared library.
    • Developers can add the -DWASMEDGE_BUILD_STATIC_LIB=On and -DWASMEDGE_BUILD_STATIC_TOOLS=On to build the stand-alone WasmEdge CLI tools.
  • Exported the components of WasmEdge_VMContext in WasmEdge C API.
    • Added the WasmEdge_VMGetLoaderContext API for retrieving the WasmEdge_LoaderContext in VM.
    • Added the WasmEdge_VMGetValidatorContext API for retrieving the WasmEdge_ValidatorContext in VM.
    • Added the WasmEdge_VMGetExecutorContext API for retrieving the WasmEdge_ExecutorContext in VM.
  • Added the API for CLI tools.
    • Developers can use the WasmEdge_Driver_Compiler API to trigger the WasmEdge AOT compiler tool.
    • Developers can use the WasmEdge_Driver_Tool API to trigger the WasmEdge runtime tool.
  • Supported the WASM threads proposal.
    • Added the WasmEdge_Proposal_Threads for the configuration in WasmEdge C API.
    • Users can use the --enable-threads to enable the proposal in wasmedge and wasmedgec tools.
  • Supported LLVM 14 on MacOS.
    • Used the new macho in lld on LLVM-14 envronment.
    • Bumpped IWYU to 0.18 to be compatible with LLVM 14 on MacOS.

Fixed issues:

  • Fixed the universal WASM format failed on MacOS platforms.
    • Developers can specify the extension name as .wasm on MacOS as the universal WASM format output of the AOT compiler to enable the AOT mode.
  • Fixed the WasmEdge C API static library on MacOS with LLVM 14.
    • The WasmEdge C API static library is in experimental and not guaranteed. The shared library is recommended.
  • Reduced the branch miss when instantiating AOT-compiled WASM.

Refactor:

  • Moved the code of WasmEdge CLI tools into WasmEdge::Driver.
  • Moved the plugin tests into the test/plugins folder.

Known issues:

  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Added the spec tests for the threads proposal.
  • Added the WASI-NN unit tests.

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, 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, swartz-k, yale

If you want to build from source, please use WasmEdge-0.10.1-alpha.2-src.tar.gz instead of the zip or tarball provided by GitHub directly.

WasmEdge - WasmEdge 0.10.1-alpha.2

Published by github-actions[bot] over 2 years ago

0.10.1-alpha.2 (2022-07-04)

Features:

  • Supported WASI-NN plug-in with OpenVINO backend on Ubuntu 20.04 x86_64.
    • Users can refer to the standard extension status for the information.
    • For building with enabling WASI-NN with OpenVINO backend, please add the -DWASMEDGE_WASINN_BACKEND="OpenVINO" in cmake.
  • Supported the WASM threads proposal.
    • Added the WasmEdge_Proposal_Threads for the configuration in WasmEdge C API.
    • Users can use the --enable-threads to enable the proposal in wasmedge and wasmedgec tools.
  • Supported LLVM 14 on MacOS.
    • Used the new macho in lld on LLVM-14 envronment.
    • Bumpped IWYU to 0.18 to be compatible with LLVM 14 on MacOS.

Fixed issues:

  • Fixed the universal WASM format failed on MacOS platforms.
    • Developers can specify the extension name as .wasm on MacOS as the universal WASM format output of the AOT compiler to enable the AOT mode.
  • Fixed the WasmEdge C API static library on MacOS with LLVM 14.
    • The WasmEdge C API static library is in experimental and not guaranteed. The shared library is recommended.
  • Reduced the branch miss when instantiating AOT-compiled WASM.

Known issues:

  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Added the spec tests for the threads proposal.
  • Added the WASI-NN unit tests.

Thank all the contributors that made this release possible!

Abhinandan Udupa, Frank Lin, Jianbai Ye, Kevin O'Neal, LFsWang, Lokesh Mandvekar, Michael Yuan, Shen-Ta Hsieh, Shreyas Atre, Sylveon, Tricster, William Wen, 罗泽轩, Xin Liu, Yi Huang, Yi-Ying He, Yixing Jia, abhinandanudupa, alabulei1, dm4, eat4toast, eee4017, hydai, swartz-k, yale

If you want to build from source, please use WasmEdge-0.10.1-alpha.2-src.tar.gz instead of the zip or tarball provided by GitHub directly.

WasmEdge - WasmEdge 0.10.1-alpha.1

Published by github-actions[bot] over 2 years ago

0.10.1-alpha.1 (2022-06-22)

Features:

  • Supported WASI-NN plug-in with OpenVINO backend on Ubuntu 20.04 x86_64.
  • Supported the WASM threads proposal.
    • Added the WasmEdge_Proposal_Threads for the configuration in WasmEdge C API.
    • Users can use the --enable-threads to enable the proposal in wasmedge and wasmedgec tools.

Fixed issues:

  • Fixed the WasmEdge C API static library on MacOS with LLVM 14.
    • The WasmEdge C API static library is in experimental and not guaranteed. The shared library is recommended.

Known issues:

  • Universal WASM format failed on MacOS platforms.
    • In current status, the universal WASM format output of the AOT compiler on MacOS platforms will cause bus error when execution.
    • We are trying to fix this issue. For working around, please use the shared library format output of the AOT mode.
    • Developers can specify the extension name as .dylib on MacOS, .so on Linux, and .dll on Windows for the shared library format output of the AOT compiler.
  • WasmEdge CLI failed on Windows 10 issue.
  • Plug-in linking on MacOS platforms.
    • The plug-in on MacOS platforms will cause symbol not found when dynamic linking.
    • We are trying to fix this issue. For working around, please implement the host modules instead of plug-ins.

Documentations:

Tests:

  • Added the spec tests for the threads proposal.
  • Added the WASI-NN unit tests.

Thank all the contributors that made this release possible!

Abhinandan Udupa, Frank Lin, Jianbai Ye, LFsWang, Lokesh Mandvekar, Michael Yuan, Shen-Ta Hsieh, Shreyas Atre, Sylveon, Tricster, William Wen, 罗泽轩, Xin Liu, Yi Huang, Yi-Ying He, Yixing Jia, abhinandanudupa, alabulei1, dm4, eee4017, hydai, swartz-k, yale

If you want to build from source, please use WasmEdge-0.10.1-alpha.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

WasmEdge - WasmEdge 0.10.0

Published by github-actions[bot] over 2 years ago

0.10.0 (2022-05-26)

Breaking changes:

  • WasmEdge C API changes.
    • Merged the 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().
    • Used the pointer to 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 *.
    • Moved the functions of 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().
    • Updated the WasmEdge_VMContext APIs.
      • Added the 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.
    • For upgrading from 0.9.1 to 0.10.0, please refer to the document.

Features:

  • Supported LLVM 14.
  • Supported the WASM tail-call proposal.
    • Added the WasmEdge_Proposal_TailCall for the configuration in WasmEdge C API.
    • Users can use the --enable-tail-call to enable the proposal in wasmedge and wasmedgec tools.
  • Supported the WASM extended-const proposal.
    • Added the WasmEdge_Proposal_ExtendedConst for the configuration in WasmEdge C API.
    • Users can use the --enable-extended-const to enable the proposal in wasmedge and wasmedgec tools.
  • Supported thread-safe in WasmEdge_VMContext, WasmEdge_ConfigureContext, WasmEdge_ModuleInstanceContext, and WasmEdge_StoreContext APIs.
  • Supported the gas limit in AOT mode.
  • New supporting of the wasi-socket proposal.
    • Supported send_to.
    • Supported resv_from.
  • Plugin support
    • Add loadable plugin support.
    • Move wasmedge_process to a loadable plugin.

Fixed issues:

  • Fixed wasi-socket proposal issues.
    • Fixed wasi-socket on MacOS.
    • Fixed error when calling poll_oneoff with the same fd twice.
    • Fixed error when calling fd_close on socket.
    • Forged zero-terminated string for ::getaddrinfo.
    • Checked the socket options enumeration for valid value.
  • Fixed the statistics enable/disable routine.
  • Fixed the output format by the file extension name detection on multiple platforms.

Known issues:

  • Universal WASM format failed on MacOS platforms.
    • In current status, the universal WASM format output of the AOT compiler on MacOS platforms will cause bus error when execution.
    • We are trying to fix this issue. For working around, please use the shared library format output of the AOT mode.
    • Developers can specify the extension name as .dylib on MacOS, .so on Linux, and .dll on Windows for the shared library format output of the AOT compiler.

Refactor:

  • Supported multi-thread execution.
    • Changed the StackManager in Executor as thread local to support the multi-thread.
    • Used atomic operations for cost measuring.
    • Supported multi-thread timer.
  • Refactored the enumerations.
    • Replaced the std::unordered_map of the enumeration strings with DenseMap and SpareMap.
    • Merged the both C and C++ enumeration definitions into the enum.inc file.
    • Updated the ErrCode enumeration for the newest spec tests.
  • Refactored the code architecture for supporting tail-call proposal.
    • Split the call_indirect execution routine in compiler into AOT and interpreter path.
    • Updated the pop frame mechanism in the StackManager.
    • Updated the enter function mechanism.
  • Refined the file manager in Loader.
    • Supported the offset seeking in file and buffer.
    • Skipped the instructions parsing in AOT mode for better loading performance.
  • Refined the branch mechanism in the StackManager for better performance in the interpreter mode.
    • Pre-calculated the stack offset for branch in the validation phase.
    • Removed the label stack in the StackManager and used the pre-calculated data for branch.
    • Removed the dummy frame mechanism in the StackManager.
  • Supplied the pointer-based retrieving mechanism in the StoreManager and ModuleInstance.
    • Removed the address mechanism for instances in the StoreManager.
    • Added the unsafe getter functions for the instances.
  • Refactored the StoreManager, ModuleInstance, and Executor.
    • Used the ModuleInstance-based resource management instead of StoreManager-based.
    • Moved the ownership of instances from the StoreManager into the ModuleInstance.
    • Merged the ImportObject into the ModuleInstance.
    • Invoking functions by FunctionInstance rather than the function name in Executor.

Documentations:

Tests:

  • Updated the spec tests to the date 20220504.
  • Added the spec tests for the tail-call proposal.
  • Added the spec tests for the extended-const proposal.
  • Added the mixed invocation tests between interpreter mode and AOT mode WASM functions.
  • Added the thread-safe and multi-thread execution tests.
  • Added wasi-socket tests for 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.

WasmEdge - WasmEdge 0.10.0-rc.1

Published by github-actions[bot] over 2 years ago

0.10.0-rc.1 (2022-05-24)

Breaking changes:

  • WasmEdge C API changes.
    • Merged the 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().
    • Used the pointer to 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 *.
    • Moved the functions of 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().
    • Updated the WasmEdge_VMContext APIs.
      • Added the 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.
    • For upgrading from 0.9.1 to 0.10.0, please refer to the document.

Features:

  • Supported LLVM 14.
  • Supported the WASM tail-call proposal.
    • Added the WasmEdge_Proposal_TailCall for the configuration in WasmEdge C API.
    • Users can use the --enable-tail-call to enable the proposal in wasmedge and wasmedgec tools.
  • Supported the WASM extended-const proposal.
    • Added the WasmEdge_Proposal_ExtendedConst for the configuration in WasmEdge C API.
    • Users can use the --enable-extended-const to enable the proposal in wasmedge and wasmedgec tools.
  • Supported thread-safe in WasmEdge_VMContext, WasmEdge_ConfigureContext, WasmEdge_ModuleInstanceContext, and WasmEdge_StoreContext APIs.
  • Supported the gas limit in AOT mode.
  • New supporting of the wasi-socket proposal.
    • Supported send_to.
    • Supported resv_from.
  • Plugin support
    • Add loadable plugin support.
    • Move wasmedge_process to a loadable plugin.

Fixed issues:

  • Fixed wasi-socket proposal issues.
    • Fixed wasi-socket on MacOS.
    • Fixed error when calling poll_oneoff with the same fd twice.
    • Fixed error when calling fd_close on socket.
    • Forged zero-terminated string for ::getaddrinfo.
    • Checked the socket options enumeration for valid value.
  • Fixed the statistics enable/disable routine.
  • Fixed the output format by the file extension name detection on multiple platforms.

Known issues:

  • Universal WASM format failed on MacOS platforms.
    • In current status, the universal WASM format output of the AOT compiler on MacOS platforms will cause bus error when execution.
    • We are trying to fix this issue. For working around, please use the shared library format output of the AOT mode.
    • Developers can specify the extension name as .dylib on MacOS, .so on Linux, and .dll on Windows for the shared library format output of the AOT compiler.

Refactor:

  • Supported multi-thread execution.
    • Changed the StackManager in Executor as thread local to support the multi-thread.
    • Used atomic operations for cost measuring.
    • Supported multi-thread timer.
  • Refactored the enumerations.
    • Replaced the std::unordered_map of the enumeration strings with DenseMap and SpareMap.
    • Merged the both C and C++ enumeration definitions into the enum.inc file.
    • Updated the ErrCode enumeration for the newest spec tests.
  • Refactored the code architecture for supporting tail-call proposal.
    • Split the call_indirect execution routine in compiler into AOT and interpreter path.
    • Updated the pop frame mechanism in the StackManager.
    • Updated the enter function mechanism.
  • Refined the file manager in Loader.
    • Supported the offset seeking in file and buffer.
    • Skipped the instructions parsing in AOT mode for better loading performance.
  • Refined the branch mechanism in the StackManager for better performance in the interpreter mode.
    • Pre-calculated the stack offset for branch in the validation phase.
    • Removed the label stack in the StackManager and used the pre-calculated data for branch.
    • Removed the dummy frame mechanism in the StackManager.
  • Supplied the pointer-based retrieving mechanism in the StoreManager and ModuleInstance.
    • Removed the address mechanism for instances in the StoreManager.
    • Added the unsafe getter functions for the instances.
  • Refactored the StoreManager, ModuleInstance, and Executor.
    • Used the ModuleInstance-based resource management instead of StoreManager-based.
    • Moved the ownership of instances from the StoreManager into the ModuleInstance.
    • Merged the ImportObject into the ModuleInstance.
    • Invoking functions by FunctionInstance rather than the function name in Executor.

Documentations:

Tests:

  • Updated the spec tests to the date 20220504.
  • Added the spec tests for the tail-call proposal.
  • Added the spec tests for the extended-const proposal.
  • Added the mixed invocation tests between interpreter mode and AOT mode WASM functions.
  • Added the thread-safe and multi-thread execution tests.
  • Added wasi-socket tests for 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, 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, 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-rc.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.

WasmEdge - WasmEdge 0.10.0-alpha.2

Published by github-actions[bot] over 2 years ago

0.10.0-alpha.2 (2022-05-20)

Breaking changes:

  • WasmEdge C API changes.
    • Merged the 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().
    • Used the pointer to 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 *.
    • Moved the functions of 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().
    • Updated the WasmEdge_VMContext APIs.
      • Added the 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.
    • For upgrading from 0.9.1 to 0.10.0, please refer to the document.

Features:

  • Supported the WASM tail-call proposal.
    • Added the WasmEdge_Proposal_TailCall for the configuration in WasmEdge C API.
    • Users can use the --enable-tail-call to enable the proposal in wasmedge and wasmedgec tools.
  • Supported the WASM extended-const proposal.
    • Added the WasmEdge_Proposal_ExtendedConst for the configuration in WasmEdge C API.
    • Users can use the --enable-extended-const to enable the proposal in wasmedge and wasmedgec tools.
  • Supported thread-safe in WasmEdge_VMContext, WasmEdge_ConfigureContext, WasmEdge_ModuleInstanceContext, and WasmEdge_StoreContext APIs.
  • Supported the gas limit in AOT mode.
  • New supporting of the wasi-socket proposal.
    • Supported send_to.
    • Supported resv_from.
  • Plugin support
    • Add loadable plugin support.
    • Move wasmedge_process to a loadable plugin.

Fixed issues:

  • Fixed wasi-socket proposal issues.
    • Fixed wasi-socket on MacOS.
    • Fixed error when calling poll_oneoff with the same fd twice.
    • Fixed error when calling fd_close on socket.
    • Forged zero-terminated string for ::getaddrinfo.
    • Checked the socket options enumeration for valid value.
  • Fixed the statistics enable/disable routine.
  • Fixed the output format by the file extension name detection on multiple platforms.

Known issues:

  • Universal WASM format failed on MacOS platforms.
    • In current status, the universal WASM format output of the AOT compiler on MacOS platforms will cause bus error when execution.
    • We are trying to fix this issue. For working around, please use the shared library format output of the AOT mode.
    • Developers can specify the extension name as .dylib on MacOS, .so on Linux, and .dll on Windows for the shared library format output of the AOT compiler.

Refactor:

  • Supported multi-thread execution.
    • Changed the StackManager in Executor as thread local to support the multi-thread.
    • Used atomic operations for cost measuring.
    • Supported multi-thread timer.
  • Refactored the enumerations.
    • Replaced the std::unordered_map of the enumeration strings with DenseMap and SpareMap.
    • Merged the both C and C++ enumeration definitions into the enum.inc file.
    • Updated the ErrCode enumeration for the newest spec tests.
  • Refactored the code architecture for supporting tail-call proposal.
    • Split the call_indirect execution routine in compiler into AOT and interpreter path.
    • Updated the pop frame mechanism in the StackManager.
    • Updated the enter function mechanism.
  • Refined the file manager in Loader.
    • Supported the offset seeking in file and buffer.
    • Skipped the instructions parsing in AOT mode for better loading performance.
  • Refined the branch mechanism in the StackManager for better performance in the interpreter mode.
    • Pre-calculated the stack offset for branch in the validation phase.
    • Removed the label stack in the StackManager and used the pre-calculated data for branch.
    • Removed the dummy frame mechanism in the StackManager.
  • Supplied the pointer-based retrieving mechanism in the StoreManager and ModuleInstance.
    • Removed the address mechanism for instances in the StoreManager.
    • Added the unsafe getter functions for the instances.
  • Refactored the StoreManager, ModuleInstance, and Executor.
    • Used the ModuleInstance-based resource management instead of StoreManager-based.
    • Moved the ownership of instances from the StoreManager into the ModuleInstance.
    • Merged the ImportObject into the ModuleInstance.
    • Invoking functions by FunctionInstance rather than the function name in Executor.

Documentations:

Tests:

  • Updated the spec tests to the date 20220504.
  • Added the spec tests for the tail-call proposal.
  • Added the mixed invocation tests between interpreter mode and AOT mode WASM functions.
  • Added the thread-safe and multi-thread execution tests.
  • Added wasi-socket tests for 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, 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, eat4toast, hydai, jerbmarx, luckyJ-nj, meoww-bot, mydreamer4134, situ2001, tpmccallum, treeplus, wangyuan249, 王琦

If you want to build from source, please use WasmEdge-0.10.0-alpha.1-src.tar.gz instead of the zip or tarball provided by GitHub directly.