summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhyscik <mynameisgennadiy@vk.com>2025-12-16 17:25:58 +0500
committerPhyscik <mynameisgennadiy@vk.com>2025-12-16 17:25:58 +0500
commit95ef1315c6fea2de25ee4bef9f858d3cd471e46f (patch)
treebf19b432210bca7b02d4e04fae2dc0f73d1a962a
parent942d5d8b84f55d71a275a7d6f3446587ab7368a3 (diff)
Wasm -> goHEADmaster
-rw-r--r--Makefile3
-rw-r--r--c_wasm/hello.c (renamed from hello.c)3
-rw-r--r--inter/main.go16
3 files changed, 19 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 1f14348..496a2f2 100644
--- a/Makefile
+++ b/Makefile
@@ -2,5 +2,4 @@ all: build_wasm
cd inter; go run .
build_wasm:
- emcc hello.c -sEXPORTED_FUNCTIONS="_Add" -o hello.wasm --no-entry
-
+ emcc c_wasm/hello.c -sEXPORTED_FUNCTIONS="_Add" -s ERROR_ON_UNDEFINED_SYMBOLS=0 -o hello.wasm --no-entry
diff --git a/hello.c b/c_wasm/hello.c
index 09d79ce..696b1fb 100644
--- a/hello.c
+++ b/c_wasm/hello.c
@@ -1,3 +1,6 @@
+extern void xdx();
+
int Add(int a, int b) {
+ xdx();
return a + b;
}
diff --git a/inter/main.go b/inter/main.go
index e0dd0a7..ee0d463 100644
--- a/inter/main.go
+++ b/inter/main.go
@@ -3,6 +3,7 @@ package main
import (
"context"
"fmt"
+ "log"
"os"
"github.com/tetratelabs/wazero"
@@ -17,6 +18,15 @@ func main() {
var runtime = wazero.NewRuntime(ctx)
defer runtime.Close(ctx)
+ var _, hostErr = runtime.NewHostModuleBuilder("env").
+ NewFunctionBuilder().
+ WithFunc(xdx).
+ Export("xdx").
+ Instantiate(ctx);
+ if hostErr != nil {
+ panic(fmt.Sprintf("Failed to create host module: %s", hostErr.Error()))
+ }
+
wasi_snapshot_preview1.MustInstantiate(ctx, runtime)
var wasm, wasmErr = LoadWasm()
@@ -30,7 +40,7 @@ func main() {
}
var add = mod.ExportedFunction("Add")
- var result, callErr = add.Call(ctx, 25, 25)
+ var result, callErr = add.Call(ctx, 9, 10)
if callErr != nil {
panic(fmt.Sprintf("Failed to call WASM finction: %s", callErr.Error()))
}
@@ -40,3 +50,7 @@ func main() {
func LoadWasm() ([]byte, error) {
return os.ReadFile(wasmLocation)
}
+
+func xdx() {
+ log.Printf("xdx (called from WASM)")
+}