Integrates ConditionEnv infrastructure into if-sum lowerer to support variable conditions like `loop(i < len)`. ## Implementation (Following Pattern 2) ### ConditionEnv Construction - Added early construction via ConditionEnvBuilder::build_for_break_condition_v2() - Extracts condition variables from loop condition AST - Creates ConditionBindings for HOST↔JoinIR ValueId mapping ### Variable Support - Created ValueOrLiteral enum (Literal(i64) | Variable(String, ValueId)) - Added extract_value_or_variable() with ConditionEnv lookup - Updated extract_loop_condition() and extract_if_condition() ### JoinIR Generation Updates - Condition-only variables as loop_step function parameters - Proper parameter passing in recursive calls - Condition ValueIds in JoinIR param region (100+) ### Boundary Builder Wiring - Pass condition_bindings to JoinInlineBoundaryBuilder - Updated call site in pattern3_with_if_phi.rs - Added variable_map, loop_var_name, loop_var_id parameters ## Build Status ✅ Compilation successful (0 errors, 3 warnings) ## Test Status ⏳ Tests not yet passing - remap issue identified: - HOST: len = ValueId(6) - JoinIR: len = ValueId(101) - After Merge: len = ValueId(10) ❌ Root cause: JoinIRConversionPipeline remap needs investigation ## Files Modified - src/mir/join_ir/lowering/loop_with_if_phi_if_sum.rs (+80 lines) - ConditionEnv construction - Variable support in conditions - Updated function signatures - src/mir/builder/control_flow/joinir/patterns/pattern3_with_if_phi.rs (+10 lines) - Pass builder/loop_var to lowerer - Wire condition_bindings ## Design Principles 1. Reuse Existing Boxes (ConditionEnv/ConditionBinding) 2. Follow Pattern 2 Structure (proven blueprint) 3. Fail-Fast (variable not in ConditionEnv → error) 4. ParamRole::Condition Routing (separate from carriers) ## Next Steps: Phase 220-C Fix remap issue in JoinIRConversionPipeline to properly use condition_bindings.host_value during merge. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Nyash Development Documentation 🔧
開発者向けの進行中タスクと開発計画ドキュメントです。
📂 ディレクトリ構造
current/
CURRENT_TASK.md- 現在進行中のタスク- アクティブな開発作業の詳細
- 最新の実装状況
roadmap/
- phases/ - フェーズ別開発計画
- phase-8/ - AST→MIR変換
- phase-9/ - VM/JIT実装
- phase-10/ - AOT最適化
- native-plan/ - ネイティブビルド計画
- 実行バックエンド統合
- パフォーマンス目標
proposals/
- RFC(Request for Comments)
- 新機能提案
- 設計ディスカッション
🎯 重要な参照先
- 進行状況:
current/CURRENT_TASK.md - 開発計画:
roadmap/phases/ - 技術提案:
proposals/
📝 注意事項
このディレクトリの内容は開発中であり、頻繁に変更されます。
安定した仕様はreference/を参照してください。