# 验证记录

## 0.4.4 保守补齐与资源复核（2026-10-29）

固定 SDK/core 0.10.16+b1a0e846e。严格 fmt/check、info、release build、361 native、核心 JS/Wasm GC 各 336 及两个 README 示例通过。新增 13 项回归，其中 7 项缺陷测试已先确认在旧实现上失败；其余验证索引、缓存的语义保持和作用域隔离。六份公开接口与 0.4.3 逐字一致。

CLI 验收 30 次、标准场景 33 次、不变量 70 次（含 55 次 100 位 Decimal 合成对照）；IHP 312、Nangate 72 次真实库查询及完整结构往返/提取保持通过，原始 ASAP7 缺分号样本继续拒绝。三个新增写出失败场景检查已有输出不变、缺失父目录不发布文件、目录及相邻文件保留且清理本次临时文件。

修复每个状态组重复建立同一单元名称环境：旧版 4096 个 ff、190313 字节的合法输入超过 30 秒未完成，修复后压力脚本本机单次约 351.31 ms。4096 个用户定义/值本机单次约 289.51 ms，64 个父组共用属性的越作用域使用只报告一次错误。均含进程和 IO，不作为跨机器性能承诺；报告 artifacts/invariant-audit.json，前后最小复现、接口和测试汇总 artifacts/review-044.json。

补齐显式宽度/单端点/方向的总线边界及非负性、声明简单属性形式检查，并拒绝负 SI 转换时间外推；合法负传播延迟和通用查表保持允许。当前 49 个 MoonBit 文件、8105 行有效代码，实现 4969、测试 3136；不含依赖、SDK、数据及生成文件。完整 2017.06 和穷尽规则目录仍为 false。旧版测量保留如下。

## 0.4.3 验收工具链迁移（2026-10-29）

按新增指南将编译器下限设为 0.10.16，SDK/core 固定 0.10.16+b1a0e846e，moon 为 0.1.20261020。独立 SDK 安装、重复执行和当前终端激活已验证；门禁实际拒绝旧 0.10.14，并接受固定 SDK/core。旧 SDK、认证和全局环境保持原位。

严格 check/fmt、info、release build、348 native、核心 JS/Wasm GC 各 323、两个实际运行示例通过。CLI 27/29/66 次，包含 55 次 Decimal 合成对照；IHP 312、Nangate 72 次真实库查询及语义往返/提取通过，原始错误语料继续拒绝。

迁移弃用的 .to_json() 为 Json(value)，接受新版格式器自动产生的 Int32 和默认参数标记。升级前保存 0.4.2 的九个命令代表输入，升级后 JSON 相等、三类输出文件字节相同。六份生成接口中只有两份出现 Int→Int32 规范名称变化，按该名称归一后全部一致，未变更公开函数集合或领域计算模型。证据在 artifacts/migration-043.json。

未为迁移堆加测试或新业务功能。当前 49 个 MoonBit 文件，7860 行有效代码，实现 4915、测试 2945；不含安装的 SDK、依赖和生成文件。上游 async 在 Windows 仍出现 C4005 EINVAL 宏重定义提示；MoonBit --deny-warn 通过，不把上游 C 警告描述为零。

## 0.4.2 保守复查与输入兼容（2026-10-28）

348 项 native、纯核心 JS/Wasm GC 各 323 项通过；新增 11 项针对性回归，八项缺陷回归在修复前均失败。严格 fmt/check、info、release 构建与两个例子通过；六份公开接口的 SHA-256 与 0.4.1 一致。

CLI 验收 27 次、标准场景 29 次、不变量流程 66 次（含 55 次 100 位 Decimal 合成对照）。IHP 312 次及 Nangate 72 次独立查询、完整结构往返/提取与 Yosys 样本保持通过；原始 ASAP7 缺分号负例继续拒绝。

新增兼容仅处理根文件和显式 include 片段开头的 UTF-8 BOM，并保留字符预算和中间文本。修复紧邻裸值续行、注释内 NUL、statetable 内部节点作用域和可表示外推误溢出。公开命令及物理求值模型保持一致。49 个 MoonBit 文件，共 7851 行有效代码，实现 4906、测试 2945；行数不作为正确性或标准覆盖证明。下列旧版测量原样保留。

