跳转至

核心 WebAssembly 接口比较(#2356)

结果与范围

在必需的 scope: imports | exports | both 下,比较两个经精确认证的 inspect_wasm_artifact Evidence 输入,无论是内联的还是保留的会话引用。比较过程中不会获取或执行任何模块。这是在现有 WABT 检查权限内的一个派生工作流,而非新的提供者。

生产者拥有的类型化 interface 事实在历史检查 Evidence 中是附加且可选的。WABT 验证过的规范 WAT 负责解码;确切的原始形式和名称仍然可用。比较从不重新解析保留的显示文本。函数/标签签名解析类型用途;内存页大小默认为 65536 字节,显式的自定义页大小会被保留;表/内存限制和全局类型会被精确比较。不支持的类型/提案形式保持未知,而不是通过原始文本比较或推断为兼容。名称是精确解码的 UTF-8,不进行规范化,包括空名称、转义、标点和 BOM。

比较契约

返回两个 Evidence 的 ID 以及原始工件路径/摘要/长度。导入按确切的模块/名称分组,导出按确切名称分组,与种类无关,因此种类变化会被报告为已更改。唯一已接纳的签名会产生已添加、已移除、已更改或未更改的结果。重复键保留每个原始出现并产生未知结果;不做笛卡尔配对或去重。历史维度的缺失和不完整的清单会阻止对缺失状态的断言。未知签名不会擦除独立观测到的条目。排序由方向和名称确定性决定。

主题摘要/路径和检查参数都必须与规范化的工件身份匹配。在投影之前先认证 Evidence;摘要型 Evidence 必须由调用方解析为其保留的完整父级。报告未知覆盖范围和明确的限制。精确的静态相等性并不等于运行时兼容性、ABI 兼容性、链接成功或源代码身份。

权限与重叠

仅读取提供的 Evidence。MCP 通过现有 handler/ledger 记录派生的 Evidence;CLI 接受来自显式 JSON 输入的可移植内联 Evidence。不涉及新的提供者、隐式获取、目标变更或外部代码执行。PR #2406(head 86865035)添加了组件检查、前导路由和内嵌核心模块检查。其组件解析器在此处不是必需的,也不会重复实现;共享的契约/CLI 注册更改仍然是附加性的。核心 GC/递归类型不在已接纳的签名语义范围内,并保持未知映射。

资源准入

类型化的生产者行、名称和声明分词会在对照现有 32 MiB WABT 输出表示容量进行分配之前被接纳。比较使用线性分组,并在传输过程中协作式让步;它从不构建笛卡尔重复配对。CLI JSON 输入保留共享的文件接纳门。Token 使用量和进程族峰值内存仍未测量。

验证

使用 WABT 1.0.42 汇编的原始自有模块涵盖了语义等价的编码、种类/签名变化、名称/重复项、导入的索引空间、表/内存/全局/标签、未知类型以及历史不完整 Evidence。演练认证身份、取消、保留查找、CLI/MCP 对等性和对外公布的 schema。运行聚焦的现有 WASM/Evidence 测试、仓库检查和文档验证;在交接前进行独立子代理审查。

格式参考:https://webassembly.github.io/spec/core/binary/modules.html

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 rea2/rea