diff options
author | Paul Pan | 2023-05-17 17:25:30 +0800 |
---|---|---|
committer | Paul Pan | 2023-05-17 17:25:30 +0800 |
commit | bb3fe995e407c98a563484b6932f303513da96bb (patch) | |
tree | 462c503ec182a69ae34b9a1755bf426ea1c96926 | |
parent | 749f9b04721857e3ab07263996f7563adbea4599 (diff) | |
download | aur-bb3fe995e407c98a563484b6932f303513da96bb.tar.gz |
update to 1.2.2 and add wamrc compiler
-rw-r--r-- | .SRCINFO | 13 | ||||
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | PKGBUILD | 51 | ||||
-rw-r--r-- | RELEASE_NOTES.md | 320 |
4 files changed, 296 insertions, 89 deletions
@@ -1,15 +1,18 @@ pkgbase = wasm-micro-runtime pkgdesc = Standalone WebAssembly (WASM) runtime with small footprint - pkgver = 1.1.2 - pkgrel = 2 + pkgver = 1.2.2 + pkgrel = 1 url = https://github.com/bytecodealliance/wasm-micro-runtime changelog = RELEASE_NOTES.md arch = x86_64 license = Apache makedepends = cmake + makedepends = llvm depends = glibc - provides = libiwasm.so - source = wasm-micro-runtime-1.1.2.tar.gz::https://github.com/bytecodealliance/wasm-micro-runtime/archive/WAMR-1.1.2.tar.gz - sha256sums = 976b928f420040a77e793051e4d742208adf157370b9ad0f5535e126adb31eb0 + depends = llvm-libs + provides = wasm-micro-runtime + conflicts = wasm-micro-runtime-git + source = wasm-micro-runtime-1.2.2.tar.gz::https://github.com/bytecodealliance/wasm-micro-runtime/archive/WAMR-1.2.2.tar.gz + sha512sums = 13b995ccca0ebc183df943a5fa47a8aa25361cca4081e8fa5316732979e89e4e289a6ff43955617f5fb271f31a3a9e511dec0815c53dd7c058eed958d0a2ac7d pkgname = wasm-micro-runtime diff --git a/.gitignore b/.gitignore index f71c635dafda..b04cf9340a21 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ !.gitignore !PKGBUILD !.SRCINFO +!RELEASE_NOTES.md @@ -1,19 +1,21 @@ -# Maintainer: Luis Martinez <luis dot martinez at disroot dot org> +# Maintainer: Paul Pan <i [at] 0x7f [dot] app> +# Contributor: Luis Martinez <luis dot martinez at disroot dot org> # Contributor: Eric Engestrom <aur [at] engestrom [dot] ch> pkgname=wasm-micro-runtime -pkgver=1.1.2 -pkgrel=2 +pkgver=1.2.2 +pkgrel=1 pkgdesc="Standalone WebAssembly (WASM) runtime with small footprint" arch=('x86_64') url="https://github.com/bytecodealliance/wasm-micro-runtime" license=('Apache') -depends=('glibc') -makedepends=('cmake') -provides=('libiwasm.so') -changelog=RELEASE_NOTES.md +depends=('glibc' 'llvm-libs') +makedepends=('cmake' 'llvm') +provides=("wasm-micro-runtime") +conflicts=("wasm-micro-runtime-git") +changelog="RELEASE_NOTES.md" source=("$pkgname-$pkgver.tar.gz::$url/archive/WAMR-$pkgver.tar.gz") -sha256sums=('976b928f420040a77e793051e4d742208adf157370b9ad0f5535e126adb31eb0') +sha512sums=('13b995ccca0ebc183df943a5fa47a8aa25361cca4081e8fa5316732979e89e4e289a6ff43955617f5fb271f31a3a9e511dec0815c53dd7c058eed958d0a2ac7d') build() { cmake \ @@ -21,18 +23,47 @@ build() { -S "$pkgname-WAMR-$pkgver/product-mini/platforms/linux" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ + -DWAMR_BUILD_MULTI_MODULE=1 \ + -DWAMR_BUILD_SHARED_MEMORY=1 \ + -DWAMR_BUILD_BULK_MEMORY=1 \ + -DWAMR_BUILD_THREAD_MGR=1 \ + -DWAMR_BUILD_LIB_PTHREAD=1 \ + -DWAMR_BUILD_LIB_PTHREAD_SEMAPHORE=1 \ + -DWAMR_BUILD_LIB_WASI_THREADS=1 \ + -DWAMR_BUILD_TAIL_CALL=1 \ + -DWAMR_BUILD_SIMD=1 \ + -DWAMR_BUILD_REF_TYPES=1 \ -Wno-dev cmake \ -B build-lib \ -S "$pkgname-WAMR-$pkgver" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ + -DWAMR_BUILD_MULTI_MODULE=1 \ + -DWAMR_BUILD_SHARED_MEMORY=1 \ + -DWAMR_BUILD_BULK_MEMORY=1 \ + -DWAMR_BUILD_THREAD_MGR=1 \ + -DWAMR_BUILD_LIB_PTHREAD=1 \ + -DWAMR_BUILD_LIB_PTHREAD_SEMAPHORE=1 \ + -DWAMR_BUILD_LIB_WASI_THREADS=1 \ + -DWAMR_BUILD_TAIL_CALL=1 \ + -DWAMR_BUILD_SIMD=1 \ + -DWAMR_BUILD_REF_TYPES=1 \ -Wno-dev - cmake --build build - cmake --build build-lib + cmake \ + -B build-compiler \ + -S "$pkgname-WAMR-$pkgver/wamr-compiler" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DWAMR_BUILD_WITH_CUSTOM_LLVM=1 \ + -Wno-dev + cmake --build build -j8 + cmake --build build-lib -j8 + cmake --build build-compiler -j8 } package() { DESTDIR="${pkgdir}" cmake --install build DESTDIR="${pkgdir}" cmake --install build-lib + DESTDIR="${pkgdir}" cmake --install build-compiler } diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index a0cfe7a82ac9..d6308ce671ec 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,88 +1,258 @@ +## WAMR-1.2.2 + +### Breaking Changes + +### New Features +- Implement Fast JIT multi-threading feature (#2134) + +### Bug Fixes +- Update request.ts wasm_response_send signature (#2122) +- Fix ems allocator unaligned memory access on riscv64 (#2140) +- libc_wasi_wrapper.c: Fix min func issue for size_t < 8 bytes on some platforms (#2152) +- Fix three multi-threading and wasm-c-api-imports issues (#2173) +- Fix build polybench benchmark error with wasi-sdk-19.0 (#2187) +- Fix wamr-ide debugger ignoring launch config (#2155) + +### Enhancements +- Add test for validating linear memory size updates (#2078) +- Update Zephyr docs to remove unsupported west subcommand (#2128) +- Update messages/comments to refer the new place of the version definition (#2133) +- build_wamr_lldb.yml: sync lldb build options between ubuntu and macos (#2132) +- build_wamr_vscode_ext.yml: vsce publish only on the official repo (#2130) +- VSCode-Extension: Download lldb built for ubuntu 20.04 (#2139) +- Avoid re-installing if Tensorflow is already installed for WASI-NN (#2148) +- wamrc: Add --stack-usage option (#2158) +- Fix URL in language-bindings/python/README.md (#2166) +- Fix URL in embed_wamr.md (#2165) +- Fix URL in README.md (#2168) +- Return error when exception was raised after main thread finishes (#2169) +- wasi-nn: Add external delegation to support several NPU/GPU (#2162) +- Update document for iwasm/wamrc dependent packages (#2183) +- Use a manual flag to disable clock_nanosleep on the unsupported platforms (#2176) +- Fix compile warnings on windows platform (#2208) + +### Others +- CI: Add ubsan checks to samples/wasm-c-api (#2147) +- CI: More precise trigger paths for github actions (#2157) + +--- + +## WAMR-1.2.1 + +### Breaking Changes + +### New Features + +### Bug Fixes +- libc-wasi/posix.c: Fix POLL{RD,WR}NORM in uClibc (#2069) +- Fix bh_assert for 64-bit platforms (#2071) +- wamr-ide: Modify Dockerfile to update base image version and fix build issue (#2068) +- Fix module_malloc/module_free issues (#2072) +- Fix use after free when dumping call stack (#2084) +- Fix compilation errors of workload xnnpack and meshoptimizer (#2081) +- Fix typo in Fast JIT's BUILD_COND_BR Macro (#2092) +- Fix sanitizer pointer overflow warning when perform pointer arithmetic (#2098) +- Update sample workload tensorflow (#2101) +- Fix ref.func forward-declared function check (#2099) +- Fix interpreter read linear memory size for multi-threading (#2088) + +### Enhancements +- Limit the minimal size of bh_hashmap (#2073) +- Bump tensorflow to 2.11.1 in /core/iwasm/libraries/wasi-nn/test (#2061) +- Bump tensorflow to 2.11.1 in install_tensorflow.sh (#2076) +- Add support for universal binaries on OSX (#2060) +- Update documents (#2100) + +### Others +- spectest/nuttx: Increase stack size of iwasm task (#2082) +- ci: Refactor windows build definition (#2087) +- ci: Enable WASI threads in CI (#2086) +- Use wasi-sdk-20 to build wasi-threads cases in CI (#2095) + +--- + +## WAMR-1.2.0 + +### Breaking Changes + + +### New Features +- Implement two-level Multi-tier JIT engine: tier-up from Fast JIT to LLVM JIT to get quick cold startup and better performance +- Enable running mode control for runtime, wasm module instance and iwasm +- Implement wasi-threads feature +- Upgrade toolkits: upgrade to llvm-15.0, wasi-sdk-19.0, emsdk-3.1.28 and so on +- Port WAMR to the FreeBSD platform +- Refactor wasi-nn to simplify the support for multiple frameworks +- wasi-nn: Enable GPU support +- wasi-nn: Support multiple TFLite models +- Add WAMR API bindings in Python +- Add libsodium benchmark + +### Bug Fixes +- Fix wasm-c-api import func link issue in wasm_instance_new +- Fix watchpoint segfault when using debug interp without server +- libc-wasi: Fix spurious poll timeout +- Fix typo verify_module in aot_compiler.c +- Fix failure about preopen of reactor modules +- Fix equal check in AOT XIP float cmp intrinsic +- Fix issue of resolving func name in custom name section +- Fix go language binding build on macos arm64 +- Prevent undefined behavior from c_api_func_imports == NULL +- Fix potential block issue in source debugger +- SGX IPFS: Fix a segfault and support seeking beyond the end of files while using SEEK_CUR/SEEK_END +- Fix undef error about WAMR_BUILD_MEMORY_PROFILING +- Fix jit memory overwritten after instance deinstantiate +- Fix stack alignment issue on ia32 +- Fix explicit casts and types in espidf_socket.c +- Fix potential integer overflow issue in wasm-c-api +- Fix libc-wasi build failure when using clang +- Fix wamrapi python binding for darwin +- Fix getting port issue in posix os_socket_bind +- Fix key error in build_llvm.py +- nuttx: Add missing pthread.h header +- Fix os_socket_addr_resolve() for IPv6 +- Enhance/Fix sample socket-api and workload +- Fix fast-jit build error +- Fix dead lock in source debugger +- fix debugger: Set termination flags also when in debug mode + +### Enhancements +- Add WAMR-IDE vscode extension to the Visual Studio Marketplace +- Refine Windows thread waiting list operations +- Improve wasm-c-api instantiation-time linking +- Enable platform support for esp-idf v5.0.1 +- Readme refactoring +- Add architecture diagram for wasm function +- Add architecture document for wasm export +- Add architecture diagram for wasm globals and classic-interp stack frame +- Use boringssl instead of openssl to implement wasm cache loading +- Implement i32.rem_s and i32.rem_u intrinsic +- Perfect the codebase for wamr-ide +- Remove unnecessary ret value control when spec test is enabled +- Use float version library routine for XIP aot_intrinsic_xxx APIs +- Register missing symbols for f32 to 64 bit integer conversion +- Report error in instantiation when meeting unlinked import globals +- Add more types and APIs for attr_container +- Simplify fcmp intrinsic logic for AOT/XIP +- Add some missing macros for int literals in wamr-sdk libc-builtin-sysroot stdint.h +- nuttx: Mock socket APIs if NET is disabled +- Main thread spread exception when thread-mgr is enabled +- Implement opcode atomic.wait and atomic.notify for Fast JIT +- Add docker images auto check and setup support for WAMR-IDE +- Make memory profiling show native stack usage +- Enable gcc-4.8 compilation +- Enable specifying out-of-source platform configuration cmake file +- Add gh api call for fetching llvm version (#1942) Fixes +- Don't terminate other threads when create thread failed +- Modify poll_oneoff in libc-wasi to make it interruptible +- Expose wasm_runtime_call_indirect +- Make a workaround for EGO when fstat returns NOT_SUPPORT +- Re-org calling post instantiation functions +- Enable custom llvm build flags +- support SSH for git clone llvm +- Support dump call stack on exception and dump call stack on nuttx +- Update document for source debugging +- Document some info about estimating memory usage +- Document the summary of two pthread implementations +- Refine aot compiler check suspend_flags and fix issue of multi-tier jit + +### Others +- Enable XIP in CI daily test +- Integrate wasi test suite to wamr-test-suites and CI +- Add CI for wasi-threads tests +- Update CIs and documents to make naming of generated binaries consist +- Enable CI wasi test suite for x86-32 classic/fast interpreter +- CI: Enable libc-wasi compilation test on NuttX +- CI: Enable Multi-tier JIT by default for released iwasm binary +- Enable CI build for gcc 4.8 on linux + +--- + ## WAMR-1.1.2 ### Breaking Changes -Remove the LLVM MCJIT mode, replace it with LLVM ORC JIT eager mode -Add option to pass user data to the allocator functions of RuntimeInitArgs -Change how iwasm returns: - return 1 if an exception was thrown, else - return the wasi exit code if the wasm app is a wasi app, else - keep the same behavior as before -Enable bulk memory by default +- Remove the LLVM MCJIT mode, replace it with LLVM ORC JIT eager mode +- Add option to pass user data to the allocator functions of RuntimeInitArgs +- Change how iwasm returns: + - return 1 if an exception was thrown, else + - return the wasi exit code if the wasm app is a wasi app, else + - keep the same behavior as before +- Enable bulk memory by default ### New Features -Add control for the native stack check with hardware trap -Add memory watchpoint support to debugger -Add wasm_module_obtain() to clone wasm_module_t -Implement Fast JIT dump call stack and perf profiling -esp-idf: Add socket support for esp-idf platform +- Add control for the native stack check with hardware trap +- Add memory watchpoint support to debugger +- Add wasm_module_obtain() to clone wasm_module_t +- Implement Fast JIT dump call stack and perf profiling +- esp-idf: Add socket support for esp-idf platform ### Bug Fixes -Fix XIP issue caused by rem_s on RISC-V -Fix XIP issues of fp to int cast and int rem/div -Fix missing float cmp for XIP -Correct the arch name for armv7a on NuttX -Fix issue of restoring wasm operand stack -Fix issue of thumb relocation R_ARM_THM_MOVT_ABS -Fix fast jit issue of translating opcode i32.rem_s/i64.rem_s -Fix interp/fast-jit float min/max issues -Fix missing intrinsics for risc-v which were reported by spec test -wasm-c-api: Fix init/destroy thread env multiple times issue -Fix wasm-c-api import func link issue in wasm_instance_new -Fix sample ref-types/wasm-c-api build error with wat2wasm low version -Fix zephyr sample build errors -Fix source debugger error handling: continue executing when detached -Fix scenario where the timeout for atomic wait is set to negative number -Fix link cxx object file error when building wamrc for docker image -Fix XIP issue of handling 64-bit const in 32-bit target +- Fix XIP issue caused by rem_s on RISC-V +- Fix XIP issues of fp to int cast and int rem/div +- Fix missing float cmp for XIP +- Correct the arch name for armv7a on NuttX +- Fix issue of restoring wasm operand stack +- Fix issue of thumb relocation R_ARM_THM_MOVT_ABS +- Fix fast jit issue of translating opcode i32.rem_s/i64.rem_s +- Fix interp/fast-jit float min/max issues +- Fix missing intrinsics for risc-v which were reported by spec test +- wasm-c-api: Fix init/destroy thread env multiple times issue +- Fix wasm-c-api import func link issue in wasm_instance_new +- Fix sample ref-types/wasm-c-api build error with wat2wasm low version +- Fix zephyr sample build errors +- Fix source debugger error handling: continue executing when detached +- Fix scenario where the timeout for atomic wait is set to negative number +- Fix link cxx object file error when building wamrc for docker image +- Fix XIP issue of handling 64-bit const in 32-bit target ### Enhancements -Refactor the layout of interpreter and AOT module instance -Refactor LLVM JIT: remove mcjit and legacy pass manager, upgrade to ORCv2 JIT -Refine Fast JIT call indirect and call native process -Refine Fast JIT accessing memory/table instance and global data -Refine AOT exception check when function return -Enable source debugger reconnection -Add wasm_runtime_get_wasi_exit_code -linux-sgx: Use non-destructive modes for opening files using SGX IPFS -Add wasm_runtime_unregister_natives -Implement invokeNative asm code for MinGW -Add wamr Blog link and Gitbook link to readme -Remove unnecessary app heap memory clean operations to reduce process RSS -Normalize how the global heap pool is configured across iwasm apps -Refine the stack frame size check in interpreter -Enlarge the default wasm operand stack size to 64KB -Use cmake POSITION_INDEPENDENT_CODE instead of hardcoding -pie -fPIE -Implement R_ARM_THM_MOVT_[ABS|REPL] for thumb -Suppress the warnings when building with GCC11 -samples/native-lib: Add a bit more complicated example -Add mutex initializer for wasm-c-api engine operations -XIP adaptation for xtensa platform -Update libuv version number -Remove an improper assumption when creating wasm_trap -Avoid initialize LLVM repeatedly -linux-sgx: Improve the remote attestation -linux-sgx: Improve the documentation of SGX-RA sample -linux-sgx: Allow to open files with arbitrary paths in the sandbox using IPFS -Avoid raising exception when debugging with VSCode -wamr-test-suites: Update runtest.py to support python3 -Enable Nuttx spec test option and register aot symbols -Use wabt binary instead of building from source in spec test -nuttx: Enable ref types by Kconfig -Update xtensa LLVM version to 15.x -Add bh_print_proc_mem() to dump memory info of current process -Create trap for error message when wasm_instance_new fails -wamr-test-suites: Add support for ARM/RISCV by QEMU -Enable to compile WAMR on platforms that don't support IPV6 -Fix warnings in the posix socket implementation -Update document for MacOS compilation -Install patched LLDB on vscode extension activation -Add ARM aeabi memcpy/memmove/memset symbols for AOT bulk memory ops -Enable wasm cache loading in wasm-c-api +- Refactor the layout of interpreter and AOT module instance +- Refactor LLVM JIT: remove mcjit and legacy pass manager, upgrade to ORCv2 JIT +- Refine Fast JIT call indirect and call native process +- Refine Fast JIT accessing memory/table instance and global data +- Refine AOT exception check when function return +- Enable source debugger reconnection +- Add wasm_runtime_get_wasi_exit_code +- linux-sgx: Use non-destructive modes for opening files using SGX IPFS +- Add wasm_runtime_unregister_natives +- Implement invokeNative asm code for MinGW +- Add wamr Blog link and Gitbook link to readme +- Remove unnecessary app heap memory clean operations to reduce process RSS +- Normalize how the global heap pool is configured across iwasm apps +- Refine the stack frame size check in interpreter +- Enlarge the default wasm operand stack size to 64KB +- Use cmake POSITION_INDEPENDENT_CODE instead of hardcoding -pie -fPIE +- Implement R_ARM_THM_MOVT_[ABS|REPL] for thumb +- Suppress the warnings when building with GCC11 +- samples/native-lib: Add a bit more complicated example +- Add mutex initializer for wasm-c-api engine operations +- XIP adaptation for xtensa platform +- Update libuv version number +- Remove an improper assumption when creating wasm_trap +- Avoid initialize LLVM repeatedly +- linux-sgx: Improve the remote attestation +- linux-sgx: Improve the documentation of SGX-RA sample +- linux-sgx: Allow to open files with arbitrary paths in the sandbox using IPFS +- Avoid raising exception when debugging with VSCode +- wamr-test-suites: Update runtest.py to support python3 +- Enable Nuttx spec test option and register aot symbols +- Use wabt binary instead of building from source in spec test +- nuttx: Enable ref types by Kconfig +- Update xtensa LLVM version to 15.x +- Add bh_print_proc_mem() to dump memory info of current process +- Create trap for error message when wasm_instance_new fails +- wamr-test-suites: Add support for ARM/RISCV by QEMU +- Enable to compile WAMR on platforms that don't support IPV6 +- Fix warnings in the posix socket implementation +- Update document for MacOS compilation +- Install patched LLDB on vscode extension activation +- Add ARM aeabi memcpy/memmove/memset symbols for AOT bulk memory ops +- Enable wasm cache loading in wasm-c-api ### Others -Add CIs to release new version and publish binary files -Add more compilation groups of fast jit into CI -Enable spec test on nuttx and daily run it +- Add CIs to release new version and publish binary files +- Add more compilation groups of fast jit into CI +- Enable spec test on nuttx and daily run it --- @@ -228,3 +398,5 @@ Enable spec test on nuttx and daily run it ### Others --- + + |