Coder Social home page Coder Social logo

second-state / wasmedge-go Goto Github PK

View Code? Open in Web Editor NEW
106.0 6.0 16.0 161 KB

The GO language SDK and API for WasmEdge

Home Page: https://www.secondstate.io/articles/extend-golang-app-with-webassembly-rust/

License: Apache License 2.0

Go 100.00%
golang tensorflow go webassembly wasmedge

wasmedge-go's People

Contributors

alabulei1 avatar chenhengqi avatar hydai avatar juntao avatar loredanacirstea avatar proohit avatar q82419 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

wasmedge-go's Issues

Failed when executing func in goroutines

For https://github.com/second-state/WasmEdge-go-examples/blob/master/go_BindgenFuncs/bindgen_funcs.go

If I put the vm as a global variable, and call the vm.ExecuteBindgen in goroutine:

package main
​
import (
	"fmt"
	"os""github.com/second-state/WasmEdge-go/wasmedge"
)
​
var vm *wasmedge.VMfunc main() {
	/// Expected Args[0]: program name (./bindgen_funcs)
	/// Expected Args[1]: wasm or wasm-so file (rust_bindgen_funcs_lib_bg.wasm))/// Set not to print debug info
	wasmedge.SetLogErrorLevel()
​
	/// Create configure
	var conf = wasmedge.NewConfigure(wasmedge.WASI)
​
	/// Create VM with configure
	vm = wasmedge.NewVMWithConfig(conf)
​
	/// Init WASI
	var wasi = vm.GetImportObject(wasmedge.WASI)
	wasi.InitWasi(
		os.Args[1:],     /// The args
		os.Environ(),    /// The envs
		[]string{".:."}, /// The mapping directories
		[]string{},      /// The preopens will be empty
	)
​
	/// Instantiate wasm
	vm.LoadWasmFile(os.Args[1])
	vm.Validate()
	vm.Instantiate()
​
	go run()
	run()
​
	vm.Delete()
	conf.Delete()
​
}
​
func run() {
	/// Run bindgen functions
	var res interface{}
	var err error
	/// create_line: array, array, array -> array (inputs are JSON stringified)
	res, err = vm.ExecuteBindgen("create_line", wasmedge.Bindgen_return_array, []byte("{\"x\":1.5,\"y\":3.8}"), []byte("{\"x\":2.5,\"y\":5.8}"), []byte("A thin red line"))
	if err == nil {
		fmt.Println("Run bindgen -- create_line:", string(res.([]byte)))
	} else {
		fmt.Println("Run bindgen -- create_line FAILED")
	}
	/// say: array -> array
	res, err = vm.ExecuteBindgen("say", wasmedge.Bindgen_return_array, []byte("bindgen funcs test"))
	if err == nil {
		fmt.Println("Run bindgen -- say:", string(res.([]byte)))
	} else {
		fmt.Println("Run bindgen -- say FAILED")
	}
	/// obfusticate: array -> array
	res, err = vm.ExecuteBindgen("obfusticate", wasmedge.Bindgen_return_array, []byte("A quick brown fox jumps over the lazy dog"))
	if err == nil {
		fmt.Println("Run bindgen -- obfusticate:", string(res.([]byte)))
	} else {
		fmt.Println("Run bindgen -- obfusticate FAILED")
	}
	/// lowest_common_multiple: i32, i32 -> i32
	res, err = vm.ExecuteBindgen("lowest_common_multiple", wasmedge.Bindgen_return_i32, int32(123), int32(2))
	if err == nil {
		fmt.Println("Run bindgen -- lowest_common_multiple:", res.(int32))
	} else {
		fmt.Println("Run bindgen -- lowest_common_multiple FAILED")
	}
	/// sha3_digest: array -> array
	res, err = vm.ExecuteBindgen("sha3_digest", wasmedge.Bindgen_return_array, []byte("This is an important message"))
	if err == nil {
		fmt.Println("Run bindgen -- sha3_digest:", res.([]byte))
	} else {
		fmt.Println("Run bindgen -- sha3_digest FAILED")
	}
	/// keccak_digest: array -> array
	res, err = vm.ExecuteBindgen("keccak_digest", wasmedge.Bindgen_return_array, []byte("This is an important message"))
	if err == nil {
		fmt.Println("Run bindgen -- keccak_digest:", res.([]byte))
	} else {
		fmt.Println("Run bindgen -- keccak_digest FAILED")
	}
}

Then the program will fail with error:

unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x4 pc=0x7f1311798288]

runtime stack:
runtime.throw({0x4b41a6, 0x0})
        /usr/local/go/src/runtime/panic.go:1198 +0x71
runtime.sigpanic()
        /usr/local/go/src/runtime/signal_unix.go:719 +0x396

goroutine 6 [syscall]:
runtime.cgocall(0x493420, 0xc00004acd0)
        /usr/local/go/src/runtime/cgocall.go:156 +0x5c fp=0xc00004ac98 sp=0xc00004ac60 pc=0x40a2dc
github.com/second-state/WasmEdge-go/wasmedge._Cfunc_WasmEdge_VMExecute(0xfbd420, {0xb, 0x4ae60d}, 0xc00010a180, 0x7, 0x0, 0x0)
        _cgo_gotypes.go:1779 +0x49 fp=0xc00004acd0 sp=0xc00004ac98 pc=0x489a89
github.com/second-state/WasmEdge-go/wasmedge.(*VM).ExecuteBindgen.func1(0xc00004afa0, {0x3, 0x4ae60d}, 0x100000000000000, {0xc00010a180, 0x7, 0x18}, 0x7f1310afb108, {0x57d8f0, 0x0, ...})
        /root/github/second-state/WasmEdge-go/wasmedge/vm.go:218 +0xb1 fp=0xc00004ad48 sp=0xc00004acd0 pc=0x48fcf1