## 0.4.1 保守补丁（2026-10-26）

337 项 native、纯核心 JS/Wasm GC 各 312 项通过；新增 8 项针对性回归。原 CLI 验收 20 次、标准 CLI 29 次；已有不变量流程 61 次（含 52 次 Decimal 对照）及 IHP/Nangate 实库 384 次核对保持通过。6 份 moon info 生成接口与补丁前一致。

生产改动集中于表格校验、CLI 整数字面量和 latch 格式依赖。read_table 复用 read_table_data，消除缺轴误当标量的两套逻辑差异；正确保留 SR 锁存器的例外。未增加命令、公共 API 或求值模型。49 个 MoonBit 文件，7705 行有效代码，实现 4873、测试 2832；主实现较 0.4.0 减少 42 行，测试增加 152 行，行数只用于说明改动规模。

## 0.4.0 本轮（2026-10-26）

固定 SDK/core 0.10.14+7d59c7ec9。329 项 native、305 项纯核心 JS、305 项纯核心 Wasm GC 测试通过；fmt/check --deny-warn、info、release 构建通过。CLI 分别为原验收 18 次、标准场景 25 次、新增不变量 61 次；第三项包含 52 次 100 位 Decimal 对照，不与实库 384 次查询混为一谈。

逐模块复核发现并修复引号数字信号在格式化/差异审计中变常量、有限极值插值的中间溢出、SI 前缀大小写混淆、公开单位对象复验、继承第三轴遗漏、错误 3D 被当作不支持、合法多名称引脚建模遗漏、单元局部 type 误报以及 ff 必需方程漏检。多名称展开同时计入引脚数、属性扫描、条件/函数长度、表数据工作量；局部类型使用分层环境，避免每单元复制全局表。

新增脚本 audit-invariants.py 使用固定种子 20261026，覆盖差异、真值表、提取、类型作用域、缺少状态方程、52 次 Decimal 数值核对，以及 2048 个全局 type/2048 个单元的作用域用例。该用例本机单次 compat 墙钟约 326.68 ms，包含进程及 IO；仅作为此次观测，不设跨机器保证或声称对照速度提升。对应报告 artifacts/invariant-audit.json。

当前 49 个 MoonBit 文件、7595 行有效代码，实现 4915、测试 2680；不含下载数据、依赖、缓存和生成文件。IHP/Nangate/Yosys 固定源互操作保持通过；ASAP7 原始错误输入继续保留为拒绝负例。以下旧版本记录保留历史数字。

## 0.3.0 本轮（2026-10-25）

原生 305 项，纯核心 JS/Wasm GC 各 281 项通过；fmt/check --deny-warn、info 和 release 构建通过。原 CLI 验收 18 次，标准 CLI 21 次；新增多来源流程 89 次调用含 72 次 Nangate 独立查询，原 IHP 312 次仍单列，合计 384 次数值核对。多来源完整结构往返、负例及取样边界见 [CORPUS](CORPUS.md)。

本轮定位并修复：精确小数/超大整数差异被浮点舍入吞掉、related_pin 顺序丢失、未引号总线范围词法、布尔 XOR/AND 优先级、函数内引用数字开头信号、缺分号合并属性、表格行形状/模板身份和写出分配预算。新增标准目录为 18 族实现，不是全手册覆盖率；完整标准符合性仍为 false。

源码统计脚本输出 47 个 MoonBit 文件、7068 行非空且非整行注释代码，包含测试（实现 4661 行，测试 2407 行）；不含外部读取器、库数据、依赖、缓存或生成文件。源码规模不是通过终审的替代指标。以下 0.2.0/0.1.0 为历史测量，未重测的微基准不更新数值。

## 0.2.0 本轮（2026-10-21）

固定 SDK/core 0.10.14+7d59c7ec9。原生测试 **252 项**，纯核心 JS/Wasm GC 各 **228 项**。严格编译、格式检查、接口生成和 release 构建均按 CI 执行。标准案例另有 **13 次 CLI 执行断言**，原 CLI 验收为 **18 次**。IHP 真实库仍通过 **312 次独立数值核对**及完整结构往返。

