# 五配置执行矩阵验证

本报告验证同一生成程序在四后端、五个编译配置中的构建、结果比较与源码重放。 2026-10-21 的验证覆盖 100 个固定种子，全部配置均取得有效结果且输出一致。

## 验证对象与环境

被测源码为提交 `7c836bc32fd7f6ab6c5f78d760cdaef6643195c0`，使用其 native debug CLI。 生成器固定为 `template-rules-v1`；下述结论只适用于该版本、输入范围和工具链， 后续生成器默认值变化不改变本次实验的输入定义。

| 项目 | 实际值 |
| --- | --- |
| 宿主 | Darwin 27.0.0 arm64 |
| Moon | 0.1.20260920，提交 `914d7da` |
| 编译器与 core | `0.10.14+7d59c7ec9`，2026-09-18 |
| moonrun | 0.1.20260920，提交 `914d7da` |
| Node.js | `v26.3.1` |
| 生成器 | `template-rules-v1`，Int/Bool、绑定、分支与无环函数子集 |
| 种子范围 | `0..99`，共 100 个 |
| 生成预算 | 128 节点、深度 6、256 次构造尝试 |
| 每次编译 / 运行超时 | 30000 / 2000 毫秒 |
| 配置顺序 | native-debug、native-release、wasm-gc-debug、wasm-debug、js-debug |
| 归约预算 | 16 个候选；本批没有输出分歧，未启动归约 |

## 方法与判定标准

原实验通过 `just build` 产出的 native debug 可执行文件启动任务。 独立复测时，可在相同源码版本下准备[开发环境](<https://github.com/zrr1999/moonsmith/blob/main/CONTRIBUTING.md#开发准备>)， 通过以下 CLI 源码入口启动相同参数的任务：

```shell
moon run modules/cli/src/cmd/moonsmith --target native --deny-warn -- \
  run --config acceptance.toml --set sample_count=100 --set seed_start=0 \
  --set 'name="five-config-pilot"' --set 'output.directory="runs/five-config-pilot"'
```

任务读取该版本的 [acceptance.toml](<https://github.com/zrr1999/moonsmith/blob/main/acceptance.toml>)，使用表中的生成预算与超时。 每份输入先通过内部完整程序检查，再按既定顺序执行五配置。判定标准为：

- 每个配置的构建和执行均正常退出，输出满足该程序的 Int 或 Bool 观察协议。
- 五个规范结果一致；构建失败、超时、无效输出或缺失观察不计作一致。
- 保存案例包含源码、构建描述符、配置与原始观察，外部运行时版本探测完成。
- 对保存案例重放时取得新的执行证据，原例和原任务汇总保持不变。

观察协议与执行行为分别由 [MoonBit 模块](<https://github.com/zrr1999/moonsmith/blob/main/modules/moonbit/README.md>)和 [CLI 模块](<https://github.com/zrr1999/moonsmith/blob/main/modules/cli/README.md#差分执行与存证>)定义。

## 验证结果

| 验证项 | 实测结果 |
| --- | --- |
| 计划 / 已尝试种子 | 100 / 100 |
| 完整程序生成与内部检查通过 | 100 / 100 |
| native-debug 基线编译通过 | 100 / 100 |
| 五配置都取得规范结果 | 100 / 100 |
| 五配置一致 / 输出分歧 / 比较未完成 | 100 / 0 / 0 |
| 操作错误 | 0 |
| 成功构建 / 构建总数 | 500 / 500 |
| 成功执行 / 执行总数 | 500 / 500 |
| Int / Bool 结果协议 | 59 / 41 |
| 命令退出码 | 0 |

逐样本核对了种子连续性、执行计划、构建与运行状态，以及 moonrun、Node.js 版本探测。 种子 0 的保存案例另行重放，五配置继续取得有效且一致的结果，退出码为 0； 重放追加执行记录，没有重新生成源码或改写原任务数据。

整次任务的墙钟时间为 141.25 秒，包含生成、版本探测、构建、执行、存储和报告。 该计时使用 `/usr/bin/time -p`，未控制宿主负载与文件缓存，不用于算法性能比较。

## 结论与适用范围

本次固定输入范围验证了五配置执行、正常结果比较、运行时存证与源码重放路径。 没有观察到输出分歧或未完成比较，也没有启动归约。

这 100 个样本不计入申报书要求的 10,000 个样本及其中 1,000 例五配置实验。 原始逐样本记录未随源码发布；本文给出固定版本、输入条件、复现方法和汇总结果， 不提供原始数据下载。独立复测应保留新的生效配置、逐样本观察和任务汇总。