github.com/second-state/WasmEdge-go/wasmedge.(*VM).ExecuteBindgen(0xc0000162e0, {0x4ae60d, 0xb}, 0x0, {0xc00004afa0, 0x3, 0x3})
        /root/github/second-state/WasmEdge-go/wasmedge/vm.go:218 +0x169 fp=0xc00004ae00 sp=0xc00004ad48 pc=0x48fb29
main.run()
        /root/github/second-state/WasmEdge-go-examples/go_BindgenFuncs/bindgen_funcs.go:52 +0x196 fp=0xc00004afe0 sp=0xc00004ae00 pc=0x491036
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1581 +0x1 fp=0xc00004afe8 sp=0xc00004afe0 pc=0x4630e1
created by main.main
        /root/github/second-state/WasmEdge-go-examples/go_BindgenFuncs/bindgen_funcs.go:39 +0x1d6

goroutine 1 [runnable]:
github.com/second-state/WasmEdge-go/wasmedge._Cfunc_WasmEdge_VMExecute(0xfbd420, {0xb, 0x4ae6c8}, 0xc0000a60c0, 0x3, 0x0, 0x0)
        _cgo_gotypes.go:1779 +0x49
github.com/second-state/WasmEdge-go/wasmedge.(*VM).ExecuteBindgen.func1(0xc000049d30, {0x1, 0x4ae6c8}, 0x10000c000049c80, {0xc0000a60c0, 0x3, 0x18}, 0x7f1310afb5b8, {0x57d8f0, 0x0, ...})
        /root/github/second-state/WasmEdge-go/wasmedge/vm.go:218 +0xb1
github.com/second-state/WasmEdge-go/wasmedge.(*VM).ExecuteBindgen(0xc0000a0120, {0x4ae6c8, 0xb}, 0x2, {0xc000049d30, 0x1, 0x1})
        /root/github/second-state/WasmEdge-go/wasmedge/vm.go:218 +0x169
main.run()
        /root/github/second-state/WasmEdge-go-examples/go_BindgenFuncs/bindgen_funcs.go:80 +0x74b
main.main()
        /root/github/second-state/WasmEdge-go-examples/go_BindgenFuncs/bindgen_funcs.go:40 +0x1db

Problems on Windows 10

Hello,

While I am trying to use wasmedge sdk for windows 10, I got the error. Have you any suggestion for that? I have done the required steps for installation.

Thanks in advance!

arm64 support

When running this, I am getting the following warning:

ld: warning: ignoring file ~/.wasmedge/lib/libwasmedge.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64

I then get a long stack trace, and the errors:

ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

AFAIK this means that I have to rebuild this library for my architecture. I can't seem to find where to do this in the docs, is this supported?

could not determine kind of name for C.WasmEdge_*

go get -u github.com/second-state/WasmEdge-go/wasmedge
../../../go/pkg/mod/github.com/second-state/!wasm!edge-go@v0.8.2/wasmedge/configure.go:31:50: could not determine kind of name for C.WasmEdge_CompilerOptimizationLevel_O0
../../../go/pkg/mod/github.com/second-state/!wasm!edge-go@v0.8.2/wasmedge/configure.go:33:50: could not determine kind of name for C.WasmEdge_CompilerOptimizationLevel_O1
../../../go/pkg/mod/github.com/second-state/!wasm!edge-go@v0.8.2/wasmedge/configure.go:35:50: could not determine kind of name for C.WasmEdge_CompilerOptimizationLevel_O2
../../../go/pkg/mod/github.com/second-state/!wasm!edge-go@v0.8.2/wasmedge/configure.go:37:50: could not determine kind of name for C.WasmEdge_CompilerOptimizationLevel_O3
../../../go/pkg/mod/github.com/second-state/!wasm!edge-go@v0.8.2/wasmedge/configure.go:39:50: could not determine kind of name for C.WasmEdge_CompilerOptimizationLevel_Os
../../../go/pkg/mod/github.com/second-state/!wasm!edge-go@v0.8.2/wasmedge/configure.go:41:50: could not determine kind of name for C.WasmEdge_CompilerOptimizationLevel_Oz
../../../go/pkg/mod/github.com/second-state/!wasm!edge-go@v0.8.2/wasmedge/configure.go:109:35: could not determine kind of name for C.WasmEdge_ConfigureCompilerGetOptimizationLevel
../../../go/pkg/mod/github.com/second-state/!wasm!edge-go@v0.8.2/wasmedge/configure.go:133:14: could not determine kind of name for C.WasmEdge_ConfigureCompilerIsCostMeasuring
../../../go/pkg/mod/github.com/second-state/!wasm!edge-go@v0.8.2/wasmedge/configure.go:117:14: could not determine kind of name for C.WasmEdge_ConfigureCompilerIsDumpIR
../../../go/pkg/mod/github.com/second-state/!wasm!edge-go@v0.8.2/wasmedge/configure.go:125:14: could not determine kind of name for C.WasmEdge_ConfigureCompilerIsInstructionCounting
../../../go/pkg/mod/github.com/second-state/!wasm!edge-go@v0.8.2/wasmedge/configure.go:129:2: could not determine kind of name for C.WasmEdge_ConfigureCompilerSetCostMeasuring
../../../go/pkg/mod/github.com/second-state/!wasm!edge-go@v0.8.2/wasmedge/configure.go:113:2: could not determine kind of name for C.WasmEdge_ConfigureCompilerSetDumpIR
../../../go/pkg/mod/github.com/second-state/!wasm!edge-go@v0.8.2/wasmedge/configure.go:121:2: could not determine kind of name for C.WasmEdge_ConfigureCompilerSetInstructionCounting
../../../go/pkg/mod/github.com/second-state/!wasm!edge-go@v0.8.2/wasmedge/configure.go:105:2: could not determine kind of name for C.WasmEdge_ConfigureCompilerSetOptimizationLevel