新增测试覆盖 include 缺失/嵌套/组边界/路径形式/组合资源预算、用户属性及自定义组声明、父组和类型、大整数字面量的精度边界、版本显式选择以及“可保留但不求值”的 CCS/LVF 等数据。语料分为真实 IHP 数据和自编结构/反例；后者不冒充工艺合法性或完整标准证明。

完整符合性仍为 false，见 [标准契约](STANDARD_CONFORMANCE.md)；测试通过不代表该版本全部 schema 已完成。当前源码行数按 scripts/verify.py 的非空/非整行注释口径输出，包含测试，不计依赖和生成文件。

复现命令、独立预言机版本及许可证见 README、REFERENCES、STANDARD_CASES。原 0.1.0 的实测基准如下保留，不能把它当作新增兼容模块的性能测量。


## 0.1.0 历史记录（2026-10-19）

工具链：MoonBit SDK/core 0.10.14+7d59c7ec9，moon 0.1.20260920。实测机器 Windows 11、Intel Core i7-14650HX。此处记录已运行结果，不是期望值或覆盖率估算。

## 功能检查

- moon fmt --check、moon check --deny-warn、moon build --release --deny-warn。
- 原生单元/黑盒/白盒测试：205 项通过，包含词法、资源边界、语法往返、单位、网格、条件弧、逻辑、模型、差异、参数及文件 IO。
- 纯核心 JS 和 Wasm GC：各 185 项通过。
- verify.py：18 次 CLI 执行检查，包括实际退出码、9e-11 秒的合成样本查询、默认越界拒绝、显式钳位/外推、坏 UTF-8、无部分输出、禁止覆盖和只变化一个 area 字段的 diff。
- 两个原生例子：examples/inspect、examples/query；读取同一真实公开库。

真实样本 SHA-256 和许可证见 REFERENCES。原始 IHP 文件 1,720,231 字节，33781 行，解析出 84 单元、285 引脚、384 时序弧、1199 表格，当前规则 lint 0 error、0 warning。单个 PDK 样本不能说明适用于全部 Liberty 方言。

## 独立交叉验证

使用固定 GPL-2.0 libertyParser 作为独立读取器，而不是把本项目的输出当作唯一预言机。oracle_check.py 做以下断言：

1. 原始样本哈希、完整单元名清单、单元/引脚/弧/六类表统计与独立结果一致。
2. 12 个真实单元、四种组合表，共 312 次精确节点或内部点查询；依据独立读取的坐标与表值，用四角权重独立计算预期值，误差容限为 rel_tol=1e-11、abs_tol=1e-23 秒。
3. 格式化后的完整结构交给独立读取器，与原文件逐字段/分组核对；差异比较结果为零。
4. 提取 sg13g2_inv_1 后，独立确认只剩指定 cell、其完整内容一致、库级模板均保留，并重新 lint。

报告生成到 artifacts/oracle/report.json。交叉验证通过不代表形式化证明或商业签核；仍应扩大公开样本覆盖。参考读取器按行解析，我们只对它实际能够解析的固定样本作结论。

## 性能实测

命令：moon bench --target native -p SongYZZZ/moon-liberty/benchmarks，release 原生，合成 1000 单元，每单元两个引脚。结果：

| 项目 | 平均值 ± 标准差 |
| --- | --- |
| 解析 1000 单元 | 15.56 ms ± 689.03 µs |
| 建模 1000 单元 | 20.25 ms ± 2.42 ms |
| 校验并查询 7×7 表 | 290.61 ns ± 62.29 ns |

以上为该次本机测量，不设跨机器性能承诺。7×7 项目包含每次有限性、递增轴和形状检查，已加载单表；不包含整库 lint、选择弧、文件 IO 或进程启动。另以 Python perf_counter 测量真实 IHP 库 inspect 七次，包含进程和文件 IO，为 204.43、219.78、217.34、231.96、251.29、247.39、264.25 ms。没有宣称内存占用或与其他实现的速度优劣。

## 复现

先按 README 构建 release。Python 3.10+ 标准库用于脚本，gh/pwsh 用于下载可选的独立工具；不会修改全局 Python 包或系统环境。脚本在本项目 artifacts 下写可丢弃报告；源文件和认证配置不会被清理。CI 同样核对模块、申报书及 Git origin，并上传 JSON 证据。
