将基于 JIT 的 lang 编译为 Webassembly

Compile a JIT based lang to Webassembly

当想到一个解释器工作的原因时: 解析代码 -> 生产者机器字节码 -> 分配可执行内存 -> 运行

在 wasm 中如何实现?

谢谢!

如果你真的在实现一个解释器那么你不需要在运行时生成机器代码,所以一切都可以留在 Wasm 中。

您实际上想到的似乎是即时编译器。为此,您确实必须回调嵌入器(即浏览器中的 JavaScript)并在那里动态创建和编译新的 Wasm 模块,并将它们 link 放入 运行程序——例如,通过向现有 table 添加新功能。此用例存在同步 compilation/instantiation 接口。

在未来的版本中,可能会直接从 Wasm 中调用编译 API,但现在通过 JavaScript 是预期的方法。