compilation on macos / build_samples_wasm_c_api ($CLASSIC_INTERP_BUILD_OPTIONS, macos-13, https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-macos-12.tar.gz, https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-macos.tar.gz) (push) Has been cancelled
compilation on macos / build_samples_wasm_c_api ($FAST_INTERP_BUILD_OPTIONS, macos-13, https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-macos-12.tar.gz, https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-macos.tar.gz) (push) Has been cancelled
compilation on macos / build_samples_others (${{ needs.build_llvm_libraries_on_arm_macos.outputs.cache_key }}, macos-14, https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-macos-12.tar.gz, https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-s… (push) Has been cancelled
compilation on macos / build_samples_others (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, macos-13, https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-macos-12.tar.gz, https://github.com/WebAssembly/wasi-sdk/releases/download/wasi… (push) Has been cancelled
- fix: when load aot init expr,no type_idx set. (#4094)
- Cmake improvements (#4076)
- fix(aot_emit_aot_file): prevent buffer emission for zero byte_count (#4095)
- fix(unit-test): libc_builtin_test issues (#4073)
- feat: add support for EXTERNREF value type and enable AOT validator in fuzz tests (#4083)
- [gc] Subtyping fix (#4075)
- Add a conditional check for the macro __STDC_VERSION__ (#4080)
- Unit test:type matching issue and code redundancy (#4079)
- build(deps): Bump github/codeql-action from 3.28.8 to 3.28.9 (#4074)
- fix(aot): ensure value_cmp does not exceed br_count in branch table compilation (#4065)
- In wasm32, fix potential conversion overflow when enlarging 65536 pages (#4064)
- [fuzzing] execute every exported function (#3959)
- Update memory allocation functions to use allocator user data (#4043)
- Show wasm proposals status during compilation and execution (#3989)
- add a validator for aot module (#3995)
- Use wasm32-wasip1 instead of wasm32-wasi target for rust code (#4057)
- Update Rust target from 'wasm32-wasi' to 'wasm32-wasip1' in CI (#4050)
- Fix wasm loader check data segment count (#4039)
- Synchronize the GC spec tests to the commit from December 9. 2024. (#4022)
- Refine getting const offsets in wasm loader of fast-interp (#4012)
- fixes for compiling on windows (#4026)
- .github: Add shared lib builds (#3975)
- Refine read leb int wasm loader of fast interpreter (#4017)
- build(deps): Bump github/codeql-action from 3.28.0 to 3.28.1 (#4020)
- build(deps): Bump actions/upload-artifact from 4.5.0 to 4.6.0 (#4021)
- Enable shrunk memory by default and add related configurations (#4008)
- Add documentation regarding security issues and the status of Wasm proposals (#3972)
- Improve stack consistency by ensuring sufficient space for dummy offsets (#4011)
- Check whether related table has funcref elem in opcode call_indirect (#3999)
- [fuzzing] Use software bound-check during fuzzing (#4003)
- Add an example of how to embed WAMR in Zephyr user mode (#3998)
- Fix table index calculations in wasm_loader and wasm_mini_loader (#4004)
- Ensure __heap_base and __data_end global indices are validated against import count (#3996)
- Error message improvement (#4000)
- Handle a new scenario where an item is both exported and imported. (#3984)
- Optimize memory initialization handling in AOT loader (#3983)
- build(deps): Bump actions/upload-artifact from 4.4.3 to 4.5.0 (#3981)
- build(deps): Bump github/codeql-action from 3.27.9 to 3.28.0 (#3982)
- Add Tianlong into code owners (#3970)
- Set thread information earlier in exec_env creation (#3967)
- top-level cmake: link llvm libraries to our shared library (#3973)
- add reference type support by default for darwin to support WASI-SDK-25 (#3978)
- CMakeLists.txt: Do not require C++ (#3956)
- [fuzzing] Enable instantiation (#3958)
- use a random secret key (#3971)
- top-level cmakefile: fix macOS build (#3968)
- Only access Zephyr thread stats info when it's available (#3962)
- build(deps): Bump github/codeql-action from 3.27.6 to 3.27.9 (#3960)
- wasm_export.h: Use "default" visibility for gcc and clang (#3957)
- set alignment 4 when loading multi return value (#3955)
- Fix aot table instantiate (#3946)
- Consume the placeholders that were put when emitting table info (#3940)
- Refactor SConscript and add file checks in iwasm.c (#3945)
- Improvements for platform thread APIs on Windows and Zephyr (#3941)
- Fix incorrect assignment in win_file.c (#3939)
- don't return an uninitialized trap if argv_to_results fails (#3935)
- support WASM_FUNCREF return type in argv_to_results (#3936)
- add thread cpu time for zephyr (#3937)
- build(deps): bump github/codeql-action from 3.27.4 to 3.27.5 (#3931)
- Update README.md to clarify Windows toolchain support and ESP-IDF reference (#3917)
- Enable ref types by default (#3894)
- Fix loader small bug (#3928)
- add testcases for shared heap and fix POP_MEM_OFFSET of memory64 (#3916)
- Use plain assignment rather than bh_memcpy_s (#3924)
- Fix WASI Path Mapping Processing (#3923)
- Drop declarative elements on module instantiation (#3922)
- Check possible integer overflow in aot memory boundary check (#3920)
- Fix CI wamr-ide error (#3913)
- Support external toolchain on Windows for aot compiler (#3911)
- build(deps): bump github/codeql-action from 3.27.1 to 3.27.4 (#3912)
- Correct the table index calculation in aot_instantiation (#3903)
- Fix a leak in wasm_loader_emit_br_info (#3900)
- GlobalValueSet was moved to IRPartitionLayer recently, but we have a local definition anyway (#3899)
- build(deps): bump github/codeql-action from 3.27.0 to 3.27.1 (#3902)
- Fix linked global initialization in multimodule (#3905)
- Wasm loader enhancement: check code size in code entry (#3892)
- Refactor AOT loader to support compatible versions (#3891)
- Fix out of bounds issue in is_native_addr_in_shared_heap function (#3886)
- Fix mmap flags for AOT loader on non-Linux SGX platforms (#3890)
- Bump AOT_CURRENT_VERSION for WAMR 2.x (gc, memory64) (#3880)
- Refine looking up aot function with index (#3882)
- build(deps): bump github/codeql-action from 3.26.13 to 3.27.0 (#3888)
- fix(ios): Remove `float-abi` flag (#3889)
- Fix out of bounds issues after memory.grow on non-aot non-threads builds (#3872)
- Exclude fuzz test python and npm packages in scoreboard scan (#3871)
Author: Chris Woods <6069113+woodsmc@users.noreply.github.com>
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Author: Dylan Johnston <18252447+dpjohnst@users.noreply.github.com>
Author: edoardo <48774736+xdoardo@users.noreply.github.com>
Author: eric <chenliuyang_1989@163.com>
Author: Fadumina Barre <bafadumi@amazon.com>
Author: Huang Qi <huangqi3@xiaomi.com>
Author: James Ring <sjr@jdns.org>
Author: Jérôme Vouillon <jerome.vouillon@gmail.com>
Author: kk <zhkag@foxmail.com>
Author: liang.he@intel.com <liang.he@intel.com>
Author: liang.he <liang.he@intel.com>
Author: Maks Litskevich <makslit@amazon.com>
Author: Marcin Kolny <mkolny@amazon.com>
Author: peter-tatrai <peter.tatrai.ext@siemens.com>
Author: TianlongLiang <111852609+TianlongLiang@users.noreply.github.com>
Author: Tomáš Malý <malytomas@users.noreply.github.com>
Author: Viacheslav Palchikov <palchikov@gmail.com>
Author: WenLY1 <130950131+WenLY1@users.noreply.github.com>
Author: Wenyong Huang <wenyong.huang@intel.com>
Author: Xavier Del Campo <90845888+midokura-xavi92@users.noreply.github.com>
Author: YAMAMOTO Takashi <yamamoto@midokura.com>
Author: yangkun27 <yangkun27@xiaomi.com>
compilation on macos / build_samples_wasm_c_api ($CLASSIC_INTERP_BUILD_OPTIONS, macos-13, https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-macos-12.tar.gz, https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-macos.tar.gz) (push) Has been cancelled
compilation on macos / build_samples_wasm_c_api ($FAST_INTERP_BUILD_OPTIONS, macos-13, https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-macos-12.tar.gz, https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-macos.tar.gz) (push) Has been cancelled
compilation on macos / build_samples_others (${{ needs.build_llvm_libraries_on_arm_macos.outputs.cache_key }}, macos-14, https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-macos-12.tar.gz, https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-s… (push) Has been cancelled
compilation on macos / build_samples_others (${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}, macos-13, https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-macos-12.tar.gz, https://github.com/WebAssembly/wasi-sdk/releases/download/wasi… (push) Has been cancelled
- All files under *core/iwasm/libraries/wasi-nn* are compiled as shared libraries
- *wasi-nn.c* is shared between backends
- Every backend has a separated shared library
- If wasi-nn feature is enabled, iwasm will depend on shared library libiwasm.so
instead of linking static library libvmlib.a
Implement the GC (Garbage Collection) feature for interpreter mode,
AOT mode and LLVM-JIT mode, and support most features of the latest
spec proposal, and also enable the stringref feature.
Use `cmake -DWAMR_BUILD_GC=1/0` to enable/disable the feature,
and `wamrc --enable-gc` to generate the AOT file with GC supported.
And update the AOT file version from 2 to 3 since there are many AOT
ABI breaks, including the changes of AOT file format, the changes of
AOT module/memory instance layouts, the AOT runtime APIs for the
AOT code to invoke and so on.
This fixes armhf build:
https://github.com/bytecodealliance/wasm-micro-runtime/issues/2315
Note: This is not the only place which seems to have the same problem.
For example, many of examples sharing the similar structure probably
have the same problem. This commit leaves them for now.
Major changes:
- Public headers inside `wasi-nn/include`
- Put cmake files in `cmake` folder
- Make linux iwasm link with `${WASI_NN_LIBS}` so iwasm can enable wasi-nn
Add nightly (UTC time) checks with asan and ubsan, and also put gcc-4.8 build
to nightly run since we don't need to run it with every PR.
Co-authored-by: Maksim Litskevich <makslit@amazon.co.uk>
In #1928 we added support for GCC 4.8 but we don't continuously test if it's
working. This PR added a GitHub actions job to test compilation on GCC 4.8
for interpreters and Fast JIT (LLVM JIT/AOT might be added in the future).
The compilation is done using ubuntu 14.04 image as that's the simplest way
to get GCC 4.8 compiler. The job only compiles the code but does not run any
tests.
Support collecting code coverage with wamr-test-suites script by using
lcov and genhtml tools, eg.:
cd tests/wamr-test-suites
./test_wamr.sh -s spec -b -P -C
The default code coverage and html files are generated at:
tests/wamr-test-suites/workspace/wamr.lcov
tests/wamr-test-suites/workspace/wamr-lcov.zip
And update wamr-test-suites scripts to support testing GC spec cases to
avoid frequent synchronization conflicts between branch main and dev/gc.
Upgrade `cmake_minimum_required` from `(VERSION 2.8)` to `(VERSION 2.9)` to
yield the warning:
"Compatibility with CMake < 2.8.12 will be removed from a future version of CMake"
Add "-Wno-unused" for CMAKE_CXX_FLAGS to yield the compilation warnings
when build LLVM JIT.
Fix the link error when code coverage is enabled.
Import WAMR Fast JIT which is a lightweight JIT with quick startup, small footprint,
relatively good performance (~40% to ~50% of LLVM JIT) and good portability.
Platforms supported: Linux, MacOS and Linux SGX.
Arch supported: x86-64.
When WAMR_BUILD_TARGET isn't set, choosing right target is decided
by checking `CMAKE_SIZEOF_VOID_P` variable. However, choosing `X86_32`
target is not doing specifically checking size of void pointer. It is kind
a fallback target for others.
This patch explicitly checks the size of void pointer before setting the target
to `X86_32` to fix the issue.
Refactor LLVM Orc JIT to actually enable the lazy compilation and speedup
the launching process:
https://llvm.org/docs/ORCv2.html#laziness
Main modifications:
- Create LLVM module for each wasm function, wrap it with thread safe module
so that the modules can be compiled parallelly
- Lookup function from aot module instance's func_ptrs but not directly call the
function to decouple the module relationship
- Compile the function when it is first called and hasn't been compiled
- Create threads to pre-compile the WASM functions parallelly when loading
- Set Lazy JIT as default, update document and build/test scripts
Refine some codes in wasm loader
Add -Wshadow to gcc compile flags and fix some variable shadowed issues
Fix function parameter/return types not checked issue
Fix fast-interp loader reserve_block_ret() not handle V128 return type issue
Fix mini loader load_table_segment_section() failed issue
Add detailed comments for argc argument in wasm_runtime_call_wasm()
Implement source debugging feature for classic interpreter and AOT:
- use `cmake -DWAMR_BUILD_DEBUG_INTERP=1` to enable interpreter debugging
- use `cmake -DWAMR_BUILD_DEBUG_AOT=1` to enable AOT debugging
See doc/source_debugging.md for more details.
Implement the latest SIMD opcodes and update LLVM 13.0,
update the llvm build scripts, update the sample workloads‘ build scripts,
and build customized wasi-sdk to build some workloads.
Also refine the CI rules.
Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
Unify product-mini main.c implementation for POSIX compatible system: create a shared main.c under platforms/posix/main.c, and in other POSIX platforms' main.c, just keep a line "#include ../posix/main.c".
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
And add wasm_engine_new_with_args() declaration in wasm_c_api.h
Fix wasm-c-api frame func_offset issue in fast interp mode
Remove sanitize compiler flag in product-mini linux CMakeLists.txt
And enable to cache compiled AOT file buffer for wasm-c-api JIT mode
Avoid checks that rely on undefined C behavior
Fix issues of wasm-c-api sample trap and callback_chain
Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
Implement spec reference-types proposal for interpreter, AOT and JIT, update documents and add sample. And upgrade AOT_CURRENT_VERSION to 3 as AOT file format and AOT module instance layout are changed.
Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
Upgrade it as the latest version of wasi-sdk and emsdk are based on llvm-11, align to it to use the same compiler version. And this also fixes compilation error when building wamrc with llvm-10 in Windows platform.
Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
Enable SIMD by default for wamrc on x86-64 target, for iwasm on platform Linux and Darwin. And update build wamr document, fix app manager compile warning.
Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
Also implement native stack overflow check with hardware trap for 64-bit platforms
Refine classic interpreter and fast interpreter to improve performance
Update document