我想了解用于教育目的的 WebAssembly 文本格式以及编写直接编译为 WASM 的 POC 编译器。
我想了解如何正确导入必要的 WASI 函数来创建控制台日志函数。
我很想看到一个用有点可读的 WAT 模块编写的示例,该模块导入 WASI 并实现一个可以在浏览器外部运行的简单控制台 log/printf/echo 函数。
例如,
(module
(func $wasi_snapshot_preview1.fd_close (;0;) (import "wasi_snapshot_preview1" "fd_close") (param i32) (result i32))
(func $wasi_snapshot_preview1.fd_seek (;1;) (import "wasi_snapshot_preview1" "fd_seek") (param i32 i64 i32 i32) (result i32))
(func $wasi_snapshot_preview1.fd_write (;2;) (import "wasi_snapshot_preview1" "fd_write") (param i32 i32 i32 i32) (result i32))
(func $wasi_snapshot_preview1.proc_exit (;3;) (import "wasi_snapshot_preview1" "proc_exit") (param i32))
(data (; ... ;) )
(memory (; ... ;) )
(func $log (; ... ;))
)