本工具读取仓库里接口包的纯声明源文件(根目录 豫言操作系统接口 与 豫言操作系统底层接口 下的包)。整包调用为 node 豫言操作系统/宿主/节点/宿主.cjs yy豫言操作系统接口检查.wasm 包描述文件路径 [实现文件路径 宿主或应用];单文件调用为 node 豫言操作系统/宿主/节点/宿主.cjs yy豫言操作系统接口检查.wasm 接口文件路径 同目录包描述文件路径 [实现文件路径 宿主或应用]。它复用编译器的词法与抽象语法解析,停在“类型声明必须紧接定义”的归并步骤之前;读取包描述文件的所有者、名称、完整版本与直接依赖,拒绝越过直接依赖的导入、同包重复声明和函数体。。接口。豫 默认由宿主提供,。应用接口。豫 由应用提供;指定实现文件时,按文件后缀确定的方向检查对应 乃 函数及其源级类型表达式。
包的定位。 工具须在仓库根目录运行。接口文件里的导入和清单里的依赖都按包的短名在包索引里查找:索引用构建基础的包发现从当前目录建立(与豫构相同,忽略 .git、.yybuild、_v0 与符号链接),第一次需要时才建,之后复用。所以仓库里的任何包(标准库、底层库、其他接口包)都能被解析,位置不再写死;此前只认自身、标准库 和以 豫言操作系统 开头的包,因而找不到 底层库。导入的包必须是本包自身或声明的直接依赖;索引里没有该名字或有两个同名的包都会报错,所有者由生成清单时的身份核对确认。导入的模块文件按后缀 。接口。豫、。应用接口。豫、。豫(普通库的模块,如标准库、底层库里的类型别名)查找;接口文与应用接口文同名,或接口文与源码同名,都是错误。
node 豫言操作系统/宿主/节点/宿主.cjs yy豫言操作系统接口检查.wasm --清单 包描述文件路径 输出文件路径 在整包检查通过后生成格式版本 4 的 JSON 清单,列出完整包身份、已解析的直接及传递依赖闭包、公开构造与函数声明、函数方向及源级签名。还对包描述、两种后缀的接口文件、包内规范文档和根目录公共文档记录逻辑文件名及 SHA-256 内容摘要。此步调用构建机的 shasum -a 256,缺少该命令会失败;摘要和包身份均不包含物理路径。递归解析时拒绝依赖环和同一所有者/包名的版本冲突。模块与摘要文件名按 UTF-8 字节排序;模块内声明维持源码顺序,函数表先按宿主接口、再按应用接口列出函数,各组按文件名及源码顺序稳定排列。
node 豫言操作系统/宿主/节点/宿主.cjs yy豫言操作系统接口检查.wasm --核对清单 包描述文件路径 清单文件路径 重新检查整包,再把当前生成的清单与指定文件逐字节比较。适合在构建前发现包版本、依赖版本、函数方向或签名漂移;目前不检查实际 Wasm 导入/导出,也不代替发行装载校验。
整包模式会检查两种接口文件的函数全集,拒绝同名函数或同名逻辑模块。指定实现文件时,其同目录 实现接口。豫 须声明公共接口的所有者、名称、完整版本与提供角色,检查器在签名比较之前核对。每个应由该实现提供的函数还须有 者 定义;单独写一个同名 乃 类型声明不能通过。
目前已检查跨文件类型引用的来源与声明先后;仍须补齐类型构造的完整语义检查、导入循环检测,以及各宿主同范围的发行装载验收。Node 发行包已经在启动前核对程序摘要、接口清单及 Wasm 导入导出形状。签名比对针对豫言源级类型表达式;实际 Wasm 导入/导出连接由后续绑定器验收,不以源级通过代替装载成功。