将基于 JIT 的 lang 编译为 WebAssembly

Jam*_*own 3 javascript c python webassembly

当思考解释器工作的原因时:解析代码 -> 生产者机器字节代码 -> 分配 exec mem -> 运行

如何在 wasm 中完成?

谢谢!

And*_*erg 5

如果您实际上正在实现解释器,那么您不需要在运行时生成机器代码,因此一切都可以保留在 Wasm 中。

你实际上想到的是即时编译器。为此,您确实必须回调嵌入器(即浏览器中的 JavaScript)并动态创建和编译新的 Wasm 模块,并将它们链接到正在运行的程序中——例如,通过向现有的程序添加新函数桌子。此用例存在同步编译/实例化接口。

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