Hi , i just want to use wasmedge-go examples but when i try this command in terminal i get this error.

go version go1.16 linux/amd64
wasmedge version 0.8.2

Also in vs code error

Attach lib dependencies to release tags

Right now, installing shared libraries is a manual task, and they are quite large (dozens of megabytes). I've been told that the shared libraries are only 1.7MB, which would be a refreshing change, but also it would be better to have these attached to the release tags. That way end users can get the trusted libs per-platform similar to how they can get them in wasmer-go and wasmedge-go. Wanna give this a go?

ex.
bytecodealliance/wasmtime-go@df14d9f
https://github.com/bytecodealliance/wasmtime-go/blob/7d1d102e5213c4ba7b15e41907322b27533b3999/includebuild.go

Deprecate the TensorFlow and TensorFlow-Lite extension in `v0.13.0`

WasmEdge-Tensorflow, WasmEdge-TensorflowLite, and WasmEdge-Image are deprecated in WasmEdge 0.13.0.
Therefore, the APIs such as NewImageModule(), NewTensorflowModule(), and NewTensorflowLiteModule() will be deleted in WasmEdge-Go v0.13.0.

The TensorFlow extension will be replaced by the WasmEdge-Tensorflow plug-in, and so do the TensorFlow-Lite and Image extensions.
We'll update the document and the examples soon after the installer ready for the plug-ins installation with their dependencies.

For users need to use the extensions, please fallback to the v0.12.1 version.

Compatibility with wasmedge 0.12.0 pre-releases

WasmEdge-go 0.11.2 is not compatible with WasmEdge 0.12.0 alpha pre-releases.

(I wanted to try the latest WasmEdge, to see if an AOT compilation out-of-bounds error was still happening. But I cannot test it in my Golang setup.)

Very slow execution func and AOT compile

1. My OS: Mac OS Monterey (version 12.0.1)
2. Go version: 1.17.6
3. Tinygo: tinygo version 0.22.0 darwin/amd64 (using go version go1.17.6 and LLVM version 13.0.0)
4. My func for WASM:

package main

func main() {

}

//export Fibonacci
func Fibonacci(n int32) int32 {
	if n <= 1 {
		return n
	}
	return Fibonacci(n-1) + Fibonacci(n-2)
}

Command compile: tinygo build -o fib.wasm -target wasi fib.go
5. My main app:

package main

import (
	"fmt"
	"log"
	"os"

	"github.com/second-state/WasmEdge-go/wasmedge"
)

func main() {
	wasmedge.SetLogErrorLevel()
	conf := wasmedge.NewConfigure(wasmedge.WASI)
	store := wasmedge.NewStore()
	vm := wasmedge.NewVMWithConfigAndStore(conf, store)

	wasi := vm.GetImportObject(wasmedge.WASI)
	wasi.InitWasi(
		os.Args[1:],
		os.Environ(),
		[]string{".:."},
	)
	wasmedge.SetLogErrorLevel()

	err := vm.LoadWasmFile("fib.wasm")
	if err != nil {
		fmt.Println("failed to load wasm")
	}
	vm.Validate()
	vm.Instantiate()

	res, err := vm.Execute("Fibonacci", uint32(40))
	if err != nil {
		log.Fatalln(err)
	}
	fmt.Println(res)
}

6. Performance Comparison:

  1. Native Fibonacci(40) ~ 400ms
  2. WASM Fibonacci(40) ~ 32s 😪

❓Why slow:(?

7. AOT Compile: wasmedgec fib.wasm fib.wasm
8. Run app again:

fatal error: unexpected signal during runtime execution
[signal SIGBUS: bus error code=0x2 addr=0x41ff000 pc=0x45ee3ee]

runtime stack:
runtime.throw({0x40b9093, 0x45f0001})
        /usr/local/Cellar/go/1.17.6/libexec/src/runtime/panic.go:1198 +0x71
runtime.sigpanic()
        /usr/local/Cellar/go/1.17.6/libexec/src/runtime/signal_unix.go:719 +0x396

goroutine 1 [syscall]:
runtime.cgocall(0x4096f30, 0xc00005cdf8)
        /usr/local/Cellar/go/1.17.6/libexec/src/runtime/cgocall.go:156 +0x5c fp=0xc00005cdd0 sp=0xc00005cd98 pc=0x400529c
github.com/second-state/WasmEdge-go/wasmedge._Cfunc_WasmEdge_VMLoadWasmFromFile(0x4e5e7c0, 0x4e64350)
        _cgo_gotypes.go:2627 +0x49 fp=0xc00005cdf8 sp=0xc00005cdd0 pc=0x4090769
github.com/second-state/WasmEdge-go/wasmedge.(*VM).LoadWasmFile.func2(0x4e64350, 0x8)
       <MyPath>/go/pkg/mod/github.com/second-state/!wasm![email protected]/wasmedge/vm.go:187 +0x51 fp=0xc00005ce38 sp=0xc00005cdf8 pc=0x40930f1
github.com/second-state/WasmEdge-go/wasmedge.(*VM).LoadWasmFile(0xc00005cf50, {0x40b3176, 0x1})
        <MyPath>/go/pkg/mod/github.com/second-state/!wasm![email protected]/wasmedge/vm.go:187 +0x68 fp=0xc00005ce88 sp=0xc00005ce38 pc=0x4092f88
main.main()
        <MyPath>/main.go:25 +0x1d1 fp=0xc00005cf80 sp=0xc00005ce88 pc=0x4093f71
runtime.main()
        /usr/local/Cellar/go/1.17.6/libexec/src/runtime/proc.go:255 +0x227 fp=0xc00005cfe0 sp=0xc00005cf80 pc=0x40350a7
runtime.goexit()
        /usr/local/Cellar/go/1.17.6/libexec/src/runtime/asm_amd64.s:1581 +0x1 fp=0xc00005cfe8 sp=0xc00005cfe0 pc=0x405e701
exit status 2

HELP ME:) ❓what am I doing wrong?

