docs: close RC-039 and record Code-First v4
This commit is contained in:
47
docs/报告/CM95_S52_OpenCPN渲染流程对照审计报告_v4.md
Normal file
47
docs/报告/CM95_S52_OpenCPN渲染流程对照审计报告_v4.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# CM95 S-52 OpenCPN 渲染流程对照审计报告 v4
|
||||
|
||||
日期:2026-09-21。固定 OpenCPN baseline:f7211b4e1874c453e37a7f190aa191c55a25c32e。
|
||||
|
||||
## 1. 结论
|
||||
|
||||
RC-039 修复后,206 条 branch 重新判定为:
|
||||
|
||||
| PASS | FAIL | NOT_PROVEN | 合计 |
|
||||
|---:|---:|---:|---:|
|
||||
| 121 | 0 | 85 | 206 |
|
||||
|
||||
Branch 层面的确认 FAIL 已清零。Target Portrayal 仍为 FAIL,原因不是 branch FAIL,而是 Gate A 仍 FAIL,Gate F/G/I 仍为 NOT_PROVEN。
|
||||
|
||||
## 2. RC-039 正确根因
|
||||
|
||||
v3 residual 将问题解释为“DEPCNT02 应先把 DRVAL2<=DRVAL1 规范化为 DRVAL1+0.01”,该解释不符合固定 OpenCPN 源码。
|
||||
|
||||
固定源码真实控制流是:当 DRVAL1 <= safety_contour 时,只检查 DRVAL2 >= safety_contour;只有 DRVAL1 > safety_contour 时,才进入 outer else 并比较 chart next-safe-contour。
|
||||
|
||||
CM95 原实现把这个嵌套 if/else 压平成 if/elif,导致 DRVAL1=2, DRVAL2=2, safety=3, chart_next=2 被错误提升为 safety contour。
|
||||
|
||||
修复后 Python 与 Web runtime witness 均 PASS。
|
||||
|
||||
## 3. Release 影响
|
||||
|
||||
完整扫描当前九州 v5 的 5064 个 PBF,s52_runtime_csp=DEPCNT02 且 s52_source_object_class=DEPARE 的 feature 数为 0。因此当前 release 没有实际受影响对象,本次无需重建九州 release;代码修复保证未来出现该分支时行为与 OpenCPN 一致。
|
||||
|
||||
## 4. Gate A-I
|
||||
|
||||
| Gate | 状态 | 结论 |
|
||||
|---|---|---|
|
||||
| A OPENCPN_FLOW_EQUIVALENCE | FAIL | $AREAS II25→BACKGROUND normalization remains absent; lookup '?' scoring/numeric/fallback semantics are not fully identical to the fixed parser. |
|
||||
| B CSP_BRANCH_EQUIVALENCE | PASS | All 206 branch rows have no remaining confirmed CSP branch mismatch after the RC-039 DEPCNT control-flow fix. |
|
||||
| C NESTED_CSP_CALL_GRAPH | PASS | Phase A/C witnesses prove ordered OBSTRN/WRECKS quality, name and sounding suffix expansion. |
|
||||
| D INSTRUCTION_SEQUENCE_EQUIVALENCE | PASS | Versioned mixed-opcode rule IR preserves lookup+CSP order and structured TX operands. |
|
||||
| E RUNTIME_OPCODE_COVERAGE | PASS | Generic executor and specialized SOUNDG/LIGHTS/CA paths execute the required ordered opcodes; missing DANGER53 does not discard the suffix. |
|
||||
| F REAL_DATA_BRANCH_COVERAGE | NOT_PROVEN | The v5 release is complete, but delivery fields do not uniquely reconstruct every source predicate/association/view state. |
|
||||
| G RESOURCE_DEPENDENCY_EQUIVALENCE | NOT_PROVEN | The local resource contract passes, but the fixed OpenCPN snapshot contains no independent chartsymbols.xml; DANGER53/LOWACC03 equivalence remains unprovable. |
|
||||
| H MARINER_DEPENDENCY_EQUIVALENCE | PASS | Mariner-dependent depth/height/boundary/category/SCAMIN paths are covered by phase witnesses plus the corrected DEPCNT DEPARE safety-contour control flow. |
|
||||
| I RENDER_ORDER_EQUIVALENCE | NOT_PROVEN | OP no-op and multi-LS execution are corrected; cross-object/global pass interleaving is still outside the available snapshot and witnesses. |
|
||||
|
||||
## 5. 交付
|
||||
|
||||
- 机器审计:build/audits/cm95_s52_opencpn_code_first_equivalence_v4.json
|
||||
- RC-039 证据:build/audits/cm95_s52_rc039_depcnt_control_flow_fix_v1.json
|
||||
- 代码 commit:1dbe1fde07ed64b39893de7d7e6ec5ce77cab871
|
||||
17
docs/报告/CM95_S52_RC039_DEPCNT控制流修复报告_v1.md
Normal file
17
docs/报告/CM95_S52_RC039_DEPCNT控制流修复报告_v1.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# CM95 S-52 RC-039 DEPCNT 控制流修复报告 v1
|
||||
|
||||
日期:2026-09-21。
|
||||
|
||||
## 结论
|
||||
|
||||
RC-039 已修复并通过 Python / Web runtime 双 witness。正确根因是 OpenCPN 嵌套 if/else 在 CM95 中被错误压平成 if/elif,不是 DRVAL2 的 +0.01 规范化问题。
|
||||
|
||||
- Branch:DC-DEC-DEP-LOW
|
||||
- 修复 commit:1dbe1fde07ed64b39893de7d7e6ec5ce77cab871
|
||||
- Python witness:PASS
|
||||
- Web runtime witness:PASS
|
||||
- 当前九州 v5 release 受影响 feature:0
|
||||
- Code-First v4:PASS 121 / FAIL 0 / NOT_PROVEN 85
|
||||
- Gate B:PASS
|
||||
- Gate H:PASS
|
||||
- Target Portrayal:FAIL(Gate A 仍 FAIL;Gate F/G/I 为 NOT_PROVEN)
|
||||
Reference in New Issue
Block a user