Wasmtime 47 默认启用 GC 与异常
GC and Exceptions in Wasmtime
Wasmtime 47 版本现已默认开启 Wasm GC 和 exceptions 提案支持,标志着 WebAssembly 生态的重要里程碑。过去,高级语言需在二进制文件中内嵌垃圾回收器,导致体积臃肿且效率低下。如今,Wasmtime 通过内置的 Cheney 风格半空间复制收集器,让开发者能直接利用运行时管理对象生命周期,无需手动处理内存。同时,异常处理机制的引入消除了自定义调用约定的开销,显著提升了执行效率并减小了二进制体积。这一更新不仅让 WebAssembly 成为更多高级语言的理想编译目标,也为构建安全、快速且可移植的 Wasm 应用奠定了坚实基础。
WebAssembly 承诺快速、安全且可移植,但运行时必须在实现中真正承担这一责任。
HN 评论区
40- faldor20
Wasm 支持了异常却不支持 effects(effect 其实是同一概念的泛化),这似乎有点可惜。
我猜这可能是因为在实现上,异常只需要栈展开(stack unwinding),而 effects 则需要完整的栈切换(full stack switching)。
不过看起来这方面仍在推进,令人充满希望 https://github.com/WebAssembly/stack-switching/blob/main/pro...
- torginus
WASM 要等到 GNU Hurd 成功运行当年的桌面版 Linux 才算真正就绪。WASM 已经问世 10 年了……HTML、CSS 和 JavaScript 都产生了巨大影响,而 WASM 至今尚未做到。
- rbbydotdev
它支持内部指针(interior pointers)吗?