Ah, got it. So presumably I just have a call to fdwrite hidden somewhere in my code I need to purge. Thanks.
On Fri, Jul 24, 2020 at 12:50 PM Alon Zakai <[email protected]> wrote: > Standalone mode will require WASI if it does things like logging. Wasm by > itself doesn't have an API for that, so we need *something*, and we try to > use standard APIs as much as possible (see > https://v8.dev/blog/emscripten-standalone-wasm#let's-unify-as-much-as-possible > ). > > That is, if you see "fd_write" being required, that means logging is done > in the wasm module, so to run in wasm-interp we'd need an API to do that, > and WASI is the most standard API for that, so we use it. > > If a program does *not* do any logging, then no fd_write will be imported. > So WASI is not a general requirement when in standalone mode. > > There's nothing special about WASI here. Standalone mode tries not to use > external APIs as much as possible - it does what it can inside the wasm. > When it does need to use an API, it will import it. That can in theory be > any API emscripten supports, not just WASI, it depends on the APIs your > code needs - for example if you use a GL method like glBufferData it will > import that (and a custom runtime can then decide to add support for that > API, say in a game engine that wants GL-doing plugins). > > > > > On Fri, Jul 24, 2020 at 12:39 PM 'Steven Johnson' via emscripten-discuss < > [email protected]> wrote: > >> TL;DR: does STANDALONE_WASM=1 imply WASI-required? >> >> I've been building my wasm code with STANDALONE_WASM=1. This runs in d8 >> just fine (though it still requires the .js wrapper to launch), and also in >> wasm-interp, but only if I build WASI support into wasm-interp (otherwise >> I'll fail with things like `invalid import >> "wasi_snapshot_preview1.fd_write"`). >> >> The comments in Emscripten's settings.js regarding STANDALONE_WASM don't >> seem entirely clear on this front. My assumption at the moment is >> that STANDALONE_WASM=0 means "You will almost certainly require JS and >> WASM" (which is fine), but STANDALONE_WASM=1 apparently means "You might >> require JS and/or WASI in addition to WASM". >> >> (The motivation here is that I'd like to use wabt's wasm-interp in a >> configuration without WASI, but it's not clear to me whether there is a set >> of flags for Emscripten that will reliably produce standalone wasm that >> requires neither WASI nor other JS-specific imports from "env".) >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "emscripten-discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/emscripten-discuss/CAM%3DdnvfwXFpSG0N%2BfG-Us02bSFASTFeLS_9JewN8S4G5ijreYQ%40mail.gmail.com >> <https://groups.google.com/d/msgid/emscripten-discuss/CAM%3DdnvfwXFpSG0N%2BfG-Us02bSFASTFeLS_9JewN8S4G5ijreYQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > You received this message because you are subscribed to the Google Groups > "emscripten-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/emscripten-discuss/CAEX4NpRftpJOqhkVbZqvBJZCWM8yGT340kiukcchaeVu9m9Jtg%40mail.gmail.com > <https://groups.google.com/d/msgid/emscripten-discuss/CAEX4NpRftpJOqhkVbZqvBJZCWM8yGT340kiukcchaeVu9m9Jtg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/emscripten-discuss/CAM%3DdnvexZnR8J00M7db8kV1sy02THgEvzCrUJCyShPjwMDAKFQ%40mail.gmail.com.
