Comments (3)
The difference is that this module imports from two other module namespaces -- "env" and "global". So to instantiate this module, the owner has to provide instances of the other two modules, either as other Wasm modules that you've also converted with wasm2c, or as host code that you've implemented in C. The wasm2c README and the rot13
example give some examples of this. We don't have a single "example main.c" -- there's a differently main.c for each example, partly because the arguments required to instantiate each module depend on what it wants to import (and the interface it wants from the host).
The presence of imports from the "env" namespace suggests that your module is probably a .o file (from clang/LLVM) that's intended to be linked, not a completed Wasm module intended to be run in an engine. So, I guess, where did this Wasm module come from and are you sure it's the one you want to run? It's pretty rare to want to run a .o file directly.
from wabt.
By "example main.c" i meant the one shown in the wasm2c README.
The WASM is definitely the only file and comes from a JavaScript library that contains 'control code' and this file in encoded in base64. The file itself is a YUV frame converter.
from wabt.
There are multiple main functions in the wasm2c README. The fac
module doesn't import anything, so it doesn't require any additional arguments to instantiate it. The rot13
module imports from the host
namespace and requires a host
instance to instantiate it. (The JavaScript API is similar, e.g. WebAssembly.instantiate takes an importObject for whatever the module imports.)
It sounds like your module imports a bunch of functionality from the host, and comes with a JavaScript implementation of that host-side functionality. If you want to run this module in a "VMless engine" like wasm2c, you'll need an implementation of the host-side functionality in some language that can be linked with the wasm2c output. (E.g. C, C++, Rust, Fortran, etc.)
from wabt.
Related Issues (20)
- Invalid Memory Read in FreeList<wabt::interp::Object*>::IsUsed()
- error initializing module: invalid import "a.a" HOT 1
- Error while running testsuite (simd_lane, simd_load) "loop not vectorized" HOT 3
- wasm2wat: support component wasm HOT 1
- Wrong type error when validating globals with gc proposal features
- wat2wasm: Assertion `!"ParseExpr should only be called when IsExpr() is true"' failed in wabt::WastParser::ParseExpr
- Wast2Json fails on the testsuite HOT 8
- Library not loaded: /usr/local/opt/openssl@3/lib/libcrypto.3.dylib HOT 8
- Missing Import when running global.wast HOT 1
- `wast2json` miscompiles "if.wast" from the specification tests HOT 4
- Build failed on Apple Silicon platform HOT 4
- [wasm2c] Strange issue with double parsing in msvc HOT 5
- wasm2c compiling minimal example issues HOT 1
- [wasm2c] catching traps without exception runtime
- “picosha2.h”: No such file or directory HOT 2
- Allocator is out of memory in wasm-interp HOT 3
- Invalid Read Memory in wabt::interp HOT 1
- SEGV in wabt::Module::operator=
- CMake missing OpenSSL dependency HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wabt.