invalid version: unknown revision wasmedge/v0.10.0

I used the command you provided in Getting Started:
go get github.com/second-state/WasmEdge-go/[email protected]
but failed. The error message is:

go get: github.com/second-state/WasmEdge-go/[email protected]: invalid version: unknown revision wasmedge/v0.10.0

and I also tried setting up GOPRIVATE according to the method described in this website:https://stackoverflow.com/questions/67678203/why-does-go-get-fail-with-invalid-version-unknown-revision
but still failed for the same reason.
And i noticed that you just published the v0.10.0 version a few days ago, and it's only pre-release. Is that caused my problem?

ast.ListImports() and ListExports() panic with invalid memory address or nil pointer dereference

I was following the docs from https://wasmedge.org/book/en/sdk/go/ref.html#ast-module:

loader := wasmedge.NewLoader()
ast, err := loader.LoadBuffer(wasmbuffer)
if err != nil {
	fmt.Println("Load WASM from file FAILED:", err.Error())
}

imports := ast.ListImports()
for _, mimport := range imports {
	fmt.Println("Import:", mimport.GetModuleName(), mimport.GetExternalName())
}

// List the exports.
exports := ast.ListExports()
for _, mexport := range exports {
	fmt.Println("Export:", mexport.GetExternalName())
}

ast.Release()
loader.Release()

The panic comes from

imptype[i]._inner = val
, respectively
exptype[i]._inner = val

When initializing imptype = make([]*ImportType, uint(ltypes)), imptype gets initialized with nil.
So the solution is to initialize imptype[i] = &ImportType{} before line 63.

From the debugger:
Screenshot 2023-03-14 at 11 35 19 AM

LDFLAGS is not set correctly on macOS (darwin)

cgo link errors while installing wasmedge-go on macos 11.6 big sur.

my go version is 1.17.2, llvm: 13.0.0, and wasmedge is installed correctly on my mac.

