Skip to content
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

Sync with main #4049

Open
wants to merge 109 commits into
base: dev/shared_heap
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
e87f7a9
Fix Windows compile error when uvwasi is enabled (#3810)
wenyongh Sep 25, 2024
86926aa
Fix unused param warning when GC is enabled (#3814)
palchikov Sep 25, 2024
5ce6f90
Add scoreboard CI for supply-chain security (#3819)
TianlongLiang Sep 27, 2024
438b81b
Fix missing symbols when using aot mode on riscv platforms (#3812)
Kvencc Sep 28, 2024
0e05b0a
Add CODEOWNERS (#3822)
lum1n0us Sep 29, 2024
bd8c7a3
build(deps): bump github/codeql-action from 2.2.4 to 3.26.9
dependabot[bot] Sep 30, 2024
2baac8d
build(deps): bump actions/upload-artifact from 3.1.0 to 4.4.0
dependabot[bot] Sep 30, 2024
2e60f37
build(deps): bump ossf/scorecard-action from 2.3.1 to 2.4.0
dependabot[bot] Sep 30, 2024
e07ac1f
Merge pull request #3826 from bytecodealliance/dependabot/github_acti…
loganek Oct 5, 2024
5f3d36b
Merge pull request #3827 from bytecodealliance/dependabot/github_acti…
loganek Oct 5, 2024
e0027f3
Merge pull request #3828 from bytecodealliance/dependabot/github_acti…
loganek Oct 5, 2024
72872cb
Fix mac build of libc_emcc_wrapper.c (#3836)
bnason-nf Oct 5, 2024
0c4b2da
aot_comp_option.h: Add missing stdint.h header (#3834)
sjamesr Oct 7, 2024
f9153fb
build(deps): bump github/codeql-action from 3.26.9 to 3.26.11 (#3843)
dependabot[bot] Oct 8, 2024
6b4d8aa
Emit load_addr and load_size if WAMR_ENABLE_COMPILER is set (#3835)
sjamesr Oct 8, 2024
30539bf
Fix compilation error found in tflite test (#3820)
lum1n0us Oct 8, 2024
deacb7a
Fix exec_env_tls assertion in module instantiation (#3844)
wenyongh Oct 8, 2024
2b5e2d9
libc-emcc: Use alternate method to check getrandom support (#3848)
bnason-nf Oct 10, 2024
36d4380
Support table64 extension in classic-interp and AOT running modes (#3…
TianlongLiang Oct 11, 2024
b16b604
Enable libc-wasi for windows msvc build (#3852)
wenyongh Oct 14, 2024
e2680e5
Remove unused folder samples/gui and samples/littlevgl (#3853)
wenyongh Oct 14, 2024
7d4b530
build(deps): bump actions/upload-artifact from 4.4.0 to 4.4.3 (#3855)
dependabot[bot] Oct 14, 2024
0152e2c
build(deps): bump github/codeql-action from 3.26.11 to 3.26.12 (#3856)
dependabot[bot] Oct 14, 2024
b038f27
Merge pull request #3823 from bytecodealliance/dev/shared_heap
wenyongh Oct 15, 2024
327374c
Fix some compile warnings and typos (#3854)
wenyongh Oct 15, 2024
1af4740
Add Windows wamrc and iwasm build in release CI (#3857)
TianlongLiang Oct 17, 2024
7e625a0
Fix syntax error in codeql_buildscript.sh (#3864)
TianlongLiang Oct 17, 2024
74d2427
Allow to set native stack boundary to exec_env (#3862)
wenyongh Oct 18, 2024
48eaa22
Refine wasm/aot function instance lookup (#3865)
wenyongh Oct 18, 2024
bb3f8d9
release CI: Add another iwasm binary that supports Garbage Collection…
TianlongLiang Oct 21, 2024
87588ca
Fix lookup function issue reported in nightly run (#3868)
wenyongh Oct 21, 2024
3ad9530
Fix quadratic runtime for duplicate export name detection (#3861)
sjamesr Oct 21, 2024
b34b2c8
Add token permissions for CIs to fix issues reported by scorecard (#3…
TianlongLiang Oct 22, 2024
fe13f6d
build(deps): bump github/codeql-action from 3.26.12 to 3.26.13 (#3869)
dependabot[bot] Oct 22, 2024
217ba3b
Update release notes and update version to 2.2.0 (#3863)
Zzzabiyaka Oct 22, 2024
7d56289
Exclude fuzz test python and npm packages in scoreboard scan (#3871)
TianlongLiang Oct 23, 2024
6426fc4
Fix out of bounds issues after memory.grow on non-aot non-threads bui…
Zzzabiyaka Oct 23, 2024
a713ba1
fix(ios): Remove `float-abi` flag (#3889)
xdoardo Oct 29, 2024
483c57d
build(deps): bump github/codeql-action from 3.26.13 to 3.27.0 (#3888)
dependabot[bot] Oct 29, 2024
a3960c8
Refine looking up aot function with index (#3882)
wenyongh Oct 29, 2024
95edef3
Bump AOT_CURRENT_VERSION for WAMR 2.x (gc, memory64) (#3880)
yamt Oct 29, 2024
1138435
Fix mmap flags for AOT loader on non-Linux SGX platforms (#3890)
lum1n0us Oct 30, 2024
c7b2683
Fix out of bounds issue in is_native_addr_in_shared_heap function (#3…
lum1n0us Oct 31, 2024
e352f0a
Refactor AOT loader to support compatible versions (#3891)
lum1n0us Nov 1, 2024
bf78863
Wasm loader enhancement: check code size in code entry (#3892)
TianlongLiang Nov 7, 2024
397f663
fix(uwp): Gate NTSTATUS definition behind WINAPI_PARTITION_DESKTOP fo…
fadss Nov 8, 2024
58f242f
Merge pull request #3897 from bafadumi/main
loganek Nov 12, 2024
fdda259
Fix linked global initialization in multimodule (#3905)
sjamesr Nov 13, 2024
75f5fa4
build(deps): bump github/codeql-action from 3.27.0 to 3.27.1 (#3902)
dependabot[bot] Nov 13, 2024
226bf22
GlobalValueSet was moved to IRPartitionLayer recently, but we have a …
sjamesr Nov 13, 2024
0e4dffc
Fix a leak in wasm_loader_emit_br_info (#3900)
TianlongLiang Nov 13, 2024
0119b17
Correct the table index calculation in aot_instantiation (#3903)
lum1n0us Nov 18, 2024
2975e2f
build(deps): bump github/codeql-action from 3.27.1 to 3.27.4 (#3912)
dependabot[bot] Nov 19, 2024
f2b87d7
Support external toolchain on Windows for aot compiler (#3911)
TianlongLiang Nov 19, 2024
f1d03db
Fix CI wamr-ide error (#3913)
TianlongLiang Nov 20, 2024
62aca17
Check possible integer overflow in aot memory boundary check (#3920)
TianlongLiang Nov 22, 2024
00c2aa1
Drop declarative elements on module instantiation (#3922)
sjamesr Nov 24, 2024
9d8150e
Fix WASI Path Mapping Processing (#3923)
dpjohnst Nov 24, 2024
dbdf3df
Use plain assignment rather than bh_memcpy_s (#3924)
sjamesr Nov 24, 2024
b0c6d5c
add testcases for shared heap and fix POP_MEM_OFFSET of memory64 (#3916)
WenLY1 Nov 24, 2024
1d111a3
Fix loader small bug (#3928)
TianlongLiang Nov 26, 2024
7b553cd
Enable ref types by default (#3894)
Zzzabiyaka Nov 27, 2024
27d96aa
Update README.md to clarify Windows toolchain support and ESP-IDF ref…
lum1n0us Nov 27, 2024
fd91b51
build(deps): bump github/codeql-action from 3.27.4 to 3.27.5 (#3931)
dependabot[bot] Nov 28, 2024
8698d22
add thread cpu time for zephyr (#3937)
TianlongLiang Nov 28, 2024
e09613c
support WASM_FUNCREF return type in argv_to_results (#3936)
sjamesr Nov 28, 2024
838dd81
don't return an uninitialized trap if argv_to_results fails (#3935)
sjamesr Nov 28, 2024
739efd7
Fix incorrect assignment in win_file.c (#3939)
dpjohnst Dec 1, 2024
aabe830
Improvements for platform thread APIs on Windows and Zephyr (#3941)
TianlongLiang Dec 6, 2024
c32a6ce
Refactor SConscript and add file checks in iwasm.c (#3945)
zhkag Dec 6, 2024
f665e7b
build(deps): bump github/codeql-action from 3.27.5 to 3.27.6
dependabot[bot] Dec 9, 2024
591b740
Consume the placeholders that were put when emitting table info (#3940)
lum1n0us Dec 10, 2024
bebdd4a
Fix aot table instantiate (#3946)
wenyongh Dec 10, 2024
1fb0862
Merge pull request #3951 from bytecodealliance/dependabot/github_acti…
loganek Dec 10, 2024
9563909
set alignment 4 when loading multi return value (#3955)
TianlongLiang Dec 12, 2024
296c3cc
wasm_export.h: Use "default" visibility for gcc and clang (#3957)
midokura-xavi92 Dec 19, 2024
09c2abd
build(deps): Bump github/codeql-action from 3.27.6 to 3.27.9 (#3960)
dependabot[bot] Dec 19, 2024
932eb5d
Only access Zephyr thread stats info when it's available (#3962)
TianlongLiang Dec 19, 2024
9916813
top-level cmakefile: fix macOS build (#3968)
yamt Dec 19, 2024
8d51a3c
use a random secret key (#3971)
lum1n0us Dec 19, 2024
f8f37c8
[fuzzing] Enable instantiation (#3958)
lum1n0us Dec 19, 2024
9598611
CMakeLists.txt: Do not require C++ (#3956)
midokura-xavi92 Dec 20, 2024
4cda74a
add reference type support by default for darwin to support WASI-SDK-…
woodsmc Dec 22, 2024
040e776
top-level cmake: link llvm libraries to our shared library (#3973)
yamt Dec 23, 2024
8ac0649
Set thread information earlier in exec_env creation (#3967)
sjamesr Dec 23, 2024
70bec14
Add Tianlong into code owners (#3970)
lum1n0us Dec 24, 2024
bf2f366
build(deps): Bump github/codeql-action from 3.27.9 to 3.28.0 (#3982)
dependabot[bot] Dec 25, 2024
04f1071
build(deps): Bump actions/upload-artifact from 4.4.3 to 4.5.0 (#3981)
dependabot[bot] Dec 25, 2024
9b80766
Break aot_create_comp_data into small functions
no1wudi Dec 25, 2024
38cf274
Optimize memory initialization handling in AOT loader (#3983)
no1wudi Dec 26, 2024
24ecee8
Merge pull request #3987 from no1wudi/fix
no1wudi Dec 28, 2024
7f3e0df
Handle a new scenario where an item is both exported and imported. (#…
lum1n0us Dec 29, 2024
31ff576
Error message improvement (#4000)
loganek Jan 3, 2025
099056b
Ensure __heap_base and __data_end global indices are validated agains…
lum1n0us Jan 3, 2025
1958808
Fix table index calculations in wasm_loader and wasm_mini_loader (#4004)
lum1n0us Jan 5, 2025
1807eec
Add an example of how to embed WAMR in Zephyr user mode (#3998)
TianlongLiang Jan 5, 2025
9989b1c
[fuzzing] Use software bound-check during fuzzing (#4003)
lum1n0us Jan 6, 2025
a653746
Check whether related table has funcref elem in opcode call_indirect …
TianlongLiang Jan 6, 2025
02683d2
Improve stack consistency by ensuring sufficient space for dummy offs…
lum1n0us Jan 9, 2025
902f7d2
Add documentation regarding security issues and the status of Wasm pr…
lum1n0us Jan 9, 2025
53da420
Enable shrunk memory by default and add related configurations (#4008)
lum1n0us Jan 12, 2025
0d20521
build(deps): Bump actions/upload-artifact from 4.5.0 to 4.6.0 (#4021)
dependabot[bot] Jan 14, 2025
946430f
build(deps): Bump github/codeql-action from 3.28.0 to 3.28.1 (#4020)
dependabot[bot] Jan 14, 2025
9c3807e
Refine read leb int wasm loader of fast interpreter (#4017)
wenyongh Jan 14, 2025
1ac62e1
.github: Add shared lib builds (#3975)
midokura-xavi92 Jan 15, 2025
ba75b8f
fixes for compiling on windows (#4026)
malytomas Jan 17, 2025
831e4bb
Refine getting const offsets in wasm loader of fast-interp (#4012)
wenyongh Jan 20, 2025
e3ddbd5
Synchronize the GC spec tests to the commit from December 9. 2024. (#…
lum1n0us Jan 20, 2025
b6dea22
Fix wasm loader check data segment count (#4039)
TianlongLiang Jan 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Refine wasm/aot function instance lookup (#3865)
Sort the module instance's export functions with the function name,
and use binary search to lookup the wasm/aot function.
  • Loading branch information
wenyongh authored Oct 18, 2024
commit 48eaa2286abfd02565175bc77866362023c0c93c
20 changes: 15 additions & 5 deletions core/iwasm/aot/aot_runtime.c
Original file line number Diff line number Diff line change
Expand Up @@ -1379,6 +1379,15 @@ init_func_type_indexes(AOTModuleInstance *module_inst, AOTModule *module,
return true;
}

static int
cmp_func_inst(const void *a, const void *b)
{
const AOTFunctionInstance *func_inst1 = (const AOTFunctionInstance *)a;
const AOTFunctionInstance *func_inst2 = (const AOTFunctionInstance *)b;

return strcmp(func_inst1->func_name, func_inst2->func_name);
}

static bool
create_export_funcs(AOTModuleInstance *module_inst, AOTModule *module,
char *error_buf, uint32 error_buf_size)
Expand Down Expand Up @@ -1419,6 +1428,9 @@ create_export_funcs(AOTModuleInstance *module_inst, AOTModule *module,
export_func++;
}
}

qsort(module_inst->export_functions, module_inst->export_func_count,
sizeof(AOTFunctionInstance), cmp_func_inst);
}

return true;
Expand Down Expand Up @@ -2206,14 +2218,12 @@ aot_deinstantiate(AOTModuleInstance *module_inst, bool is_sub_inst)
AOTFunctionInstance *
aot_lookup_function(const AOTModuleInstance *module_inst, const char *name)
{
uint32 i;
AOTFunctionInstance *export_funcs =
(AOTFunctionInstance *)module_inst->export_functions;
AOTFunctionInstance key = { .func_name = (char *)name };

for (i = 0; i < module_inst->export_func_count; i++)
if (!strcmp(export_funcs[i].func_name, name))
return &export_funcs[i];
return NULL;
return bsearch(&key, export_funcs, module_inst->export_func_count,
sizeof(AOTFunctionInstance), cmp_func_inst);
}

#ifdef OS_ENABLE_HW_BOUND_CHECK
Expand Down
3 changes: 1 addition & 2 deletions core/iwasm/common/wasm_c_api.c
Original file line number Diff line number Diff line change
Expand Up @@ -3391,8 +3391,7 @@ wasm_func_call(const wasm_func_t *func, const wasm_val_vec_t *params,
if (export->kind == EXPORT_KIND_FUNC) {
if (export->index == func->func_idx_rt) {
func_comm_rt =
(AOTFunctionInstance *)inst_aot->export_functions
+ export_func_j;
aot_lookup_function(inst_aot, export->name);
((wasm_func_t *)func)->func_comm_rt = func_comm_rt;
break;
}
Expand Down
41 changes: 16 additions & 25 deletions core/iwasm/common/wasm_runtime_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -3908,23 +3908,18 @@ wasm_runtime_is_wasi_mode(WASMModuleInstanceCommon *module_inst)
WASMFunctionInstanceCommon *
wasm_runtime_lookup_wasi_start_function(WASMModuleInstanceCommon *module_inst)
{
uint32 i;

#if WASM_ENABLE_INTERP != 0
if (module_inst->module_type == Wasm_Module_Bytecode) {
WASMModuleInstance *wasm_inst = (WASMModuleInstance *)module_inst;
WASMFunctionInstance *func;
for (i = 0; i < wasm_inst->export_func_count; i++) {
if (!strcmp(wasm_inst->export_functions[i].name, "_start")) {
func = wasm_inst->export_functions[i].function;
if (func->u.func->func_type->param_count != 0
|| func->u.func->func_type->result_count != 0) {
LOG_ERROR("Lookup wasi _start function failed: "
"invalid function type.\n");
return NULL;
}
return (WASMFunctionInstanceCommon *)func;
WASMFunctionInstance *func = wasm_lookup_function(wasm_inst, "_start");
if (func) {
if (func->u.func->func_type->param_count != 0
|| func->u.func->func_type->result_count != 0) {
LOG_ERROR("Lookup wasi _start function failed: "
"invalid function type.\n");
return NULL;
}
return (WASMFunctionInstanceCommon *)func;
}
return NULL;
}
Expand All @@ -3933,19 +3928,15 @@ wasm_runtime_lookup_wasi_start_function(WASMModuleInstanceCommon *module_inst)
#if WASM_ENABLE_AOT != 0
if (module_inst->module_type == Wasm_Module_AoT) {
AOTModuleInstance *aot_inst = (AOTModuleInstance *)module_inst;
AOTFunctionInstance *export_funcs =
(AOTFunctionInstance *)aot_inst->export_functions;
for (i = 0; i < aot_inst->export_func_count; i++) {
if (!strcmp(export_funcs[i].func_name, "_start")) {
AOTFuncType *func_type = export_funcs[i].u.func.func_type;
if (func_type->param_count != 0
|| func_type->result_count != 0) {
LOG_ERROR("Lookup wasi _start function failed: "
"invalid function type.\n");
return NULL;
}
return (WASMFunctionInstanceCommon *)&export_funcs[i];
AOTFunctionInstance *func = aot_lookup_function(aot_inst, "_start");
if (func) {
AOTFuncType *func_type = func->u.func.func_type;
if (func_type->param_count != 0 || func_type->result_count != 0) {
LOG_ERROR("Lookup wasi _start function failed: "
"invalid function type.\n");
return NULL;
}
return func;
}
return NULL;
}
Expand Down
30 changes: 25 additions & 5 deletions core/iwasm/interpreter/wasm_runtime.c
Original file line number Diff line number Diff line change
Expand Up @@ -1367,6 +1367,17 @@ export_functions_deinstantiate(WASMExportFuncInstance *functions)
wasm_runtime_free(functions);
}

static int
cmp_export_func_inst(const void *a, const void *b)
{
const WASMExportFuncInstance *export_func1 =
(const WASMExportFuncInstance *)a;
const WASMExportFuncInstance *export_func2 =
(const WASMExportFuncInstance *)b;

return strcmp(export_func1->name, export_func2->name);
}

/**
* Instantiate export functions in a module.
*/
Expand Down Expand Up @@ -1395,6 +1406,9 @@ export_functions_instantiate(const WASMModule *module,
}

bh_assert((uint32)(export_func - export_funcs) == export_func_count);

qsort(export_funcs, export_func_count, sizeof(WASMExportFuncInstance),
cmp_export_func_inst);
return export_funcs;
}

Expand Down Expand Up @@ -3420,11 +3434,17 @@ wasm_deinstantiate(WASMModuleInstance *module_inst, bool is_sub_inst)
WASMFunctionInstance *
wasm_lookup_function(const WASMModuleInstance *module_inst, const char *name)
{
uint32 i;
for (i = 0; i < module_inst->export_func_count; i++)
if (!strcmp(module_inst->export_functions[i].name, name))
return module_inst->export_functions[i].function;
return NULL;
WASMExportFuncInstance key = { .name = (char *)name };
WASMExportFuncInstance *export_func_inst;

export_func_inst = bsearch(
&key, module_inst->export_functions, module_inst->export_func_count,
sizeof(WASMExportFuncInstance), cmp_export_func_inst);

if (!export_func_inst)
return NULL;

return export_func_inst->function;
}

WASMMemoryInstance *
Expand Down
Loading