---
generated_at: 2026-02-17 13:00:00
metrics:
  claims_total: 48
  claims_with_evidence: 48
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：10-モジュールグラフ管理

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：48 / 48、根拠なし：0
- 優先レビュー（高）
  1. なし（全て根拠あり）

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `compiler/modulegraphs.nim` - モジュールグラフメインモジュール
- E-02: `機能一覧.csv` - 機能定義
- E-03: `compiler/modulegraphs.nim` 10-12行目 - モジュール説明コメント
- E-04: `compiler/modulegraphs.nim` 28行目 - SigHash定義
- E-05: `compiler/modulegraphs.nim` 30-38行目 - Iface定義
- E-06: `compiler/modulegraphs.nim` 40-43行目 - Operators定義
- E-07: `compiler/modulegraphs.nim` 44-55行目 - PipelinePass定義
- E-08: `compiler/modulegraphs.nim` 57-127行目 - ModuleGraph定義
- E-09: `compiler/modulegraphs.nim` 129-140行目 - TPassContext/TPass定義
- E-10: `compiler/modulegraphs.nim` 142-154行目 - resetForBackend関数
- E-11: `compiler/modulegraphs.nim` 190-199行目 - interfSelect/semtabテンプレート
- E-12: `compiler/modulegraphs.nim` 201-207行目 - initStrTables/strTableAdds関数
- E-13: `compiler/modulegraphs.nim` 221-228行目 - initModuleIter/nextModuleIter関数
- E-14: `compiler/modulegraphs.nim` 230-238行目 - allSyms/someSym関数
- E-15: `compiler/modulegraphs.nim` 248-256行目 - systemModuleSym関数
- E-16: `compiler/modulegraphs.nim` 271-282行目 - getAttachedOp関数
- E-17: `compiler/modulegraphs.nim` 284-300行目 - setAttachedOp関数
- E-18: `compiler/modulegraphs.nim` 309-315行目 - getDispatchers/addDispatchers関数
- E-19: `compiler/modulegraphs.nim` 329-336行目 - getMethodsPerType/getToStringProc関数
- E-20: `compiler/modulegraphs.nim` 349-354行目 - addMethodToGeneric関数
- E-21: `compiler/modulegraphs.nim` 373-399行目 - loadCompilerProc関数
- E-22: `compiler/modulegraphs.nim` 437-478行目 - uniqueModuleName関数
- E-23: `compiler/modulegraphs.nim` 480-493行目 - registerModule/registerModuleById関数
- E-24: `compiler/modulegraphs.nim` 495-512行目 - initOperators関数
- E-25: `compiler/modulegraphs.nim` 514-546行目 - initModuleGraphFields/newModuleGraph関数
- E-26: `compiler/modulegraphs.nim` 549-560行目 - resetAllModules関数
- E-27: `compiler/modulegraphs.nim` 562-569行目 - getModule/moduleOpenForCodegen関数
- E-28: `compiler/modulegraphs.nim` 571-582行目 - dependsOn/addDep/addIncludeDep関数
- E-29: `compiler/modulegraphs.nim` 584-600行目 - parentModule/transitiveClosure関数
- E-30: `compiler/modulegraphs.nim` 602-616行目 - markDirty/unmarkAllDirty/isDirty関数
- E-31: `compiler/modulegraphs.nim` 618-649行目 - markClientsDirty/needsCompilation関数
- E-32: `compiler/modulegraphs.nim` 656-699行目 - moduleFromNifFile関数
- E-33: `compiler/modulegraphs.nim` 705-713行目 - onProcessing関数
- E-34: `compiler/modulegraphs.nim` 715-728行目 - getPackage/belongsToStdlib関数

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | モジュールグラフはNimプロジェクト全体を表現 | E-03（10-12行目） | ○ |
| C-02 | 単一モジュールはRAMまたはrod-fileで保持可能 | E-03（11-12行目） | ○ |
| C-03 | SigHashはMD5Digestのdistinct型 | E-04 | ○ |
| C-04 | Ifaceはmodule/converters/patterns等を保持 | E-05 | ○ |
| C-05 | interfとinterfHiddenで公開/非公開シンボル管理 | E-05（36-37行目） | ○ |
| C-06 | Operatorsで演算子シンボル保持 | E-06 | ○ |
| C-07 | PipelinePassでコンパイルパス種別定義 | E-07 | ○ |
| C-08 | SemPass/JSgenPass/CgenPass等がある | E-07（46-55行目） | ○ |
| C-09 | ModuleGraphはifacesでモジュール管理 | E-08（58行目） | ○ |
| C-10 | typeInstCacheで型インスタンスキャッシュ | E-08（60行目） | ○ |
| C-11 | procInstCacheでプロシージャインスタンスキャッシュ | E-08（61行目） | ○ |
| C-12 | attachedOpsでアタッチ演算子管理 | E-08（62行目） | ○ |
| C-13 | depsで依存関係グラフ管理 | E-08（72行目） | ○ |
| C-14 | importStackでインポートスタック管理 | E-08（80行目） | ○ |
| C-15 | systemModuleでsystemモジュール保持 | E-08（99行目） | ○ |
| C-16 | compilerprocsでコンパイラプロシージャ保持 | E-08（101行目） | ○ |
| C-17 | cacheSeqs/cacheCounters/cacheTablesでマクロキャッシュ | E-08（109-111行目） | ○ |
| C-18 | idgenでID生成 | E-08（120行目） | ○ |
| C-19 | nifReplayActionsでNIFリプレイアクション管理 | E-08（126行目） | ○ |
| C-20 | TPassはopen/process/close/isFrontendのタプル | E-09（137-140行目） | ○ |
| C-21 | resetForBackendでバックエンド用リセット | E-10 | ○ |
| C-22 | interfSelectでimportHiddenに応じてテーブル選択 | E-11（190-193行目） | ○ |
| C-23 | semtabでモジュールのシンボルテーブル取得 | E-11（195-199行目） | ○ |
| C-24 | initStrTablesで両テーブル初期化 | E-12（201-203行目） | ○ |
| C-25 | initModuleIterでモジュールイテレータ初期化 | E-13（221-225行目） | ○ |
| C-26 | allSymsでモジュールの全シンボル列挙 | E-14（230-234行目） | ○ |
| C-27 | someSymでシンボル検索 | E-14（236-238行目） | ○ |
| C-28 | systemModuleSymでsystemモジュールからシンボル取得 | E-15（248-249行目） | ○ |
| C-29 | getAttachedOpでアタッチ演算子取得 | E-16 | ○ |
| C-30 | NIF用にloadedOpsからフォールバック | E-16（276-280行目） | ○ |
| C-31 | setAttachedOpでアタッチ演算子設定 | E-17 | ○ |
| C-32 | opsLogに記録（NIF出力用） | E-17（294行目） | ○ |
| C-33 | getDispatchersでディスパッチャ列挙 | E-18（309-311行目） | ○ |
| C-34 | addDispatchersでディスパッチャ追加 | E-18（313-315行目） | ○ |
| C-35 | getMethodsPerTypeでメソッド取得 | E-19（329-332行目） | ○ |
| C-36 | getToStringProcで文字列化プロシージャ取得 | E-19（334-336行目） | ○ |
| C-37 | addMethodToGenericでジェネリック型にメソッド追加 | E-20 | ○ |
| C-38 | loadCompilerProcでコンパイラプロシージャ読み込み | E-21 | ○ |
| C-39 | NIF用にtryResolveCompilerProcでフォールバック | E-21（384-386行目） | ○ |
| C-40 | uniqueModuleNameで一意なモジュール名生成 | E-22 | ○ |
| C-41 | registerModuleでモジュール登録 | E-23 | ○ |
| C-42 | ifacesを拡張しIface初期化 | E-23（484-490行目） | ○ |
| C-43 | initOperatorsで演算子シンボル初期化 | E-24 | ○ |
| C-44 | initModuleGraphFieldsでテーブル初期化 | E-25（514-540行目） | ○ |
| C-45 | dependsOnで(a shl 15) + bエンコード | E-28（571行目） | ○ |
| C-46 | addDepで依存関係追加 | E-28（573-579行目） | ○ |
| C-47 | markDirtyでモジュールをdirtyマーク | E-30（602-607行目） | ○ |
| C-48 | markClientsDirtyで依存モジュールもdirty | E-31（618-629行目） | ○ |

## 4) 不足情報（Unknown / Missing）
- なし（全ての主張に根拠あり）

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全ての主張がソースコードで確認可能

## 6) レビュアーチェックリスト（最小）
- [ ] ModuleGraphの各フィールドの役割が正確か確認
- [ ] Iface型のinterf/interfHiddenの使い分けが正確か確認
- [ ] 依存関係エンコード（dependsOn）の仕組みが正確か確認
- [ ] アタッチ演算子管理（getAttachedOp/setAttachedOp）が正確か確認
- [ ] nimsuggest用の差分コンパイル（markDirty/needsCompilation）が正確か確認
- [ ] コードリーディングガイドの行番号が現在のソースコードと一致するか確認
- [ ] NIF連携（loadedOps、nifReplayActions）の説明が正確か確認