go get -v -u github.com/second-state/WasmEdge-go/wasmedge 
github.com/second-state/WasmEdge-go/wasmedge
# github.com/second-state/WasmEdge-go/wasmedge
Undefined symbols for architecture x86_64:
  "_WasmEdge_ASTModuleDelete", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ASTModuleDelete in _x002.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ASTModuleDelete)
  "_WasmEdge_CompilerCompile", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_CompilerCompile in _x005.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_CompilerCompile)
  "_WasmEdge_CompilerCreate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_CompilerCreate in _x005.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_CompilerCreate)
  "_WasmEdge_CompilerDelete", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_CompilerDelete in _x005.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_CompilerDelete)
  "_WasmEdge_ConfigureAddHostRegistration", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureAddHostRegistration in _x006.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureAddHostRegistration)
  "_WasmEdge_ConfigureAddProposal", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureAddProposal in _x006.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureAddProposal)
  "_WasmEdge_ConfigureCompilerGetOptimizationLevel", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCompilerGetOptimizationLevel in _x006.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCompilerGetOptimizationLevel)
  "_WasmEdge_ConfigureCompilerIsCostMeasuring", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCompilerIsCostMeasuring in _x006.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCompilerIsCostMeasuring)
  "_WasmEdge_ConfigureCompilerIsDumpIR", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCompilerIsDumpIR in _x006.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCompilerIsDumpIR)
  "_WasmEdge_ConfigureCompilerIsInstructionCounting", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCompilerIsInstructionCounting in _x006.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCompilerIsInstructionCounting)
  "_WasmEdge_ConfigureCompilerSetCostMeasuring", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCompilerSetCostMeasuring in _x006.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCompilerSetCostMeasuring)
  "_WasmEdge_ConfigureCompilerSetDumpIR", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCompilerSetDumpIR in _x006.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCompilerSetDumpIR)
  "_WasmEdge_ConfigureCompilerSetInstructionCounting", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCompilerSetInstructionCounting in _x006.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCompilerSetInstructionCounting)
  "_WasmEdge_ConfigureCompilerSetOptimizationLevel", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCompilerSetOptimizationLevel in _x006.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCompilerSetOptimizationLevel)
  "_WasmEdge_ConfigureCreate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCreate in _x006.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureCreate)
  "_WasmEdge_ConfigureDelete", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureDelete in _x006.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureDelete)
  "_WasmEdge_ConfigureHasHostRegistration", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureHasHostRegistration in _x006.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureHasHostRegistration)
  "_WasmEdge_ConfigureHasProposal", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureHasProposal in _x006.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureHasProposal)
  "_WasmEdge_ConfigureRemoveHostRegistration", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureRemoveHostRegistration in _x006.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureRemoveHostRegistration)
  "_WasmEdge_ConfigureRemoveProposal", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureRemoveProposal in _x006.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ConfigureRemoveProposal)
  "_WasmEdge_FunctionInstanceGetFunctionType", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_FunctionInstanceGetFunctionType in _x007.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_FunctionInstanceGetFunctionType)
  "_WasmEdge_FunctionTypeCreate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_FunctionTypeCreate in _x008.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_FunctionTypeCreate)
  "_WasmEdge_FunctionTypeDelete", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_FunctionTypeDelete in _x010.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_FunctionTypeDelete)
  "_WasmEdge_FunctionTypeGetParameters", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_FunctionTypeGetParameters in _x008.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_FunctionTypeGetParametersLength, __cgo_0190cfa8e5d1_Cfunc_WasmEdge_FunctionTypeGetParameters )
  "_WasmEdge_FunctionTypeGetParametersLength", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_FunctionTypeGetParametersLength in _x008.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_FunctionTypeGetParametersLength)
  "_WasmEdge_FunctionTypeGetReturns", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_FunctionTypeGetReturns in _x008.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_FunctionTypeGetReturnsLength, __cgo_0190cfa8e5d1_Cfunc_WasmEdge_FunctionTypeGetReturns )
  "_WasmEdge_FunctionTypeGetReturnsLength", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_FunctionTypeGetReturnsLength in _x008.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_FunctionTypeGetReturnsLength)
  "_WasmEdge_GlobalInstanceCreate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_GlobalInstanceCreate in _x009.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_GlobalInstanceCreate)
  "_WasmEdge_GlobalInstanceDelete", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_GlobalInstanceDelete in _x009.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_GlobalInstanceDelete)
  "_WasmEdge_GlobalInstanceGetMutability", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_GlobalInstanceGetMutability in _x009.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_GlobalInstanceGetMutability)
  "_WasmEdge_GlobalInstanceGetValType", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_GlobalInstanceGetValType in _x009.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_GlobalInstanceGetValType)
  "_WasmEdge_GlobalInstanceGetValue", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_GlobalInstanceGetValue in _x009.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_GlobalInstanceGetValue)
  "_WasmEdge_GlobalInstanceSetValue", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_GlobalInstanceSetValue in _x009.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_GlobalInstanceSetValue)
  "_WasmEdge_HostFunctionCreateBinding", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_HostFunctionCreateBinding in _x010.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_HostFunctionCreateBinding)
  "_WasmEdge_HostFunctionDelete", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_HostFunctionDelete in _x010.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_HostFunctionDelete)
  "_WasmEdge_ImportObjectAddGlobal", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectAddGlobal in _x011.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectAddGlobal)
  "_WasmEdge_ImportObjectAddHostFunction", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectAddHostFunction in _x011.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectAddHostFunction)
  "_WasmEdge_ImportObjectAddMemory", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectAddMemory in _x011.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectAddMemory)
  "_WasmEdge_ImportObjectAddTable", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectAddTable in _x011.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectAddTable)
  "_WasmEdge_ImportObjectCreate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectCreate in _x011.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectCreateWasmEdgeProcess, __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectCreate , __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectCreateWASI )
  "_WasmEdge_ImportObjectCreateWASI", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectCreateWASI in _x011.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectCreateWASI)
  "_WasmEdge_ImportObjectCreateWasmEdgeProcess", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectCreateWasmEdgeProcess in _x011.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectCreateWasmEdgeProcess)
  "_WasmEdge_ImportObjectDelete", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectDelete in _x011.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectDelete)
  "_WasmEdge_ImportObjectInitWASI", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectInitWASI in _x011.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectInitWASI)
  "_WasmEdge_ImportObjectInitWasmEdgeProcess", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectInitWasmEdgeProcess in _x011.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ImportObjectInitWasmEdgeProcess)
  "_WasmEdge_InterpreterCreate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_InterpreterCreate in _x012.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_InterpreterCreate)
  "_WasmEdge_InterpreterDelete", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_InterpreterDelete in _x012.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_InterpreterDelete)
  "_WasmEdge_InterpreterInstantiate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_InterpreterInstantiate in _x012.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_InterpreterInstantiate)
  "_WasmEdge_InterpreterInvoke", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_InterpreterInvoke in _x012.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_InterpreterInvoke, __cgo_0190cfa8e5d1_Cfunc_WasmEdge_InterpreterInvokeRegistered )
  "_WasmEdge_InterpreterInvokeRegistered", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_InterpreterInvokeRegistered in _x012.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_InterpreterInvokeRegistered)
  "_WasmEdge_InterpreterRegisterImport", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_InterpreterRegisterImport in _x012.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_InterpreterRegisterImport)
  "_WasmEdge_InterpreterRegisterModule", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_InterpreterRegisterModule in _x012.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_InterpreterRegisterModule)
  "_WasmEdge_LoaderCreate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_LoaderCreate in _x014.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_LoaderCreate)
  "_WasmEdge_LoaderDelete", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_LoaderDelete in _x014.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_LoaderDelete)
  "_WasmEdge_LoaderParseFromBuffer", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_LoaderParseFromBuffer in _x014.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_LoaderParseFromBuffer)
  "_WasmEdge_LoaderParseFromFile", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_LoaderParseFromFile in _x014.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_LoaderParseFromFile)
  "_WasmEdge_LogSetDebugLevel", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_LogSetDebugLevel in _x015.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_LogSetDebugLevel)
  "_WasmEdge_LogSetErrorLevel", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_LogSetErrorLevel in _x015.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_LogSetErrorLevel)
  "_WasmEdge_MemoryInstanceCreate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_MemoryInstanceCreate in _x016.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_MemoryInstanceCreate)
  "_WasmEdge_MemoryInstanceDelete", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_MemoryInstanceDelete in _x016.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_MemoryInstanceDelete)
  "_WasmEdge_MemoryInstanceGetData", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_MemoryInstanceGetData in _x016.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_MemoryInstanceGetData)
  "_WasmEdge_MemoryInstanceGetPageSize", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_MemoryInstanceGetPageSize in _x016.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_MemoryInstanceGetPageSize)
  "_WasmEdge_MemoryInstanceGrowPage", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_MemoryInstanceGrowPage in _x016.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_MemoryInstanceGrowPage)
  "_WasmEdge_MemoryInstanceSetData", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_MemoryInstanceSetData in _x016.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_MemoryInstanceSetData)
  "_WasmEdge_ResultGetMessage", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ResultGetMessage in _x017.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ResultGetMessage)
  "_WasmEdge_ResultOK", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ResultOK in _x005.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ResultOK)
  "_WasmEdge_StatisticsCreate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StatisticsCreate in _x018.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StatisticsCreate)
  "_WasmEdge_StatisticsDelete", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StatisticsDelete in _x018.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StatisticsDelete)
  "_WasmEdge_StatisticsGetInstrCount", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StatisticsGetInstrCount in _x018.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StatisticsGetInstrCount)
  "_WasmEdge_StatisticsGetInstrPerSecond", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StatisticsGetInstrPerSecond in _x018.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StatisticsGetInstrPerSecond)
  "_WasmEdge_StatisticsGetTotalCost", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StatisticsGetTotalCost in _x018.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StatisticsGetTotalCost)
  "_WasmEdge_StatisticsSetCostLimit", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StatisticsSetCostLimit in _x018.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StatisticsSetCostLimit)
  "_WasmEdge_StatisticsSetCostTable", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StatisticsSetCostTable in _x018.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StatisticsSetCostTable)
  "_WasmEdge_StoreCreate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreCreate in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreCreate)
  "_WasmEdge_StoreDelete", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreDelete in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreDelete)
  "_WasmEdge_StoreFindFunction", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindFunction in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindFunction, __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindFunctionRegistered )
  "_WasmEdge_StoreFindFunctionRegistered", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindFunctionRegistered in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindFunctionRegistered)
  "_WasmEdge_StoreFindGlobal", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindGlobal in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindGlobalRegistered, __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindGlobal )
  "_WasmEdge_StoreFindGlobalRegistered", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindGlobalRegistered in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindGlobalRegistered)
  "_WasmEdge_StoreFindMemory", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindMemory in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindMemoryRegistered, __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindMemory )
  "_WasmEdge_StoreFindMemoryRegistered", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindMemoryRegistered in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindMemoryRegistered)
  "_WasmEdge_StoreFindTable", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindTable in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindTableRegistered, __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindTable )
  "_WasmEdge_StoreFindTableRegistered", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindTableRegistered in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreFindTableRegistered)
  "_WasmEdge_StoreListFunctionLength", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListFunctionLength in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListFunctionLength)
  "_WasmEdge_StoreListFunctionRegisteredLength", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListFunctionRegisteredLength in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListFunctionRegisteredLength)
  "_WasmEdge_StoreListGlobalLength", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListGlobalLength in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListGlobalLength)
  "_WasmEdge_StoreListGlobalRegisteredLength", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListGlobalRegisteredLength in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListGlobalRegisteredLength)
  "_WasmEdge_StoreListMemoryLength", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListMemoryLength in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListMemoryLength)
  "_WasmEdge_StoreListMemoryRegisteredLength", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListMemoryRegisteredLength in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListMemoryRegisteredLength)
  "_WasmEdge_StoreListModule", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListModule in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListModuleLength, __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListModule )
  "_WasmEdge_StoreListModuleLength", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListModuleLength in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListModuleLength)
  "_WasmEdge_StoreListTableLength", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListTableLength in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListTableLength)
  "_WasmEdge_StoreListTableRegisteredLength", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListTableRegisteredLength in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StoreListTableRegisteredLength)
  "_WasmEdge_StringDelete", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StringDelete in _x019.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StringDelete)
  "_WasmEdge_StringWrap", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StringWrap in _x020.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_StringWrap)
  "_WasmEdge_TableInstanceCreate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_TableInstanceCreate in _x021.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_TableInstanceCreate)
  "_WasmEdge_TableInstanceDelete", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_TableInstanceDelete in _x021.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_TableInstanceDelete)
  "_WasmEdge_TableInstanceGetData", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_TableInstanceGetData in _x021.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_TableInstanceGetData)
  "_WasmEdge_TableInstanceGetRefType", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_TableInstanceGetRefType in _x021.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_TableInstanceGetRefType)
  "_WasmEdge_TableInstanceGetSize", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_TableInstanceGetSize in _x021.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_TableInstanceGetSize)
  "_WasmEdge_TableInstanceGrow", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_TableInstanceGrow in _x021.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_TableInstanceGrow)
  "_WasmEdge_TableInstanceSetData", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_TableInstanceSetData in _x021.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_TableInstanceSetData)
  "_WasmEdge_VMCleanup", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMCleanup in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMCleanup)
  "_WasmEdge_VMCreate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMCreate in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMCreate)
  "_WasmEdge_VMDelete", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMDelete in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMDelete)
  "_WasmEdge_VMExecute", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMExecute in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMExecuteRegistered, __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMExecute )
  "_WasmEdge_VMExecuteRegistered", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMExecuteRegistered in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMExecuteRegistered)
  "_WasmEdge_VMGetFunctionList", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMGetFunctionList in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMGetFunctionListLength, __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMGetFunctionList )
  "_WasmEdge_VMGetFunctionListLength", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMGetFunctionListLength in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMGetFunctionListLength)
  "_WasmEdge_VMGetFunctionType", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMGetFunctionType in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMGetFunctionTypeRegistered, __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMGetFunctionType )
  "_WasmEdge_VMGetFunctionTypeRegistered", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMGetFunctionTypeRegistered in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMGetFunctionTypeRegistered)
  "_WasmEdge_VMGetImportModuleContext", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMGetImportModuleContext in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMGetImportModuleContext)
  "_WasmEdge_VMGetStatisticsContext", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMGetStatisticsContext in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMGetStatisticsContext)
  "_WasmEdge_VMGetStoreContext", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMGetStoreContext in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMGetStoreContext)
  "_WasmEdge_VMInstantiate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMInstantiate in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMInstantiate)
  "_WasmEdge_VMLoadWasmFromASTModule", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMLoadWasmFromASTModule in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMLoadWasmFromASTModule)
  "_WasmEdge_VMLoadWasmFromBuffer", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMLoadWasmFromBuffer in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMLoadWasmFromBuffer)
  "_WasmEdge_VMLoadWasmFromFile", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMLoadWasmFromFile in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMLoadWasmFromFile)
  "_WasmEdge_VMRegisterModuleFromASTModule", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMRegisterModuleFromASTModule in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMRegisterModuleFromASTModule)
  "_WasmEdge_VMRegisterModuleFromBuffer", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMRegisterModuleFromBuffer in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMRegisterModuleFromBuffer)
  "_WasmEdge_VMRegisterModuleFromFile", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMRegisterModuleFromFile in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMRegisterModuleFromFile)
  "_WasmEdge_VMRegisterModuleFromImport", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMRegisterModuleFromImport in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMRegisterModuleFromImport)
  "_WasmEdge_VMValidate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMValidate in _x025.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VMValidate)
  "_WasmEdge_ValidatorCreate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValidatorCreate in _x022.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValidatorCreate)
  "_WasmEdge_ValidatorDelete", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValidatorDelete in _x022.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValidatorDelete)
  "_WasmEdge_ValidatorValidate", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValidatorValidate in _x022.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValidatorValidate)
  "_WasmEdge_ValueGenF32", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGenF32 in _x023.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGenF32)
  "_WasmEdge_ValueGenF64", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGenF64 in _x023.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGenF64)
  "_WasmEdge_ValueGenFuncRef", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGenFuncRef in _x023.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGenFuncRef)
  "_WasmEdge_ValueGenI32", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGenI32 in _x023.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGenI32)
  "_WasmEdge_ValueGenI64", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGenI64 in _x023.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGenI64)
  "_WasmEdge_ValueGenV128", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGenV128 in _x023.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGenV128)
  "_WasmEdge_ValueGetF32", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGetF32 in _x023.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGetF32)
  "_WasmEdge_ValueGetF64", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGetF64 in _x023.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGetF64)
  "_WasmEdge_ValueGetI32", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGetI32 in _x023.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGetI32)
  "_WasmEdge_ValueGetI64", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGetI64 in _x023.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGetI64)
  "_WasmEdge_ValueGetV128", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGetV128 in _x023.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_ValueGetV128)
  "_WasmEdge_VersionGet", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VersionGet in _x024.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VersionGetMinor, __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VersionGet , __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VersionGetPatch , __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VersionGetMajor )
  "_WasmEdge_VersionGetMajor", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VersionGetMajor in _x024.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VersionGetMajor)
  "_WasmEdge_VersionGetMinor", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VersionGetMinor in _x024.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VersionGetMinor)
  "_WasmEdge_VersionGetPatch", referenced from:
      __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VersionGetPatch in _x024.o
     (maybe you meant: __cgo_0190cfa8e5d1_Cfunc_WasmEdge_VersionGetPatch)
