|
|
e404746612
|
refactor(mir): Phase 139-P3-B - RoutingDecision を enum 対応 + レガシー削除
- RoutingDecision の missing_caps を Vec<CapabilityTag> に変更(型安全化)
- error_tags は to_tag() メソッドで自動生成
- 全 callsite を enum variant に修正
- capability_tags モジュール(文字列定数群)を完全削除
- 全テスト PASS(型安全性向上を確認)
- フォーマット適用
|
2025-12-16 07:02:14 +09:00 |
|
|
|
9170f0a85d
|
refactor(mir): Remove VariableContext legacy fields (Phase 2-6/7)
完全移行→削除の安全順序(Option C)に従い、VariableContext の
deprecated フィールドと sync helpers を完全削除。
## Changes
- Migrated all 66+ access sites to variable_ctx.variable_map
- Removed 1 deprecated field (variable_map) from MirBuilder
- Removed 2 sync helpers (sync_variable_ctx_to_legacy, sync_legacy_to_variable_ctx)
- Fixed BoxCompilationContext.variable_map references (kept as-is, different scope)
- Fixed ExitBindingBuilder.variable_map references (kept as-is, local field)
- Updated observer.rs to use variable_map() accessor method
## JoinIR Integration Verified
- CarrierInfo::from_variable_map() works correctly
- ExitLine contract maintained (Phase 132-135)
- NYASH_TRACE_VARMAP debug support preserved
- Pattern 1-5 lowering all functional
## Tests
- cargo test --release --lib: 1033 passed, 0 failed
- phase135_trim_mir_verify.sh: PASS (MIR SSA/ValueId OK)
- cargo build --release: SUCCESS
- Deprecation warnings: reduced (86 remaining, from other contexts)
## Statistics
- 27 files changed
- 146 insertions(+), 174 deletions(-)
- Net: -28 lines
Phase 2 Progress: 6/7 contexts complete (86%)
- ✅ MetadataContext
- ✅ CoreContext
- ✅ TypeContext
- ✅ ScopeContext
- ✅ BindingContext
- ✅ VariableContext (this commit)
- ⏳ CompilationContext (Phase 2-7 next)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2025-12-16 03:48:44 +09:00 |
|
|
|
44b20bfe28
|
fix(mir): Complete ScopeContext migration (Phase 2-4 補完)
Phase 2-4 で移行漏れがあったファイルを修正。
## Changes
- Fixed all remaining compilation errors from incomplete Phase 2-4 migration
- Updated access sites to use scope_ctx.* for 7 legacy fields:
1. current_function → scope_ctx.current_function
2. lexical_scope_stack → scope_ctx.lexical_scope_stack
3. if_merge_stack → scope_ctx.if_merge_stack
4. debug_scope_stack → scope_ctx.debug_scope_stack
- Updated visibility of ScopeContext to pub(in crate::mir) for cross-module access
- Removed dual-write legacy code in lexical_scope.rs, builder.rs
- Updated documentation comments in phi_helpers.rs
## Files Modified (20 files)
Core access migration:
- src/mir/builder/method_call_handlers.rs
- src/mir/builder/control_flow/joinir/routing.rs
- src/mir/builder/control_flow/joinir/merge/loop_header_phi_builder.rs
- src/mir/builder/if_form.rs
- src/mir/builder/ops.rs (4 occurrences)
- src/mir/builder/observe/resolve.rs (2 occurrences)
- src/mir/builder/observe/ssa.rs
- src/mir/builder/receiver.rs
- src/mir/loop_api.rs (3 occurrences)
- src/mir/region/observer.rs (3 occurrences)
- src/mir/utils/control_flow.rs
- src/mir/utils/phi_helpers.rs (4 occurrences + docs)
Dual-write removal:
- src/mir/builder/vars/lexical_scope.rs (push/pop/declare)
- src/mir/builder.rs (if_merge, debug_scope, emit_instruction)
Visibility updates:
- src/mir/builder/scope_context.rs (struct + fields)
## Tests
- cargo build --release: SUCCESS (0 errors, 191 warnings)
- Phase 2-4 migration now fully complete
- Note: Test failures exist but are unrelated (Phase 2-5 binding_map issue)
Phase 2-4 now fully complete ✅
|
2025-12-16 03:33:56 +09:00 |
|
|
|
f9d100ce01
|
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>
|
2025-11-21 06:25:17 +09:00 |
|
|
|
73844dbe04
|
feat(builder): CalleeBoxKind構造ガードで静的/ランタイムBox混線を根絶
🎯 箱理論の実践: 「境界を作る」原則による構造レベル分離
## 問題
- StageBArgsBox.resolve_src内のargs.get(i)が
Stage1UsingResolverBox.getに化ける(静的Box名混入)
- 未定義ValueIdエラー発生(receiver定義なし)
## 解決策(構造ガード)
✅ CalleeBoxKind enum追加
- StaticCompiler: Stage-B/Stage-1コンパイラBox
- RuntimeData: MapBox/ArrayBox等ランタイムBox
- UserDefined: ユーザー定義Box
✅ classify_box_kind(): Box名から種別判定
- 静的Box群を明示的に列挙(1箇所に集約)
- ランタイムBox群を明示的に列挙
- 将来の拡張も容易
✅ apply_static_runtime_guard(): 混線検出・正規化
- me-call判定(receiver型==box_name → 静的降下に委ねる)
- 真の混線検出(receiver型≠box_name → 正規化)
- トレースログで可視化
## 効果
- 修正前: Invalid value ValueId(150/187)
- 修正後: Unknown method 'is_space' (別issue、StringBox実装不足)
- → 静的Box名混入問題を根絶!
## 箱理論原則
- ✅ 境界を作る: Static/Runtime/UserDefinedを構造的に分離
- ✅ Fail-Fast: フォールバックより明示的エラー
- ✅ 箱にする: CalleeBoxKindでBox種類を1箇所に集約
## ファイル
- src/mir/definitions/call_unified.rs: CalleeBoxKind enum
- src/mir/builder/calls/call_unified.rs: classify_box_kind()
- src/mir/builder/calls/emit.rs: apply_static_runtime_guard()
- docs/development/roadmap/phases/phase-25.1d/README.md: 箱化メモ更新
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-17 23:13:57 +09:00 |
|
|
|
06159da58b
|
wip(recv): emit_unified_call で最終LocalSSA試行(未完)
- builder_calls.rs の emit_unified_call 末尾で recv 再materialize
- しかし MIR に Copy が反映されない問題が残る
- 次: emit_instruction 側に責務を移す構造的修正へ
|
2025-11-17 07:58:44 +09:00 |
|