From 773efc006de86689df2b25de295b3bd23be9848f Mon Sep 17 00:00:00 2001 From: Wenyong Huang Date: Tue, 14 May 2024 11:08:16 +0800 Subject: [PATCH] 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: https://github.com/WebAssembly/wasm-c-api/blob/2ce1367c9d1271c83fb63bef26d896a2f290cd23/include/wasm.h#L185 --- core/iwasm/common/wasm_c_api.c | 26 +++++++++---------- core/iwasm/common/wasm_runtime_common.c | 12 ++++----- core/iwasm/include/wasm_c_api.h | 12 ++++----- core/iwasm/include/wasm_export.h | 2 +- language-bindings/go/wamr/instance.go | 4 +-- .../python/src/wamr/wasmcapi/binding.py | 2 +- .../python/src/wamr/wasmcapi/ffi.py | 8 +++--- .../python/wasm-c-api/tests/test_basic.py | 2 +- samples/ref-types/src/hello.c | 4 +-- samples/wasm-c-api/src/callback.c | 2 +- samples/wasm-c-api/src/hostref.c | 8 +++--- samples/wasm-c-api/src/reflect.c | 2 +- 12 files changed, 42 insertions(+), 42 deletions(-) diff --git a/core/iwasm/common/wasm_c_api.c b/core/iwasm/common/wasm_c_api.c index 9759f33f4..7c582bbc6 100644 --- a/core/iwasm/common/wasm_c_api.c +++ b/core/iwasm/common/wasm_c_api.c @@ -759,7 +759,7 @@ val_type_rt_2_valkind(uint8 val_type_rt) #undef WAMR_VAL_TYPE_2_WASM_VAL_KIND default: - return WASM_ANYREF; + return WASM_EXTERNREF; } } @@ -776,7 +776,7 @@ wasm_valtype_new(wasm_valkind_t kind) if (kind > WASM_V128 && WASM_FUNCREF != kind #if WASM_ENABLE_GC == 0 && WASM_ENABLE_REF_TYPES != 0 - && WASM_ANYREF != kind + && WASM_EXTERNREF != kind #endif ) { return NULL; @@ -808,7 +808,7 @@ wasm_valtype_copy(const wasm_valtype_t *src) wasm_valkind_t wasm_valtype_kind(const wasm_valtype_t *val_type) { - return val_type ? val_type->kind : WASM_ANYREF; + return val_type ? val_type->kind : WASM_EXTERNREF; } static wasm_functype_t * @@ -976,7 +976,7 @@ cmp_val_kind_with_val_type(wasm_valkind_t v_k, uint8 v_t) || (v_k == WASM_F32 && v_t == VALUE_TYPE_F32) || (v_k == WASM_F64 && v_t == VALUE_TYPE_F64) || (v_k == WASM_V128 && v_t == VALUE_TYPE_V128) - || (v_k == WASM_ANYREF && v_t == VALUE_TYPE_EXTERNREF) + || (v_k == WASM_EXTERNREF && v_t == VALUE_TYPE_EXTERNREF) || (v_k == WASM_FUNCREF && v_t == VALUE_TYPE_FUNCREF); } @@ -1135,7 +1135,7 @@ wasm_tabletype_new(own wasm_valtype_t *val_type, const wasm_limits_t *limits) if (wasm_valtype_kind(val_type) != WASM_FUNCREF #if WASM_ENABLE_GC == 0 && WASM_ENABLE_REF_TYPES != 0 - && wasm_valtype_kind(val_type) != WASM_ANYREF + && wasm_valtype_kind(val_type) != WASM_EXTERNREF #endif ) { return NULL; @@ -1653,7 +1653,7 @@ rt_val_to_wasm_val(const uint8 *data, uint8 val_type_rt, wasm_val_t *out) break; #if WASM_ENABLE_GC == 0 && WASM_ENABLE_REF_TYPES != 0 case VALUE_TYPE_EXTERNREF: - out->kind = WASM_ANYREF; + out->kind = WASM_EXTERNREF; if (NULL_REF == *(uint32 *)data) { out->of.ref = NULL; } @@ -1697,7 +1697,7 @@ wasm_val_to_rt_val(WASMModuleInstanceCommon *inst_comm_rt, uint8 val_type_rt, break; #if WASM_ENABLE_GC == 0 && WASM_ENABLE_REF_TYPES != 0 case VALUE_TYPE_EXTERNREF: - bh_assert(WASM_ANYREF == v->kind); + bh_assert(WASM_EXTERNREF == v->kind); ret = wasm_externref_obj2ref(inst_comm_rt, v->of.ref, (uint32 *)data); break; @@ -3263,7 +3263,7 @@ params_to_argv(const wasm_val_vec_t *params, bh_assert(0); break; #if WASM_ENABLE_GC == 0 && WASM_ENABLE_REF_TYPES != 0 - case WASM_ANYREF: + case WASM_EXTERNREF: *(uintptr_t *)argv = (uintptr_t)param->of.ref; argv += sizeof(uintptr_t) / sizeof(uint32); break; @@ -3308,7 +3308,7 @@ argv_to_results(const uint32 *argv, const wasm_valtype_vec_t *result_defs, bh_assert(0); break; #if WASM_ENABLE_GC == 0 && WASM_ENABLE_REF_TYPES != 0 - case WASM_ANYREF: + case WASM_EXTERNREF: result->of.ref = (struct wasm_ref_t *)(*(uintptr_t *)argv); argv += sizeof(uintptr_t) / sizeof(uint32); break; @@ -4034,7 +4034,7 @@ wasm_table_get(const wasm_table_t *table, wasm_table_size_t index) } #if WASM_ENABLE_REF_TYPES != 0 - if (table->type->val_type->kind == WASM_ANYREF) { + if (table->type->val_type->kind == WASM_EXTERNREF) { void *externref_obj; if (!wasm_externref_ref2obj(ref_idx, &externref_obj)) { return NULL; @@ -4064,7 +4064,7 @@ wasm_table_set(wasm_table_t *table, wasm_table_size_t index, if (ref #if WASM_ENABLE_REF_TYPES != 0 && !(WASM_REF_foreign == ref->kind - && WASM_ANYREF == table->type->val_type->kind) + && WASM_EXTERNREF == table->type->val_type->kind) #endif && !(WASM_REF_func == ref->kind && WASM_FUNCREF == table->type->val_type->kind)) { @@ -4111,7 +4111,7 @@ wasm_table_set(wasm_table_t *table, wasm_table_size_t index, } #if WASM_ENABLE_REF_TYPES != 0 - if (table->type->val_type->kind == WASM_ANYREF) { + if (table->type->val_type->kind == WASM_EXTERNREF) { return wasm_externref_obj2ref(table->inst_comm_rt, ref, p_ref_idx); } else @@ -5268,7 +5268,7 @@ wasm_externkind_t wasm_extern_kind(const wasm_extern_t *external) { if (!external) { - return WASM_ANYREF; + return WASM_EXTERNREF; } return external->kind; diff --git a/core/iwasm/common/wasm_runtime_common.c b/core/iwasm/common/wasm_runtime_common.c index c04a82a23..830cf605b 100644 --- a/core/iwasm/common/wasm_runtime_common.c +++ b/core/iwasm/common/wasm_runtime_common.c @@ -2000,7 +2000,7 @@ val_type_to_val_kind(uint8 value_type) case VALUE_TYPE_FUNCREF: return WASM_FUNCREF; case VALUE_TYPE_EXTERNREF: - return WASM_ANYREF; + return WASM_EXTERNREF; default: bh_assert(0); return 0; @@ -2318,7 +2318,7 @@ parse_args_to_uint32_array(WASMFuncType *type, wasm_val_t *args, #else case WASM_FUNCREF: #endif - case WASM_ANYREF: + case WASM_EXTERNREF: { #if UINTPTR_MAX == UINT32_MAX out_argv[p++] = args[i].of.foreign; @@ -2419,7 +2419,7 @@ parse_uint32_array_to_results(WASMFuncType *type, uint32 *argv, #endif /* end of WASM_ENABLE_GC == 0 */ { #if UINTPTR_MAX == UINT32_MAX - out_results[i].kind = WASM_ANYREF; + out_results[i].kind = WASM_EXTERNREF; out_results[i].of.foreign = (uintptr_t)argv[p++]; #else union { @@ -2428,7 +2428,7 @@ parse_uint32_array_to_results(WASMFuncType *type, uint32 *argv, } u; u.parts[0] = argv[p++]; u.parts[1] = argv[p++]; - out_results[i].kind = WASM_ANYREF; + out_results[i].kind = WASM_EXTERNREF; out_results[i].of.foreign = u.val; #endif break; @@ -2582,7 +2582,7 @@ wasm_runtime_call_wasm_v(WASMExecEnv *exec_env, } case VALUE_TYPE_EXTERNREF: { - args[i].kind = WASM_ANYREF; + args[i].kind = WASM_EXTERNREF; args[i].of.foreign = va_arg(vargs, uintptr_t); break; } @@ -6528,7 +6528,7 @@ argv_to_params(wasm_val_t *out_params, const uint32 *argv, break; #if WASM_ENABLE_GC == 0 && WASM_ENABLE_REF_TYPES != 0 case VALUE_TYPE_EXTERNREF: - param->kind = WASM_ANYREF; + param->kind = WASM_EXTERNREF; if (!wasm_externref_ref2obj(*argv, (void **)¶m->of.foreign)) { diff --git a/core/iwasm/include/wasm_c_api.h b/core/iwasm/include/wasm_c_api.h index 52598050a..498f43899 100644 --- a/core/iwasm/include/wasm_c_api.h +++ b/core/iwasm/include/wasm_c_api.h @@ -298,7 +298,7 @@ enum wasm_valkind_enum { WASM_F32, WASM_F64, WASM_V128, - WASM_ANYREF = 128, + WASM_EXTERNREF = 128, WASM_FUNCREF, }; #endif @@ -308,10 +308,10 @@ WASM_API_EXTERN own wasm_valtype_t* wasm_valtype_new(wasm_valkind_t); WASM_API_EXTERN wasm_valkind_t wasm_valtype_kind(const wasm_valtype_t*); static inline bool wasm_valkind_is_num(wasm_valkind_t k) { - return k < WASM_ANYREF; + return k < WASM_EXTERNREF; } static inline bool wasm_valkind_is_ref(wasm_valkind_t k) { - return k >= WASM_ANYREF; + return k >= WASM_EXTERNREF; } static inline bool wasm_valtype_is_num(const wasm_valtype_t* t) { @@ -712,7 +712,7 @@ static inline own wasm_valtype_t* wasm_valtype_new_v128(void) { } static inline own wasm_valtype_t* wasm_valtype_new_anyref(void) { - return wasm_valtype_new(WASM_ANYREF); + return wasm_valtype_new(WASM_EXTERNREF); } static inline own wasm_valtype_t* wasm_valtype_new_funcref(void) { return wasm_valtype_new(WASM_FUNCREF); @@ -872,8 +872,8 @@ static inline void* wasm_val_ptr(const wasm_val_t* val) { #define WASM_I64_VAL(i) {.kind = WASM_I64, ._paddings = {0}, .of = {.i64 = i}} #define WASM_F32_VAL(z) {.kind = WASM_F32, ._paddings = {0}, .of = {.f32 = z}} #define WASM_F64_VAL(z) {.kind = WASM_F64, ._paddings = {0}, .of = {.f64 = z}} -#define WASM_REF_VAL(r) {.kind = WASM_ANYREF, ._paddings = {0}, .of = {.ref = r}} -#define WASM_INIT_VAL {.kind = WASM_ANYREF, ._paddings = {0}, .of = {.ref = NULL}} +#define WASM_REF_VAL(r) {.kind = WASM_EXTERNREF, ._paddings = {0}, .of = {.ref = r}} +#define WASM_INIT_VAL {.kind = WASM_EXTERNREF, ._paddings = {0}, .of = {.ref = NULL}} #define KILOBYTE(n) ((n) * 1024) diff --git a/core/iwasm/include/wasm_export.h b/core/iwasm/include/wasm_export.h index 11355c9d7..dd1ac9ba2 100644 --- a/core/iwasm/include/wasm_export.h +++ b/core/iwasm/include/wasm_export.h @@ -250,7 +250,7 @@ enum wasm_valkind_enum { WASM_F32, WASM_F64, WASM_V128, - WASM_ANYREF = 128, + WASM_EXTERNREF = 128, WASM_FUNCREF, }; #endif diff --git a/language-bindings/go/wamr/instance.go b/language-bindings/go/wamr/instance.go index 111d795bc..a031c67a6 100644 --- a/language-bindings/go/wamr/instance.go +++ b/language-bindings/go/wamr/instance.go @@ -211,7 +211,7 @@ func (self *Instance) CallFuncV(funcName string, case int32: if (param_types[i] != C.WASM_I32 && param_types[i] != C.WASM_FUNCREF && - param_types[i] != C.WASM_ANYREF) { + param_types[i] != C.WASM_EXTERNREF) { str := "CallFunc error: invalid param type %d, " + "expect i32 but got other" return fmt.Errorf(str, param_types[i]) @@ -273,7 +273,7 @@ func (self *Instance) CallFuncV(funcName string, fallthrough case C.WASM_FUNCREF: fallthrough - case C.WASM_ANYREF: + case C.WASM_EXTERNREF: i32 := (int32)(argv[argc]) results[i] = i32 argc++ diff --git a/language-bindings/python/src/wamr/wasmcapi/binding.py b/language-bindings/python/src/wamr/wasmcapi/binding.py index 1f4e0cfd0..e8b0b383b 100644 --- a/language-bindings/python/src/wamr/wasmcapi/binding.py +++ b/language-bindings/python/src/wamr/wasmcapi/binding.py @@ -213,7 +213,7 @@ WASM_I32 = 0 WASM_I64 = 1 WASM_F32 = 2 WASM_F64 = 3 -WASM_ANYREF = 128 +WASM_EXTERNREF = 128 WASM_FUNCREF = 129 def wasm_valtype_new(arg0): diff --git a/language-bindings/python/src/wamr/wasmcapi/ffi.py b/language-bindings/python/src/wamr/wasmcapi/ffi.py index 18b6bc90c..82292335b 100644 --- a/language-bindings/python/src/wamr/wasmcapi/ffi.py +++ b/language-bindings/python/src/wamr/wasmcapi/ffi.py @@ -180,7 +180,7 @@ def __repr_wasm_valtype_t(self): elif WASM_FUNCREF == val_kind: return "funcref" else: - return "anyref" + return "externref" wasm_valtype_t.__eq__ = __compare_wasm_valtype_t @@ -406,7 +406,7 @@ def __compare_wasm_val_t(self, other): return self.of.f32 == other.of.f32 elif WASM_F64 == self.kind: return self.of.f64 == other.of.f63 - elif WASM_ANYREF == self.kind: + elif WASM_EXTERNREF == self.kind: raise RuntimeError("FIXME") else: raise RuntimeError("not a valid val kind") @@ -421,8 +421,8 @@ def __repr_wasm_val_t(self): return f"f32 {self.of.f32}" elif WASM_F64 == self.kind: return f"f64 {self.of.f64}" - elif WASM_ANYREF == self.kind: - return f"anyref {self.of.ref}" + elif WASM_EXTERNREF == self.kind: + return f"externref {self.of.ref}" else: raise RuntimeError("not a valid val kind") diff --git a/language-bindings/python/wasm-c-api/tests/test_basic.py b/language-bindings/python/wasm-c-api/tests/test_basic.py index a2d3f2850..7ddaf5d1c 100644 --- a/language-bindings/python/wasm-c-api/tests/test_basic.py +++ b/language-bindings/python/wasm-c-api/tests/test_basic.py @@ -61,7 +61,7 @@ class BasicTestSuite(unittest.TestCase): def test_wasm_valkind(self): self.assertEqual( - [WASM_I32, WASM_I64, WASM_F32, WASM_F64, WASM_ANYREF, WASM_FUNCREF], + [WASM_I32, WASM_I64, WASM_F32, WASM_F64, WASM_EXTERNREF, WASM_FUNCREF], [0, 1, 2, 3, 128, 129], ) diff --git a/samples/ref-types/src/hello.c b/samples/ref-types/src/hello.c index 8a6f968c3..aff47ff76 100644 --- a/samples/ref-types/src/hello.c +++ b/samples/ref-types/src/hello.c @@ -93,7 +93,7 @@ wasm_get_externref(wasm_exec_env_t exec_env, wasm_module_inst_t inst, return false; } - if (WASM_ANYREF != results[0].kind) { + if (WASM_EXTERNREF != results[0].kind) { return false; } @@ -108,7 +108,7 @@ wasm_cmp_externref(wasm_exec_env_t exec_env, wasm_module_inst_t inst, wasm_val_t results[1] = { 0 }; wasm_val_t arguments[2] = { { .kind = WASM_I32, .of.i32 = index }, - { .kind = WASM_ANYREF, .of.foreign = externref }, + { .kind = WASM_EXTERNREF, .of.foreign = externref }, }; if (!exec_env || !wasm_cmp_externref_ptr || !ret_result) { diff --git a/samples/wasm-c-api/src/callback.c b/samples/wasm-c-api/src/callback.c index ccb9ec067..56e673010 100644 --- a/samples/wasm-c-api/src/callback.c +++ b/samples/wasm-c-api/src/callback.c @@ -22,7 +22,7 @@ void wasm_val_print(wasm_val_t val) { case WASM_F64: { printf("%g", val.of.f64); } break; - case WASM_ANYREF: + case WASM_EXTERNREF: case WASM_FUNCREF: { if (val.of.ref == NULL) { printf("null"); diff --git a/samples/wasm-c-api/src/hostref.c b/samples/wasm-c-api/src/hostref.c index 219c862d6..76f53a956 100644 --- a/samples/wasm-c-api/src/hostref.c +++ b/samples/wasm-c-api/src/hostref.c @@ -193,7 +193,7 @@ int main(int argc, const char* argv[]) { // Create external callback function. printf("Creating callback...\n"); own wasm_functype_t* callback_type = wasm_functype_new_1_1( - wasm_valtype_new(WASM_ANYREF), wasm_valtype_new(WASM_ANYREF)); + wasm_valtype_new(WASM_EXTERNREF), wasm_valtype_new(WASM_EXTERNREF)); own wasm_func_t* callback_func = wasm_func_new(store, callback_type, callback); @@ -245,7 +245,7 @@ int main(int argc, const char* argv[]) { wasm_ref_delete(host2_cp); own wasm_val_t val; - val.kind = WASM_ANYREF; + val.kind = WASM_EXTERNREF; val.of.ref = wasm_ref_copy(host1); wasm_ref_t *ref_cp = wasm_ref_copy(val.of.ref); check(ref_cp, host1); @@ -264,12 +264,12 @@ int main(int argc, const char* argv[]) { check(call_v_r(global_get), NULL); wasm_global_get(global, &val); - assert(val.kind == WASM_ANYREF); + assert(val.kind == WASM_EXTERNREF); assert(val.of.ref == NULL); val.of.ref = host2; wasm_global_set(global, &val); wasm_global_get(global, &val); - assert(val.kind == WASM_ANYREF); + assert(val.kind == WASM_EXTERNREF); assert(val.of.ref == host2); printf("Accessing table...\n"); diff --git a/samples/wasm-c-api/src/reflect.c b/samples/wasm-c-api/src/reflect.c index 8181b95a0..e5a9b3fd9 100644 --- a/samples/wasm-c-api/src/reflect.c +++ b/samples/wasm-c-api/src/reflect.c @@ -30,7 +30,7 @@ void print_valtype(const wasm_valtype_t* type) { case WASM_F32: printf("f32"); break; case WASM_F64: printf("f64"); break; case WASM_V128: printf("v128"); break; - case WASM_ANYREF: printf("anyref"); break; + case WASM_EXTERNREF: printf("externref"); break; case WASM_FUNCREF: printf("funcref"); break; } }