# MoonLiberty 0.4.4 保守补齐与复查（2026-10-29）

## 结论

本轮针对实际缺陷、可用性和有限格式缺口补齐，九个命令、六份公开接口及现有求值维度保持一致。完成本地完整回归、真实库独立核对和文件异常路径检查。未引入新依赖。完整 Liberty 2017.06 仍未完成，本记录不代表官方终审通过；上一版事实见 [0.4.3 报告](history/FINAL_REVIEW_0_4_3.md)。九项工程要求见 [验收核对](ACCEPTANCE.md)。

## 已复现并修复

1. 每个 ff/latch/statetable 重建同一单元的状态名表，导致重复扫描；4096 个 ff 的约 190 KB 合法输入在旧版超过 30 秒未完成。现在每个单元建立一次环境，保留前向引用、同级状态可见性和不同/嵌套单元隔离。本机压力脚本约 351.31 ms，包含进程和 IO，不作普遍速度保证。
2. 用户声明使用线性查找；同名属性有多个合法父组时，一次越作用域使用被重复报告。改用名称、父组分开的两层索引，保持首个定义及重复定义报错。64 个父作用域反例现在只报告一次，不再放大该诊断。
3. 已声明简单属性 rank:... 可以改写成 rank(1.5); 绕开类型检查。现在返回 DefinedAttributeForm；未声明的厂商复杂属性仍可原样保留。
4. 总线声明给出宽度、单端点和方向时，遗漏另一端点使越界成员漏报。现在对该明确组合推导边界；负成员和推导出的负端点均拒绝。其余默认组合、自定义命名和向量展开仍开放。依据 Reference Bus Groups 1-76—1-77 及 type 属性 2-123—2-125，见[标准契约](STANDARD_CONFORMANCE.md)。
5. 非负 rise_transition/fall_transition 表可被外推成负转换时间，旧 SI 查询仍返回成功。现在返回 NegativeTransition；合法负传播延迟、通用查表和零转换时间仍允许。

## 验证结果

| 检查 | 实测结果 |
| --- | --- |
| 工具链、格式、严格 check、接口及 release 构建 | 固定 SDK/core 0.10.16+b1a0e846e，通过；六份接口与 0.4.3 逐字一致 |
| MoonBit 回归 | native 361；纯核心 JS/Wasm GC 各 336，全部通过；不跨后端重复累计 |
| CLI/标准/不变量 | 30/33/70 次；不变量包含 55 次 Decimal 合成数值核对 |
| 真实库 | IHP 312 + Nangate 72 = 384 次独立查询，另有完整结构往返和提取；语料流程 89 次已包含 Nangate 72 次 |
| 异常写出 | 输入错误时保留已有输出；缺失父目录不发布文件；输出为目录时保留子文件并清理自身临时文件 |
| 实际示例 | inspect/query 均运行，IHP 84 单元、285 引脚、384 弧、1199 表；查询约 1.1540884836886305e-10 秒 |
| 源码规模 | 49 个 .mbt，8105 行有效代码，实现 4969、测试 3136，不计依赖、数据、SDK 与生成文件 |

新增 13 项针对性回归，其中 7 项缺陷测试确认修复前失败。检查同时覆盖解析/词法、include 资源预算、写出前预算和重解析、单位与小数、CLI 文件边界。未确认的问题不作为已修复漏洞；此次结果也不保证所有错误已消除。上游 async 的 Windows C4005 提示仍是已知工具链提示，MoonBit --deny-warn 通过。机器证据见本地 artifacts/review-044.json 及各 CLI/独立核对报告。

## 材料、发布与剩余工作

使用已安装 osc2026-guide 的工程检查，结合用户提供的九项验收指南及逐模块代码复核。申报书、README、模块及 Git origin 统一指向 SongYZZZ/moon-liberty。许可证 Apache-2.0，标准手册只引用不分发；来源见 [REFERENCES](REFERENCES.md)。旧工具链、认证和全局配置保留原位。

本轮远程 CI、0.4.4 实际发布和独立注册表消费者将按结果补记；上一版发布证据已保留在 [0.4.3 消费者记录](history/CONSUMER_0_4_3.md)。未代填报名表或发送消息。

完整词法/字段级 schema、全部格式引用/父组约束、其他特殊根结构和 CCS/ECSM/LVF 等高级模型完整格式规则仍须闭环。compat 的 complete_standard_conformance 和 rule_inventory_exhaustive 继续为 false；不删减此前承诺的完整终点，不用测试数或发布代替该目标。