ld: symbol(s) not found for architecture x86_64
clang-13: error: linker command failed with exit code 1 (use -v to see invocation)

Compile issue on Ubuntu 18.04

[](On Ubuntu 18.04

Try to compile some examples on machine:

Linux wasmedge 5.4.0-1055-azure #57~18.04.1-Ubuntu SMP Fri Jul 16 19:40:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Commands:

git clone https://github.com/second-state/WasmEdge-go-examples.git
cd go_ParseImage
go mod vendor
go build

I got many errors and I solved some but still the Glibc version is too low.
Do I miss something?

Undefined reference to LLVM 12

We need to install LLVM12 for compilation.

Fix it:

wget https://apt.llvm.org/llvm.sh -O /tmp/llvm.sh
sudo bash /tmp/llvm.sh 12

Undefined reference to GLIBCXX_3.4.26

/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `std::filesystem::__cxx11::path::_List::_List(std::filesystem::__cxx11::path::_List const&)@GLIBCXX_3.4.26'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()@GLIBCXX_3.4.26'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `std::filesystem::__cxx11::path::lexically_normal() const@GLIBCXX_3.4.26'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `std::filesystem::absolute(std::filesystem::__cxx11::path const&)@GLIBCXX_3.4.26'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `std::filesystem::__cxx11::path::_List::_List()@GLIBCXX_3.4.26'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `std::filesystem::__cxx11::path::replace_extension(std::filesystem::__cxx11::path const&)@GLIBCXX_3.4.26'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `std::filesystem::__cxx11::path::operator/=(std::filesystem::__cxx11::path const&)@GLIBCXX_3.4.26'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `pthread_sigmask@GLIBC_2.32'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `std::filesystem::file_size(std::filesystem::__cxx11::path const&, std::error_code&)@GLIBCXX_3.4.26'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `std::filesystem::__cxx11::path::_List::_Impl_deleter::operator()(std::filesystem::__cxx11::path::_List::_Impl*) const@GLIBCXX_3.4.26'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `std::filesystem::__cxx11::path::_M_find_extension() const@GLIBCXX_3.4.26'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `std::filesystem::__cxx11::path::compare(std::filesystem::__cxx11::path const&) const@GLIBCXX_3.4.26'

Fix it:

Need to upgrade libstdc++6 to latest version like this

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9
sudo apt-get upgrade libstdc++6

After that you can check if you get GLIBCXX desired version like this:

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

Link error can not find GLIbC_2.33

/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `fstatat@GLIBC_2.33'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `pthread_sigmask@GLIBC_2.32'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `fstat@GLIBC_2.33'

Glibc version is too low, double check it:

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBC_

I compiled and install GLIBC2.33 and then install it on /usr/local, the final error is:

# github.com/second-state/WasmEdge-go/wasmedge
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `fstatat@GLIBC_2.33'
//usr/local/lib/librt.so.1: undefined reference to `__futex_abstimed_wait_cancelable64@GLIBC_PRIVATE'
//usr/local/lib/librt.so.1: undefined reference to `__pthread_attr_setsigmask_internal@GLIBC_PRIVATE'
//usr/local/lib/librt.so.1: undefined reference to `__futex_abstimed_wait64@GLIBC_PRIVATE'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `pthread_sigmask@GLIBC_2.32'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libwasmedge_c.so: undefined reference to `fstat@GLIBC_2.33'
//usr/lib/x86_64-linux-gnu/libLLVM-12.so.1: undefined reference to `clock_gettime@GLIBC_2.2.5'
collect2: error: ld returned 1 exit status

with GLIBC:

image

Is aot support host function call?

What i want

just like wasmer, i declare some wasi functions in C++, and call them in C++

extern "C" {
    EMSCRIPTEN_KEEPALIVE void *get_request_data(int field);

EMSCRIPTEN_KEEPALIVE char* calculate_score_wasi(int length) {
    double *prices = (double*)get_request_data(1);
    ...

then, i defined them in golang, and register them to wasi module, it can run correctly

importObject, err = wasiEnv.GenerateImportObject(store, module)
...
funcMap["get_request_data"] = wasmer.NewFunction(store, wasmer.NewFunctionType([]*wasmer.ValueType{wasmer.NewValueType(wasmer.I32)},
				[]*wasmer.ValueType{wasmer.NewValueType(wasmer.I32)}), [mydefinedfunc])
importObject.Register("env", funcMap)
...

What's the problem

when i try host function in wasmedge, my register code is

wasmedge.SetLogDebugLevel()
wasmPath = compileWasm(wasmPath) // compile my demo.wasm by aot

var (
	conf    = wasmedge.NewConfigure(wasmedge.WASI)
	err     error
	vm      = wasmedge.NewVMWithConfig(conf)
	wasiobj = vm.GetImportModule(wasmedge.WASI)
)

wasiobj.InitWasi(
	os.Args[1:],     // The args
	os.Environ(),    // The envs
	[]string{".:."}, // The mapping preopens
)

importOjb := wasmedge.NewModule("env")
for name, function := range allWasiFunctionDefined {
	temp := wasmedge.NewFunction(hostFunctionType, function, nil, 20)
	importOjb.AddFunction(name, temp)
}

err = vm.RegisterModule(importOjb)
if err != nil {
	fmt.Printf("failed to import function module\n")
	return nil
}

err = vm.LoadWasmFile(wasmPath)
if err != nil {
	fmt.Printf("failed to load wasm, err=%v\n", err)
	return nil
}
err = vm.Validate()
if err != nil {
	fmt.Printf("Validate err=%v\n", err)
	return nil
}
err = vm.Instantiate()
if err != nil {
	fmt.Printf("Instantiate err=%v\n", err)
	return nil
}

then i call the calculate_score_wasi function, get the error

[error] execution failed: out of bounds memory access, Code: 0x88
[error]     When executing function name: "calculate_score_wasi"

so, is my fault or the wasmedge hasn't support ? please help, thanks a lot

WasmEdge consume much more memory than Wasmer

In this repo WasmEdge runtime for Suborbital Reactr
The test will fail with the error message signal killed, which is caused by out-of-memory.
To reproduce the process:

git clone https://github.com/second-state/reactr.git
cd reactr/rwasm
mkdir wt
cp ../wasmtest/swift_test.go .
cp ../wasmtest/wasm_test.go .
vi wasm_test.go

Change package of two go files to wt, then

go test
go test --tags wasmedge

go test will run with Wasmer runtime by default and with --tags wasmedge will run with WasmEdge runtime.

My host is a Ubuntu 20.04 docker container.

Below are two mem profiles of both testing on Wasmer and WasmEdge. You will notice that at the bottom of WasmEdge's graph, there is a memory consumption of 600+M more than Wasmer's graph.

wasmer suborbital-rust-test

wasmedge suborbital-rust-test

Support goroutine

WasmEdge-go not supports goroutine now.
We should support goroutine in WasmEdge-go in the future.

wasmedge/wasmedge.h: No such file or directory

I've been folowing the instructions yomo-wasmedge-tensorflow with go run --tags "tensorflow image" app.go and it fails with this error message:

# github.com/second-state/WasmEdge-go/wasmedge
/root/go/pkg/mod/github.com/second-state/[email protected]/wasmedge/ast.go:3:11: fatal error: wasmedge/wasmedge.h: No such file or directory
    3 | // #include <wasmedge/wasmedge.h>
      |           ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Allow disabling stdout

I'm not sure if there's a way, but I can't find a configuration to set stdout to something besides os.Stdout. This is helpful in tests, ideally a writer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.