Commit Graph

1249 Commits

Author SHA1 Message Date
f10563dfb4 Fix typo in samples/ref-types (#2236) 2023-05-26 07:53:39 +08:00
94204b90ad aot_compile_op_call: Remove a wrong optimization (#2233)
Unlike a tail-call, the caller of an ordinary recursive call doesn't
necessarily return immediately.
2023-05-25 07:44:54 +08:00
7c766c2283 Enhance linux-sgx CI (#2102)
Remove unnecessary jobs which have been tested in other CI,
test samples with iwasm-sgx, and add fast-jit to the tests.
2023-05-24 17:41:45 +08:00
9db4ce98a2 Bump requests from 2.28.2 to 2.31.0 in /build-scripts (#2229)
Bumps [requests](https://github.com/psf/requests) from 2.28.2 to 2.31.0.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.28.2...v2.31.0)

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-24 08:52:45 +08:00
1596ed2270 The Python language-binding needs python>=3.9 (#2228)
Update python language binding setup.py and document
Make compile.sh executable: `chmod +x compile.sh`
2023-05-24 08:15:28 +08:00
670567f8b3 core/iwasm/compilation: constify a bit (#2223)
Just to make the code a bit easier to read.
2023-05-20 11:55:02 +08:00
d692878484 Nuttx CI: Ignore the expired certificate for riscv gcc toolchain (#2222) 2023-05-17 15:15:23 +08:00
f759a1f960 A few changes related to WAMRC_LLC_COMPILER (#2218)
Print `target triple` for wamrc and set target triple for the LLVM module.
And update document.
2023-05-17 09:56:35 +08:00
f69ff70587 Update version number and release notes (#2213) 2023-05-16 12:39:22 +08:00
1e5f206464 Fix compile warnings on windows platform (#2208) 2023-05-15 13:48:48 +08:00
0899638ece Use a manual flag to disable clock_nanosleep on the unsupported platforms (#2176)
For some platforms WAMR gets compiled with `CONFIG_HAS_CLOCK_NANOSLEEP=1`,
while `clock_nanosleep` is not present at the platform, which causes compilation error.

Add check for macro `DISABLE_CLOCK_NANOSLEEP` to resolve the issue, only when
the macro isn't defined can the macro `CONFIG_HAS_CLOCK_NANOSLEEP` take effect.
2023-05-12 07:49:21 +08:00
Ben
ff0752b4ff Fix wamr-ide debugger ignoring launch config (#2155)
The `DebugConfigurationProvider` was overwriting configurations provided
in `launch.json`. In particular, this for example prevented from specifying a
custom port for the debugger.

Example `launch.json`
```
{
    "configurations": [
        {
            "type": "wamr-debug",
            "request": "attach",
            "name": "Attach Debugger",
            "stopOnEntry": true,
            "attachCommands": [
                "process connect -p wasm connect://127.0.0.1:1237"
            ]
        }
    ]
}
```

Co-authored-by: Ben Riegel <benjuri@amazon.com>
2023-05-10 12:47:43 +08:00
28274bed34 Fix build polybench benchmark error with wasi-sdk-19.0 (#2187) 2023-05-08 19:34:26 +08:00
7f5d9d4f5e Update document for iwasm/wamrc dependent packages (#2183) 2023-05-08 16:30:56 +08:00
89be5622a5 wasi-nn: Add external delegation to support several NPU/GPU (#2162)
Add VX delegation as an external delegation of TFLite, so that several NPU/GPU
(from VeriSilicon, NXP, Amlogic) can be controlled via WASI-NN.

Test Code can work with the X86 simulator.
2023-05-05 16:29:36 +08:00
5a23ae465c Fix three multi-threading and wasm-c-api-imports issues (#2173)
Fix issue reported in #2172: wasm-c-api `wasm_func_call` may use a wrong exec_env
when multi-threading is enabled, with error "invalid exec env" reported

Fix issue reported in #2149: main instance's `c_api_func_imports` are not passed to
the counterpart of new thread's instance in wasi-threads mode

Fix issue of invalid size calculated to copy `c_api_func_imports` in pthread mode

And refactor the code to use `wasm_cluster_dup_c_api_imports` to copy the
`c_api_func_imports` to new thread for wasi-threads mode and pthread mode.
2023-05-05 10:01:58 +08:00
71d43f3ca1 Return error when exception was raised after main thread finishes (#2169)
Currently, if a thread is spawned and raises an exception after the main thread
has finished, iwasm returns with success instead of returning 1 (i.e. error).

Since wasm_runtime_get_wasi_exit_code waits for all threads to finish and only
returns the wasi exit code, this PR performs the exception check again and
returns error if an exception was raised.
2023-05-05 09:20:05 +08:00
47fcb8506f Fix URL in README.md (#2168)
Fix "Samples" URL.
2023-05-03 14:21:34 +08:00
65f64958f5 Fix URL in embed_wamr.md (#2165)
Fix "Embed WAMR into Python" URL.
2023-05-02 09:13:49 +08:00
0166bfb5cd Fix URL in language-bindings/python/README.md (#2166)
Fix "WAMR API" and "WASM-C-API" URLs.
2023-05-02 09:12:49 +08:00
2b896c80ef wamrc: Add --stack-usage option (#2158) 2023-04-28 13:56:44 +08:00
247a49c4fd CI: More precise trigger paths for github actions (#2157)
Only trigger the necessary github actions when a CI file is changed.
2023-04-27 18:31:39 +08:00
ed6b8efade Avoid re-installing if Tensorflow is already installed for WASI-NN (#2148)
Since the Tensorflow library is already installed in many cases(especially in the
case of the embedded system), move the installation code to find_package.
2023-04-27 08:19:18 +08:00
c1723b8f3e libc_wasi_wrapper.c: Fix min func issue for size_t < 8 bytes on some platforms (#2152)
According to the 1999 ISO C standard (C99), size_t is an unsigned integer type of
at least 16 bit (see sections 7.17 and 7.18.3), it may be uint32 in 32-bit platforms:
https://en.cppreference.com/w/cpp/types/size_t

Calling function `size_t min(size_t, size_t)` with two uint64 arguments may get
invalid result.

Co-authored-by: Georgii Rylov <godjan@amazon.co.uk>
2023-04-26 21:03:02 +08:00
5c497e5a14 Fix ems allocator unaligned memory access on riscv64 (#2140)
Make `hmu_tree_node` struct packed and add 4 padding bytes before `kfc_tree_root_buf`
field in `gc_heap_struct` struct to ensure the `left/right/parent` fields in `hmu_tree_node`
are 8-byte aligned on the 64-bit target which doesn't support unaligned memory access.

Fix the issue reported in #2136.
2023-04-26 18:13:11 +08:00
15139d2bb8 CI: Add ubsan checks to samples/wasm-c-api (#2147)
This PR adds ubsan checks with no alignment enabled to basic CI tests for
samples/wasm-c-api.

Co-authored-by: Maksim Litskevich <makslit@amazon.co.uk>
2023-04-26 09:16:29 +08:00
8abb153546 VSCode-Extension: Download lldb built for ubuntu 20.04 (#2139)
This should allow users to use the vscode extension on ubuntu 20.04.

After https://github.com/bytecodealliance/wasm-micro-runtime/pull/2132 ,
our lldb binary for 20.04 works on ubuntu 22.04 as well.

On the other hand, lldb for 22.04 has no chance to work on ubuntu 20.04.
(because of glibc version requirement.)
2023-04-23 14:33:52 +08:00
7e9bf9cdf5 Implement Fast JIT multi-threading feature (#2134)
- Translate all the opcodes of threads spec proposal for Fast JIT
- Add the atomic flag for Fast JIT load/store IRs to support atomic load/store
- Add new atomic related Fast JIT IRs and translate them in the codegen
- Add suspend_flags check in branch opcodes and before/after call function
- Modify CI to enable Fast JIT multi-threading test

Co-authored-by: TianlongLiang <tianlong.liang@intel.com>
2023-04-20 10:09:34 +08:00
dfca21d239 build_wamr_vscode_ext.yml: vsce publish only on the official repo (#2130)
This makes it simpler to test workflow files on a fork.
2023-04-19 19:39:01 +08:00
0158eea965 build_wamr_lldb.yml: sync lldb build options between ubuntu and macos (#2132)
Notably, this disables python scripting support on ubuntu:

* It isn't necessary for the primary purpose of this build. (that is, the vscode extension)
* It has been disabled in the macOS counterpart.
* It allows to use the same binary for 22.04 and 20.04. (note: 22.04 and 20.04 provide different versions of libpython)
2023-04-19 14:01:48 +08:00
dac86af2f2 Update messages/comments to refer the new place of the version definition (#2133) 2023-04-18 21:09:18 +08:00
2f879862ff Update Zephyr docs to remove unsupported west subcommand (#2128)
Removes the `west espressif install` command which is no longer
supported.

https://github.com/zephyrproject-rtos/hal_espressif/pull/130

Also adds a reference to the Zephyr SDK, which will install the
necessary toolchains for all supported targets.

Signed-off-by: Daniel Mangum <georgedanielmangum@gmail.com>
2023-04-18 20:20:37 +08:00
327b4a7f59 Update request.ts wasm_response_send signature (#2122)
Update wasm_response_send function signature to match api by returning
bool instead of void (was causing assemblyscript example to break)
2023-04-12 16:50:11 +08:00
a2d4744a2b Add test for validating linear memory size updates (#2078) 2023-04-08 19:07:20 +08:00
4ca4f7913b Update release notes (#2113) 2023-04-07 07:12:02 +08:00
62fc486c20 Refine aot compiler check suspend_flags and fix issue of multi-tier jit (#2111)
In LLVM AOT/JIT compiler, only need to check the suspend_flags when memory is
a shared memory since the shared memory must be enabled for multi-threading,
so as not to impact the performance in non-multi-threading memory mode. Also
refine the LLVM IRs to check the suspend_flags.

And fix an issue of multi-tier jit for multi-threading, the instance of the child thread
should be removed from the instance list before it is de-instantiated.
2023-04-07 06:47:24 +08:00
9adc6948d8 Enable CI build for gcc 4.8 on linux (#2106)
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.
2023-04-06 10:10:07 +08:00
e7b988e6ab Document the summary of two pthread implementations (#2104)
And add `wasi-threads` to the key feature list in README.md.
2023-04-04 17:22:54 +08:00
6af87855b4 Update version number and release notes (#2103)
And restore the CI vsce publish and change the wamride publisher name.
2023-04-04 12:13:40 +08:00
5fc48e3584 Fix interpreter read linear memory size for multi-threading (#2088)
Load memory data size in each time memory access boundary check in
multi-threading mode since it may be changed by other threads when
memory growing.

And use `memory->memory_data_size` instead of
`memory->num_bytes_per_page * memory->cur_page_count` to refine
the code.
2023-04-04 09:05:52 +08:00
e1d0c27ef9 Fix ref.func forward-declared function check (#2099)
When ref.func opcode refers to a function whose function index no smaller than
current function, the destination func should be forward-declared: it is declared
in the table element segments, or is declared in the export list.
2023-04-03 15:55:24 +08:00
7701b379e4 Update documents (#2100)
Fix linkage error, update build wamr document, update socket and sample documents.
2023-04-03 15:54:44 +08:00
24a7e5c1e6 Update sample workload tensorflow (#2101)
Auto download emsdk under core/deps and hack it, and fix multi-thread issues.
2023-04-03 14:56:46 +08:00
5c201995f1 Fix sanitizer pointer overflow warning when perform pointer arithmetic (#2098)
Convert the pointer to intptr_t to perform arithmetic to avoid the warning.
2023-04-03 14:32:44 +08:00
156318f0d4 Use wasi-sdk-20 to build wasi-threads cases in CI (#2095)
wasi-sdk-20 supports older versions of glibc and allow us to use it in the CI
with Ubuntu 20.04.

Refer to
  https://github.com/WebAssembly/wasi-sdk/releases/tag/wasi-sdk-20
And #2021 for previous upgrade to wasi-sdk-20 pre-release.
2023-04-03 08:43:11 +08:00
aaf671d688 Fix typo in Fast JIT's BUILD_COND_BR Macro (#2092) 2023-03-31 16:18:43 +08:00
48429da29f Fix compilation errors of workload xnnpack and meshoptimizer (#2081) 2023-03-30 21:15:21 +08:00
403ccf02b7 ci: Enable WASI threads in CI (#2086) 2023-03-30 10:05:00 +08:00
eaf1897a70 Add support for universal binaries on OSX (#2060)
When building for multiple architectures on OSX, it's necessary to use
compiler macros to conditionally include architecture-specific code
rather than conditionally including architecture-specific assembly files
via cmake. See
  https://developer.apple.com/documentation/apple-silicon/building-a-universal-macos-binary
and
  https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_ARCHITECTURES.html
for more details.

Co-authored-by: Zoraaver Singh <zoraaver@amazon.co.uk>
2023-03-30 09:53:07 +08:00
08a4a7cf08 ci: Refactor windows build definition (#2087) 2023-03-30 09:34:30 +08:00