chore: Phase 25.1 完了 - LoopForm v2/Stage1 CLI/環境変数削減 + Phase 26-D からの変更
Phase 25.1 完了成果: - ✅ LoopForm v2 テスト・ドキュメント・コメント完備 - 4ケース(A/B/C/D)完全テストカバレッジ - 最小再現ケース作成(SSAバグ調査用) - SSOT文書作成(loopform_ssot.md) - 全ソースに [LoopForm] コメントタグ追加 - ✅ Stage-1 CLI デバッグ環境構築 - stage1_cli.hako 実装 - stage1_bridge.rs ブリッジ実装 - デバッグツール作成(stage1_debug.sh/stage1_minimal.sh) - アーキテクチャ改善提案文書 - ✅ 環境変数削減計画策定 - 25変数の完全調査・分類 - 6段階削減ロードマップ(25→5、80%削減) - 即時削除可能変数特定(NYASH_CONFIG/NYASH_DEBUG) Phase 26-D からの累積変更: - PHI実装改善(ExitPhiBuilder/HeaderPhiBuilder等) - MIRビルダーリファクタリング - 型伝播・最適化パス改善 - その他約300ファイルの累積変更 🎯 技術的成果: - SSAバグ根本原因特定(条件分岐内loop変数変更) - Region+next_iパターン適用完了(UsingCollectorBox等) - LoopFormパターン文書化・テスト化完了 - セルフホスティング基盤強化 Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: ChatGPT <noreply@openai.com> Co-Authored-By: Task Assistant <task@anthropic.com>
This commit is contained in:
@ -9,6 +9,18 @@
|
||||
// - ctx.using_paths: Array<String>(将来のヒント/本箱では純粋合成のみ)
|
||||
// - ctx.cwd: String(相対の基準)
|
||||
|
||||
// Quick README (Phase 25.1 using設計)
|
||||
// - 役割: using 解決の唯一の窓口(SSOT)。parser/Stage‑B/Stage‑1 は IO や名前探索をここに委譲する。
|
||||
// - I/F:
|
||||
// - resolve(name, ctx) -> path|null : modules/cwd/using_paths から純粋に合成して返す(IOなし)。
|
||||
// - resolve_modules(modules_json, using_entries_json, ctx) -> modules_json_resolved|null :
|
||||
// modules_json(nyash.toml 相当)と using_entries_json(UsingCollector 出力)を突き合わせ、
|
||||
// 「解決済み modules_json」(同名重複などの調停結果)を返す。IOなし。
|
||||
// - resolve_prefix(using_entries_json, modules_json, ctx) -> prefix_string :
|
||||
// using_entries_json を modules_json を使ってパス解決し、ファイル読まずに
|
||||
// 「prefix 文字列(空でよい)を組み立てるための情報」を返すスコープ(MVPは空文字返しでOK)。
|
||||
// - ポリシー: IO/ファイル読み込みは絶対にしない。より重い処理は entry/pipeline 側の責務。
|
||||
|
||||
static box UsingResolveSSOTBox {
|
||||
/// Resolve a module name to a file path string (or null when not found).
|
||||
/// name: requested module name (e.g., "hako.mir.builder.internal.lower_return_int")
|
||||
@ -55,4 +67,16 @@ static box UsingResolveSSOTBox {
|
||||
if base.endsWith("/") { return base + leaf }
|
||||
return base + "/" + leaf
|
||||
}
|
||||
|
||||
// Merge modules_json + using_entries_json into resolved modules table (pure, no IO).
|
||||
resolve_modules(modules_json, using_entries_json, ctx) {
|
||||
// MVP: just echo back modules_json (keep behavior unchanged) to establish interface.
|
||||
return modules_json
|
||||
}
|
||||
|
||||
// Build prefix string from using_entries_json with modules_json (pure, no IO).
|
||||
resolve_prefix(using_entries_json, modules_json, ctx) {
|
||||
// MVP: no file read, so prefix is empty. Interface is reserved for Stage‑1 entry.
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user