-
Notifications
You must be signed in to change notification settings - Fork 627
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge branch main into dev/rust_sdk #2900
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fixes a small typo of conversion for native API documentation. Signed-off-by: Daniel Mangum <georgedanielmangum@gmail.com>
The commit fa5e9d7 ("Abstract POSIX filesystem functions") introduces the build warning: ./core/iwasm/libraries/libc-wasi/sandboxed-system-primitives/src/posix.c: In function ‘fd_object_release’: ./core/iwasm/libraries/libc-wasi/sandboxed-system-primitives/src/posix.c:545:20: warning: this statement may fall through [-Wimplicit-fallthrough=] 545 | if (os_is_dir_stream_valid(&fo->directory.handle)) { | ^ ./core/iwasm/libraries/libc-wasi/sandboxed-system-primitives/src/posix.c:549:13: note: here 549 | default: | ^~~~~~~ Refer to the commit fb4afc7 ("Apply clang-format for core/iwasm compilation and libraries"), add one line "// Fallthrough." to make compiler happy. Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Set the vendor-sys of bare-metal targets to "-unknown-none-", and currently only add "thumbxxx" to the bare-metal target list. Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
Returning uint16 from WASI functions is technically correct. However, the smallest integer type in WASM is int32 and since we don't guarantee that the upper 16 bits of the result are zero'ed, it can result in tricky bugs if the language SDK being used in the WASM app does not cast back immediately to uint16. To prevent this, we directly return uint32 instead, so that the result is well-defined as a 32-bit number.
Update RISC-V compilers in Nuttx compilation CI and spec test CI to test workflows. Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
Fixes typo of function in log messages in Zephyr example. Signed-off-by: Daniel Mangum <georgedanielmangum@gmail.com>
Heap corruption check in ems memory allocator is enabled by default to improve the security, but it may impact the performance a lot, this PR adds cmake variable and compiler flag to enable/disable it.
Lock i32 registers before and after preparing the function arguments to prevent they are overwritten.
Add an extra argument `os_file_handle file` for `os_mmap` to support mapping file from a file fd, and remove `os_get_invalid_handle` from `posix_file.c` and `win_file.c`, instead, add it in the `platform_internal.h` files to remove the dependency on libc-wasi. Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
Set `abi` to "gnu" for the bare-metal target when `abi` is NULL, or the below `bh_assert` and `bh_memcpy` may deference a NULL pointer. Error is reported when running wamrc compiled with `cmake .. -DCMAKE_BUILD_TYPE=Debug`: ``` core/iwasm/compilation/aot_llvm.c:2584:13: runtime error: null pointer passed as argument 1, which is declared to never be null ```
Error is reported when executing `wamrc --target=thumb -o <aot_file> <wasm_file>`: ``` LLVM ERROR: failed to perform tail call elimination on a call site marked musttail Aborted (core dumped) ```
As mentioned in #2504, the current release `wamrc` only has X86 target enabled. This PR enables more targets for release `wamrc`, including AArch64, ARM, Mips and RISCV.
Add dummy korp_rwlock struct and fix os_dir_stream definition on platform zephyr/riot/rt-thread/alios to fix the compilation errors.
CryptGenRandom is deprecated by Microsoft and may be removed in future releases. They recommend to use the next generation API instead. See https://learn.microsoft.com/en-us/windows/win32/seccng/cng-portal for more details. Also, refactor the random functions to return error codes rather than aborting the program if they fail.
Instead of printing all support targets of wamrc, print only the targets that are included in the LLVM library with which wamrc was compiled.
Currently, `data.drop` instruction is implemented by directly modifying the underlying module. It breaks use cases where you have multiple instances sharing a single loaded module. `elem.drop` has the same problem too. This PR fixes the issue by keeping track of which data/elem segments have been dropped by using bitmaps for each module instances separately, and add a sample to demonstrate the issue and make the CI run it. Also add a missing check of dropped elements to the fast-jit `table.init`. Fixes: #2735 Fixes: #2772
Fix spec test failure on NuttX with #2780, see: https://github.com/bytecodealliance/wasm-micro-runtime/actions/runs/6910450452
Fixes a few relative path broken links in app-mgr README.md. Signed-off-by: Daniel Mangum <georgedanielmangum@gmail.com>
Fixes a small typo in the WAMR_MEM_DUAL_BUS_MIRROR description. Signed-off-by: Daniel Mangum <georgedanielmangum@gmail.com>
Should return NULL instead of false.
Changes %d to %PRIu32.
Fix fast interpreter didn't throw OOB exception correctly in some scenarios. Reported in #2797.
The popped reachable block may be if block whose else branch hasn't been translated, and should push the params for the else block if there are. And use LLVMDisposeMessage to free memory allocated in is_win_platform.
Changes %d to %PRIu32.
Fixes typos of CIDR in socket documentation and libc WASI help text. Signed-off-by: Daniel Mangum <georgedanielmangum@gmail.com>
Fix relocation issues on riscv and update test scripts and CI to enable test spec cases on riscv QEMU.
- Fix compilation error of using PGOOptions - Fix LLVM JIT run error due to `llvm_orc_registerEHFrameSectionWrapper` symbol not found
- Fix op_br_table arity type check when the dest block is loop block - Fix op_drop issue when the stack is polymorphic and it is to drop an ANY type value in the stack
Reported in #2863.
And refine the code format for wasm_export.h.
This commit adds a check to `fd_advise`. If the fd is a directory, return `ebadf`. This brings iwasm in line with Wasmtime's behavior. WASI folks have stated that fd_advise should not work on directories as this is a Linux-specific behavior: bytecodealliance/wasmtime#6505 (comment)
Perf support is available on Linux only.
This fixes bug #2880. Zephyr 3.2 made changes to how headers are reference (see [release notes](https://docs.zephyrproject.org/latest/releases/release-notes-3.2.html)). Work item [49578](zephyrproject-rtos/zephyr#49578) deprecated the old headers names. The current WAMR codebase references these old headers, thus causing compile errors with current versions of Zephyr. This update adds #ifdefs around the header names. With this change, compiling with Zephyr 3.2.0 and above will use the new header files. Prior versions will use the existing code.
Fix a deadlock issue like: wasm_runtime_spawn_exec_env wasm_cluster_spawn_exec_env (hold cluster->lock) wasm_runtime_instantiate_internal wasm_instantiate execute_post_instantiate_functions wasm_exec_env_set_module_inst (grab the lock again) Refer to #2879.
because this sample doesn't really require them.
this would expose the deadlock bug, which has been fixed by #2882
This typo prevented sanitizers to work in the CI.
And disable running the nuttx spectest CI every time PR merged since it will consume too much runners to slow down the other checks.
…2891) A wasm module can be either a command or a reactor, so it can export either `_start` or `_initialize`. Currently, if a command module is run, `iwasm` still looks for `_initialize`, resulting in the warning: `can not find an export 0 named _initialize in the module`. Change to look for `_initialize` only if `_start` not found to resolve the issue.
It's possible to set both `atim` and `atim_now` in the `fstflags` parameter. Same goes for `mtin` and `mtim_now`. However, it's ambiguous which time should be set in these two cases. This commit checks this and returns `EINVAL`.
According to the specification: ``` When instantiating a module which is expected to run with `wasi-threads`, the WASI host must first allocate shared memories to satisfy the module's imports. ``` Currently, if a test from the spec is executed while having the `multi-module` feature enabled, WAMR fails with `WASM module load failed: unknown import`. That happens because spec tests use memory like this: `(memory (export "memory") (import "foo" "bar") 1 1 shared)` and WAMR tries to find a registered module named `foo`. At the moment, there is no specific module name that can be used to identify that the memory is imported because using WASI threads: WebAssembly/wasi-threads#33, so this PR only avoids treating the submodule dependency not being found as a failure.
This commit fixes linear memory size not updating after growing. This causes `memory.fill` to throw an exception after `memory.grow`.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.