Commit Graph

1092 Commits

Author SHA1 Message Date
2eed50b303 Document how to use WASI threads in AOT mode (#1905)
Describe how to use WASI threads in AOT mode, following the discussion below:
  https://github.com/bytecodealliance/wasm-micro-runtime/pull/1867#discussion_r1070268062

Make aux stack boundary checks of wasi-threads always successful by setting
`exec_env->aux_stack_bottom` to UINT32_MAX and `exec_env->aux_stack_boundary` to 0
2023-01-27 18:32:33 +08:00
42f8fed20e Rename thread_spawn import (#1907)
Following the wit-defined ABI:
https://github.com/WebAssembly/wasi-threads/pull/26

cf. https://github.com/WebAssembly/wasi-libc/pull/387
2023-01-27 06:45:34 +08:00
879563047f Fix thread termination example (#1915)
The example wasn't fully implemented the intention - it didn't work as
expected when the trap/proc_exit was executed on the main thread,
because main thread never waited for all the threads to start.
2023-01-25 09:34:36 +08:00
9cf55f953b feat(wasi-threads): Change sample exception_propagation to thread_termination (#1869)
Trigger wasi_proc_exit in the sample
2023-01-23 10:36:58 +08:00
c7141894fb Merge branch main into dev/wasi_threads 2023-01-21 13:18:55 +08:00
cadf9d0ad3 Main thread spread exception when thread-mgr is enabled (#1889)
And refactor clear_wasi_proc_exit_exception, refer to
https://github.com/bytecodealliance/wasm-micro-runtime/pull/1869
2023-01-20 08:54:27 +08:00
cb7ac8fee3 nuttx: Mock socket APIs if NET is disabled (#1896) 2023-01-18 09:16:13 +08:00
64767fddd8 Add some missing macros for int literals in wamr-sdk libc-builtin-sysroot stdint.h (#1888) 2023-01-17 15:25:57 +08:00
a1786428e6 nuttx: Remove fdopendir (#1895)
The newer version of nuttx has implemented fdopendir, and the compiler
reports multiple definitions of it.
2023-01-17 11:16:01 +08:00
e696ac36d7 Fix potential block issue in source debugger (#1887)
Fix issue reported in #1860
2023-01-17 08:45:29 +08:00
5f0f8fe7ee Relax wasi memory export check when wasi-threads is enabled (#1893)
https://github.com/WebAssembly/wasi-threads/issues/22
https://github.com/WebAssembly/WASI/issues/502
2023-01-16 20:21:51 +08:00
622cdbefd6 Prevent undefined behavior from c_api_func_imports == NULL (#1883)
The module instance's c_api_func_imports may be NULL under some circumstances,
add checks before accessing it.
2023-01-14 07:52:39 +08:00
21ba730de3 Document some info about estimating memory usage (#1879)
Only covers limited configurations
2023-01-12 19:04:20 +08:00
f818f4c43f Simplify fcmp intrinsic logic for AOT/XIP (#1881) 2023-01-12 12:05:53 +08:00
903f5212f1 Increase stack size in the example app (#1880) 2023-01-11 09:40:32 +08:00
219713bfbc Fix go language binding build on macos arm64 (#1875) 2023-01-10 09:15:49 +08:00
4cd88a96d5 Add more types and APIs for attr_container (#1841)
Add more types for attr_container, e.g. uint8, uint32, uint64
Add more APIs for attr_container for int8, int16 and int32 types
Rename fields of the union 'jvalue' and refactor some files that use attr_container
2023-01-09 21:05:30 +08:00
0e2382a959 Disable aux stack allocations for threads spawned by wasi_thread_start (#1867)
This syscall doesn't need allocating stack or TLS and it's expected from the application
to do that instead. E.g. WASI-libc already does this for `pthread_create`.

Also fix some of the examples to allocate memory for stack and not use stack before
the stack pointer is set to a correct value.
2023-01-09 20:36:34 +08:00
df4b135086 Add WAMR-IDE vscode extension to the Visual Studio Marketplace (#1868)
Publish an extension to the visual studio marketplace using a secret token.
This allows for automation to take place because downloading and installing
the extension is a manual process so it'd be simpler if the extension was
published automatically through the visual studio marketplace.
2023-01-09 18:23:37 +08:00
2615646c20 Fix on-heap aux stack allocation (#1865)
Because stack grows from high address towards low address, the value
returned by malloc is the end of the stack, not top of the stack. The top
of the stack is the end of the allocated space (i.e. address returned by
malloc + cluster size).

Refer to #1790.
2023-01-06 18:21:28 +08:00
1f4580fbd8 Enable CI wasi test suite for x86-32 classic/fast interpreter (#1866)
The original CI didn't actually run wasi test suite for x86-32 since the `TEST_ON_X86_32=true`
isn't written into $GITHUB_ENV.

And refine the error output when failed to link import global.
2023-01-06 17:31:39 +08:00
7401718311 Report error in instantiation when meeting unlinked import globals (#1859) 2023-01-06 15:24:11 +08:00
0c4402293d Refine Windows thread waiting list operations (#1853)
Add thread_wait_list_end node for thread data and cond for Windows platform
to speedup the thread join and cond wait operations: no need to traverse the
wait list to get the end node to append the wait node.
2023-01-06 14:51:07 +08:00
4e5529f21f Reserve TID values for WASI threads (#1862)
According to the [WASI thread specification](https://github.com/WebAssembly/wasi-threads/pull/16),
some thread identifiers are reserved and should not be used. In fact, only IDs between `1` and
`0x1FFFFFFF` are valid.

The thread ID allocator has been moved to a separate class to avoid polluting the
`lib_wasi_threads_wrapper` logic.
2023-01-06 10:28:25 +08:00
c5b7b9d8df feat: Integrate wasi test suite to wamr-test-suites and CI (#1832)
Add [wasi-testsuite](https://github.com/WebAssembly/wasi-testsuite) to set of tests executed from `test_wamr.sh`. 
Additional description here: #1761
2023-01-05 17:16:44 +08:00
3403f0a7f4 Merge main into dev/wasi_threads 2023-01-03 18:15:23 +08:00
bf2be805f9 Add more checks about the imports of wasm_instance_new (#1843)
Check whether the `imports` argument is NULL in wasm_instance_new and check
the import count of each kind.

Fix issue reported by https://github.com/bytecodealliance/wasm-micro-runtime/issues/1833
2023-01-03 17:16:49 +08:00
d5aa354d41 Return result directly if float cmp is called in AOT XIP (#1851) 2022-12-30 16:45:39 +08:00
d309091706 Register missing symbols for f32 to 64 bit integer conversion (#1850) 2022-12-30 15:21:25 +08:00
0090d3e3fc Fix issue of resolving func name in custom name section (#1849)
Should use import_function_count but not import_count to calculate
the func_index in handle_name_section when custom name section
feature is enabled.

And clear the compile warnings of mini loader.
2022-12-30 14:37:04 +08:00
d1fe589d43 Fix fmin/fmax in AOT XIP intrinsics (#1848) 2022-12-29 18:48:55 +08:00
41eb938a95 Fix equal check in AOT XIP float cmp intrinsic (#1847) 2022-12-29 18:11:05 +08:00
6c7ca90229 Use float version library routine for XIP aot_intrinsic_xxx APIs (#1846) 2022-12-29 16:49:27 +08:00
b5f8a2bd08 Add missing soft float intrinsics for risc-v AOT (#1845) 2022-12-29 16:00:33 +08:00
26728cbef2 Remove unnecessary ret value control when spec test is enabled (#1839)
wamr-test-suites scripts can handle the return value correctly when
spec test is enabled.
2022-12-27 16:34:44 +08:00
679a8ab3cb Perfect the codebase for wamr-ide (#1817)
Fix errors and warnings reported by eslint
Add CONTRIBUTING document for vscode-extension
2022-12-27 15:04:36 +08:00
676c3c7b04 Fix failure about preopen of reactor modules (#1816)
Support modes:
- run a commander module only
- run a reactor module only
- run a commander module and a/multiple reactor modules together
  commander propagates WASIArguments to reactors
2022-12-27 12:59:17 +08:00
5d006ad263 Reuse build llvm libraries for spec test on nuttx (#1838)
Fix daily CI break on NuttX.
2022-12-26 14:22:15 +08:00
ba5cdbee3a Fix typo verify_module in aot_compiler.c (#1836) 2022-12-26 12:24:23 +08:00
2953614cb8 Port WAMR to the FreeBSD platform and update the document (#1825) 2022-12-24 10:11:10 +08:00
6fd8001eb6 Update CIs and documents to make naming of generated binaries consistent (#1823) 2022-12-24 09:17:39 +08:00
7d19b229eb feat(wasi-threads): Add CI for WASI threads (#1819)
Update wasi-sdk from 12.0 to 16.0 in CI
Build wasi-libc and build wai-threads sample in CI
2022-12-22 18:02:23 +08:00
d04f3988c3 libc-wasi: Fix spurious poll timeout (#1824)
This reverts the "Fix libc-wasi poll_oneoff hang issue" change.
https://github.com/bytecodealliance/wasm-micro-runtime/pull/1300
2022-12-21 17:29:29 +08:00
e8ce4c542e Implement Multi-tier JIT (#1774)
Implement 2-level Multi-tier JIT engine: tier-up from Fast JIT to LLVM JIT to
get quick cold startup by Fast JIT and better performance by gradually
switching to LLVM JIT when the LLVM JIT functions are compiled by the
backend threads.

Refer to:
https://github.com/bytecodealliance/wasm-micro-runtime/issues/1302
2022-12-20 14:37:07 +08:00
7db49db777 Update release notes and fix issues reported by Coverity (#1813) 2022-12-20 14:37:07 +08:00
fe210f02f2 vscode-extension: Run docker image with the same version as WAMR (#1815) 2022-12-20 14:37:07 +08:00
97fda83c94 Publish the docker image with tar/zip files (#1808)
And fix issue found in fast jit call indirect.
2022-12-20 14:37:07 +08:00
4d0f5cfade Fix watchpoint segfault when using debug interp without server (#1806) 2022-12-20 14:37:07 +08:00
b826a84cd6 Use boringssl instead of openssl to implement wasm cache loading (#1804) 2022-12-20 14:37:07 +08:00
d267121c88 Fix XIP issue of handling 64-bit const in 32-bit target (#1803)
- Handle i64 const like f64 const
- Ensure i64/f64 const is stored on 8-byte aligned address
2022-12-20 14:37:07 +08:00