liang.he
a9eff69dd9
wasm-mutator-fuzz: Adapt to oss-fuzz compilation ( #3464 )
2024-05-27 10:33:36 +08:00
Enrico Loparco
3b8ef89110
Clone data segments when specified with load args ( #3463 )
...
Follow-up on https://github.com/bytecodealliance/wasm-micro-runtime/pull/3389 , specifically: https://github.com/bytecodealliance/wasm-micro-runtime/pull/3389#discussion_r1600872451
If we want to free the wasm binary buffer early, we need to clone the data segments into the module.
That's because, in case of [passive data segments](https://webassembly.github.io/threads/core/syntax/modules.html#syntax-data ),
they can be referred during wasm execution.
2024-05-27 09:59:24 +08:00
Zhang, Yi
f378edc408
Add regression tests of BA issue cases ( #3462 )
2024-05-23 13:53:53 +08:00
Wenyong Huang
6fdfedb08a
Fix codeql compilation error ( #3461 )
...
Update OS to ubuntu-22.04 and install `libgcc-12-dev lib32gcc-12-dev` instead
of `libgcc-11-dev lib32gcc-11-dev`.
And fix a bh_assert condition typo error.
ps.
https://github.com/bytecodealliance/wasm-micro-runtime/actions/runs/9183310069/job/25253782329
2024-05-22 17:27:38 +08:00
Wenyong Huang
f143344842
libc-builtin: Enhance buffered print for printf_wrapper ( #3460 )
...
Move print_buf and print_buf to str_context struct to support multi-threading
when BUILTIN_LIBC_BUFFERED_PRINTF macro is enabled, and fix the issue of
losing some text.
ps. https://github.com/bytecodealliance/wasm-micro-runtime/issues/3430 .
2024-05-22 17:17:36 +08:00
Benbuck Nason
c5ab862dbb
Add api to get export global instance ( #3452 )
...
Add API
```C
bool
wasm_runtime_get_export_global_inst(const wasm_module_inst_t module_inst,
const char *name,
wasm_global_inst_t *global_inst);
```
2024-05-22 16:59:44 +08:00
Zhang, Yi
591a20b917
Add malformed test cases ( #3459 )
2024-05-21 16:38:34 +08:00
Wenyong Huang
15d191943a
Enhance GC const initializer expression to support nested struct/array new ( #3447 )
...
Only support interpreter now, and fix some issues found in wasm loader.
This PR fixes issue #3410 and #3411 .
2024-05-21 16:09:12 +08:00
YAMAMOTO Takashi
403f472ff1
wasi: Tweak the configuration for nuttx and explain why ( #3451 )
2024-05-21 14:42:30 +08:00
YAMAMOTO Takashi
5bc38f77f6
NuttX: Rename a few recently-added nuttx options ( #3449 )
...
from:
ARCH_TEXT_HEAP_SEPARATE_DATA_ADDRESS
ARCH_TEXT_HEAP_WORD_ALIGNED_READ
to:
ARCH_HAVE_TEXT_HEAP_SEPARATE_DATA_ADDRESS
ARCH_HAVE_TEXT_HEAP_WORD_ALIGNED_READ
2024-05-21 14:31:14 +08:00
liang.he
a4f0a0d0ea
wamr-test-suites: Enable AOT multi-module spec tests ( #3450 )
...
Bypass some cases because:
- aot multi-module doesn't support empty modules
- aot multi-module doesn't support import globals
2024-05-21 12:10:47 +08:00
Zhang, Yi
a2f3c7298f
Add wasm-mutator-fuzz test ( #3420 )
2024-05-21 12:01:13 +08:00
Byeongjee Kang
33aada2133
Remove install_wasi_sdk from workload preparation script ( #3445 )
...
This function was removed in 7be0d38
while building a customized wasi-sdk.
2024-05-20 16:18:34 +08:00
TianlongLiang
30ed97cddc
Fix several typos and fix bh_log calculate mills ( #3441 )
2024-05-20 15:54:01 +08:00
Benbuck Nason
0ceffe74a7
Add cmake static/shared library build settings ( #3443 )
...
Allow builds to target either static library only, shared library only, or both (default).
2024-05-18 21:15:11 +08:00
YAMAMOTO Takashi
ec44f494cc
NuttX: Replace esp32s3 bits with the OS-provided APIs ( #3439 )
...
Expected merge order:
https://github.com/apache/nuttx/pull/12355
https://github.com/apache/nuttx-apps/pull/2395
https://github.com/bytecodealliance/wasm-micro-runtime/pull/3439
2024-05-18 20:35:16 +08:00
Benbuck Nason
7744e84607
ssp_config.h: Fix ifdef for android random api ( #3444 )
...
It looks like the preferred preprocessor check for Android is `__ANDROID__`
instead of `ANDROID`:
https://groups.google.com/g/android-ndk/c/cf9_f1SLXls
Change `(defined(ANDROID) && __ANDROID_API__ < 28)` to
`((defined(ANDROID) || defined(__ANDROID__)) && (__ANDROID_API__ < 28))`.
2024-05-18 20:23:34 +08:00
liang.he
b2eb7d838d
Update spec test to latest commit ( #3293 )
...
- Update spec test cases to commit bc76fd79cfe61033d7f4ad4a7e8fc4f996dc5ba8 on Apr. 3
- Update wabt binary to 1.0.34 to support newer spec cases
- Add comparison between table declared elem type and table elem segment value type
- Add a function to decide whether to execute test cases in a running mode
- Keep using interpreter in GC spec because wat2wasm in wabt can't compile if.wast w/o errors
- Re-factoring threads spec test case processing
- Since wabt 1.0.34 release isn't compatible with ubuntu 20.04, compile it from source code
- Disable CI to run aot multi-module temporarily, and will enable it in another PR
2024-05-17 10:40:47 +08:00
Enrico Loparco
6b1d81650d
Allow not copying the wasm binary in wasm-c-api and not referring to the binary in wasm/aot loader ( #3389 )
...
Add flag `LoadArgs.clone_wasm_binary` to control whether to clone the wasm/aot
binary in wasm-c-api module. If false, API `wasm_module_new_ex` won't clone the
binary, which may reduce the footprint.
Add flag `LoadArgs.wasm_binary_freeable` to control whether the wasm/aot binary
may be freed after instantiation for wamr API `wasm_runtime_load_ex`, if yes, then
for some running modes, the wasm/aot module doesn't refer to the input binary
again so developer can free it after instantiation to reduce the footprint.
And add API `wasm_module_is_underlying_binary_freeable` and
`wasm_runtime_is_underlying_binary_freeable` to check whether the input binary
can be freed after instantiation for wasm-c-api and wamr api.
And add sample to illustrate it.
2024-05-17 09:00:08 +08:00
YAMAMOTO Takashi
51ecfd6673
libc-wasi: Fix a locking botch ( #3437 )
2024-05-15 15:41:40 +08:00
Wenyong Huang
7949df96f4
Fix fast interp RECOVER_BR_INFO and local set/tee ( #3434 )
...
When copying two cells from src offsets to dst offsets in RECOVER_BR_INFO,
the offsets may be overlapped and the src data may be overwritten, use
GET_I64_FROM_ADDR and then SET_I64_FROM_ADDR instead to resolve it.
And handling VALUE_TYPE_FUNCREF/VALUE_TYPE_EXTERNREF for opcode
local.set and local.tee when reference types feature is enabled.
This PR fixes issue #3401 and #3402 .
2024-05-15 15:20:21 +08:00
Wenyong Huang
49c9fa31da
Fix typo of WAMR_CONFIGUABLE_BOUNDS_CHECKS ( #3424 )
...
Change to WAMR_CONFIGURABLE_BOUNDS_CHECKS, and fix CodeQL compilation errors
which were introduced by PR #3406 .
ps.
https://github.com/bytecodealliance/wasm-micro-runtime/pull/3393#discussion_r1591810998
https://github.com/bytecodealliance/wasm-micro-runtime/actions/runs/9055318553/job/24876266629
2024-05-14 14:33:09 +08:00
liang.he
df82ae8774
ci/coding_guidelines_check.py: Allow some well-known file names to contain '-' ( #3428 )
...
And shorten pathlib.Path to Path.
2024-05-14 12:35:18 +08:00
YAMAMOTO Takashi
267eaa1747
product-mini/platforms/posix/main.c: Adapt to WASM_MEM_DUAL_BUS_MIRROR ( #3427 )
2024-05-14 12:16:19 +08:00
Benbuck Nason
0f17a1464e
Add comments to global type function declarations ( #3431 )
2024-05-14 11:38:18 +08:00
YAMAMOTO Takashi
b1529bc803
nuttx/esp32s3: Apply ibus/dbus adjustment to internal ram 1 as well ( #3421 )
2024-05-14 11:28:24 +08:00
Wenyong Huang
773efc006d
Change WASM_ANYREF to WASM_EXTERNREF ( #3426 )
...
wasm-c-api wasm.h had changed WASM_ANYREF to WASM_EXTERNREF,
we had better change it in WAMR also:
2ce1367c9d/include/wasm.h (L185)
2024-05-14 11:08:16 +08:00
Wenyong Huang
004d07bb86
Remove unused macros which were moved to wamr-app-framework ( #3425 )
...
Some macros are not related to WAMR and have been moved to wamr-app-framework,
we remove them in WAMR.
ps.
https://github.com/bytecodealliance/wasm-micro-runtime/pull/3393#discussion_r1591812319
https://github.com/bytecodealliance/wamr-app-framework/pull/9
2024-05-14 10:52:05 +08:00
Benbuck Nason
dbd8790681
Add WASM_V128 in wasm_valkind_enum ( #3412 )
...
Add WASM_V128 in wasm_valkind_enum and handle the the type accordingly
in wasm_c_api.c and wasm_runtime_common.c, and fix a typo in V128 union.
2024-05-14 10:22:42 +08:00
YAMAMOTO Takashi
456e2f6919
aot compiler: Fix a type mismatch in compile_op_float_min_max ( #3423 )
...
Fixes https://github.com/bytecodealliance/wasm-micro-runtime/issues/3422
2024-05-14 10:06:48 +08:00
YAMAMOTO Takashi
8f098a5905
aot: Make precheck functions use short-call for xtensa ( #3418 )
...
Note: this breaks AOT ABI for xtensa again because of a revert of an ABI-breaking change.
2024-05-13 16:55:00 +08:00
TianlongLiang
c6d42db598
Correct Exception Handling tag type when GC is enabled ( #3413 )
...
Use `WASMFuncType` to represent tag_type in `WASMTagImport` and
`WASMTag` so that the type definition is consistent no matter to GC is
enabled or not.
This PR fixes https://github.com/bytecodealliance/wasm-micro-runtime/issues/3409 .
2024-05-13 16:42:01 +08:00
Hendra Darwintha
22eef3d88d
Fix basic example, parameter missmatch between host and wasm ( #3415 )
...
Revert the mistaken change by PR #3209 .
2024-05-13 12:37:28 +08:00
Benbuck Nason
b349d844f8
Fix workspaces path in build_wamr.sh ( #3414 )
...
This should match the path inside of .devcontainer/Dockerfile.
2024-05-13 11:47:28 +08:00
Marcin Kolny
fe5e7a9981
Implement Memory64 support for AOT ( #3362 )
...
Refer to:
https://github.com/bytecodealliance/wasm-micro-runtime/pull/3266
https://github.com/bytecodealliance/wasm-micro-runtime/issues/3091
2024-05-13 11:03:38 +08:00
Benbuck Nason
c85bada2a9
Add wasm module global type information APIs ( #3406 )
...
Support getting global type from `wasm_runtime_get_import_type` and
`wasm_runtime_get_export_type`, and add two APIs:
```C
wasm_valkind_t
wasm_global_type_get_valkind(const wasm_global_type_t global_type);
bool
wasm_global_type_get_mutable(const wasm_global_type_t global_type);
```
2024-05-10 09:15:58 +08:00
YAMAMOTO Takashi
46f83cf486
core/iwasm/compilation: Remove stale function prototypes ( #3408 )
2024-05-09 16:55:32 +08:00
Wenyong Huang
a6c0cb74c9
wasm loader: Fix handling if block without op else ( #3404 )
...
If there is no else branch, make a virtual else opcode for easier integrity
check and to copy the correct results to the block return address for
fast-interp mode: change if block from `if ... end` to `if ... else end`.
Reported in issue #3386 , #3387 , #3388 .
2024-05-09 16:46:26 +08:00
TianlongLiang
ea13d47a41
ref-types: Correct default value for function local variables ( #3397 )
...
In classic interpreter, fast interpreter and fast-jit running modes, set the local
variables' default value to NULL_REF (0xFFFFFFFF) rather than 0 if they are type
of externref or funcref.
The issue was reported in #3390 and #3391 .
2024-05-09 16:31:21 +08:00
Zhang, Yi
f729da7656
Add test cases for the requirements of "gc-aot" feature ( #3399 )
2024-05-09 16:15:44 +08:00
liang.he
480ee02615
append_aot_to_wasm.py: Add --ver-str option to emit more info in custom section name ( #3398 )
...
``` shell
$ python3 append_aot_to_wasm.py --wasm waf.wasm --aot waf.aot -o waf.aot.wasm
$ /opt/wabt-1.0.34/bin/wasm-objdump -h waf.aot.wasm | grep wamr-aot
Custom start=0x007520c7 end=0x00e021a0 (size=0x006b00d9) "wamr-aot"
$ python3 append_aot_to_wasm.py --wasm waf.wasm --aot waf.aot --ver-str 2.0.0 -o waf.aot.wasm
$ /opt/wabt-1.0.34/bin/wasm-objdump -h waf.aot.wasm | grep wamr-aot
Custom start=0x007520c7 end=0x00e021a4 (size=0x006b00dd) "wamr-aot-2.0.0"
```
2024-05-08 18:06:54 +08:00
Benbuck Nason
432a940735
Fix clang compile warnings ( #3396 )
2024-05-08 16:43:47 +08:00
GanJingSaiyan
07eae7c424
Add aot binary analysis tool aot-analyzer ( #3379 )
...
Add aot binary analysis tool aot-analyzer, samples:
```bash
# parse example.aot, and print basic information about AoT file
$ ./aot-analyzer -i example.aot
# parse example.aot, and print the size of text section of the AoT file
$ ./aot-analyzer -t example.aot
# compare these two files, and show the difference in function size between them
$ ./aot-analyzer -c example.aot example.wasm
```
Signed-off-by: ganjing <ganjing@xiaomi.com>
2024-05-08 16:31:39 +08:00
Benbuck Nason
1c2a8fca4e
Fix some more spelling issues ( #3393 )
2024-05-08 09:30:29 +08:00
Benbuck Nason
ca61184ced
Fix some spelling issues ( #3385 )
...
Fix some of the spelling issues found by CSpell.
2024-05-06 07:56:48 +08:00
Benbuck Nason
c0e33f08b0
Expose API to get import/export function's param/result valkind ( #3363 )
...
Export API:
```C
wasm_func_type_get_param_count
wasm_func_type_get_param_valkind
wasm_func_type_get_result_count
wasm_func_type_get_result_valkind
```
And change wasm_import_type/wasm_export_type to wasm_import_t/wasm_export_t.
2024-05-03 09:41:08 +08:00
YAMAMOTO Takashi
3e5361f76d
samples/native-stack-overflow: Examine native functions with signature ( #3382 )
...
Note: wamrc chooses different methods to call native functions
with and without signatures.
2024-05-03 09:16:35 +08:00
Wenyong Huang
835188cc53
aot compiler: Fix the length type passed to aot_memmove/aot_memset ( #3378 )
...
The current length type of aot_memmove/aot_memset is size_t, and on
a 64 bit host it is uint64, while what the aot code passes to it is uint32,
this might lead to unexpected behavior.
ps. https://github.com/bytecodealliance/wasm-micro-runtime/pull/3376 .
2024-05-01 21:40:52 +08:00
YAMAMOTO Takashi
163f29e51b
Add some more comments on WASM_STACK_GUARD_SIZE ( #3380 )
2024-05-01 15:15:17 +08:00
Benbuck Nason
4abf288c94
Fix typo for 'native' in wasm_export.h ( #3376 )
...
Trivial spelling fix.
2024-04-30 08:57:49 +08:00