ray-d-song /
wasmz
wasmz 是一个用 Zig 编写的 WebAssembly 运行时,旨在快速、紧凑且易于嵌入。它实现了一个功能齐全的解释器,支持现代 WebAssembly 提案和 WASI。 同时我测试了的 Wasi 版 esbuild、quickjs、SQLite 运行,所以这并不是一个 Demo 项目。 动机 现有的主流 Wasm 解释器(不是像 wasmtime 这样包含 AOT 和 JIT 的重量级 Runtime,而是解释执行)缺乏对现代…
ray-d-song /
wasmz 是一个用 Zig 编写的 WebAssembly 运行时,旨在快速、紧凑且易于嵌入。它实现了一个功能齐全的解释器,支持现代 WebAssembly 提案和 WASI。 同时我测试了的 Wasi 版 esbuild、quickjs、SQLite 运行,所以这并不是一个 Demo 项目。 动机 现有的主流 Wasm 解释器(不是像 wasmtime 这样包含 AOT 和 JIT 的重量级 Runtime,而是解释执行)缺乏对现代…
wasmz 是一个用 Zig 编写的 WebAssembly 运行时,旨在快速、紧凑且易于嵌入。它实现了一个功能齐全的解释器,支持现代 WebAssembly 提案和 WASI。 同时我测试了的 Wasi 版 esbuild、quickjs、SQLite 运行,所以这并不是一个 Demo 项目。 动机 现有的主流 Wasm 解释器(不是像 wasmtime 这样包含 AOT 和 JIT 的重量级 Runtime,而是解释执行)缺乏对现代功能的支持(例如新版异常和 GC 提案),导致我另一个 Kotlin Wasm 的项目无法运行。 我想也写一些东西来验证我从研究 Lua 和 mRuby 源代码中学到的东西,以下是我在 Parser 和 VM 中进行的主要优化: 基于寄存器的 IR(栈到寄存器降级) Direct Threaded Code Dispatch r0 和 fp0 累加器寄存器及其变体 指令融合 和 callleaf 跳过结果槽设置和返回值复制 槽回收 惰性编译 基于 mmap 的内存 在这个页面我更详细的解释了相关优化内容:
Discuss this product