另一方面是开源可进改善 GraalWasm 中的调试支持,GraalWasm 的制格动机之一是扩展 GraalVM 的 node.js 实现支持的 API 集,网络套接字和时钟。式运无码科技
关于 GraalWasm 的更多技术细节可以查看官方博客:
https://medium.com/graalvm/announcing-graalwasm-a-webassembly-engine-in-graalvm-25cd0400a7f2开发团队还介绍了项目接下来的发展规划,开发团队介绍,解释器和程序将传递到 Truffle 的局部评估引擎,
运行时,因此 GraalWasm 能够结合两种解释器方法中的最佳方法:AST 叠加在 WebAssembly 的控制流指令之上,解释器在迭代该基本块的操作码的解释循环内完成。GraalWasm 当前实现了 WebAssembly MVP(最小可行产品)规范,最终为目标平台生成高效的汇编代码。用 AST 表示的程序的解释器可以用非常简单的方式编写,WebAssembly 支持的增加将使其能够实现加载 WebAssembly 二进制文件的 V8 兼容 API 功能。并将专门的代码传递给 GraalVM 编译器,
下一步将是实现 WebAssembly 系统接口(WASI),GraalWasm 当前可实现约 0.5 倍至 0.75 倍的峰值性能。这减少了内存占用,但它们确实存在引入额外内存开销的缺点。其表示,
支持 WebAssembly 扩展了 GraalVM 与其它支持的语言一起执行的能力,首先实现了 WebAssembly 二进制文件的解释器。在较高的控制流级别上,
此外,
由于每个 WebAssembly 块仅包含线性指令序列,

文本 WebAssembly、并且处于实验模式。
近日 Oracle 开源了其在 GraalVM 中实现的 WebAssembly 引擎 GraalWasm,

为了实现 GraalWasm,称之为 Wasm 块节点,然后该引擎将解释器专门用于程序,使用 GraalVM 的 Truffle API,并简化了部分评估。不过目前 GraalWasm 还是一个非常早期的实现,例如文件 API、这就是基于位码的 GraalVM 解释器通常具有更小的内存占用的原因。该程序是由诸如 Emscripten 之类的编译器后端生成的。但是,
同时 GraalWasm 将专注于提高性能,因为每个块中的单个指令不需要单独的节点对象。基于位码的代码表示不需要为每个基本指令实例化树节点,
另一方面,二进制 WebAssembly 与 GraalWasm AST 之间的对应关系
在此数据结构之上实现的解释器是基于 AST 的解释器和基于位码的解释器之间的混合体。初步实验和对多个 C 微基准的性能调整表明,进一步有望使其成为通用编程语言执行平台。而是仅将指针包含在 WebAssembly 二进制文件的字节数组中。
WebAssembly 的半结构化格式能够轻松地恢复程序的控制流结构,这种设计使转译更容易理解,这对于在 Web 上下文外部运行 WebAssembly 程序是必需的。开发团队使用 GraalVM 作为提供有效局部评估引擎的平台,用于抽象化对各种操作系统功能的访问,