feat(joinir): Phase 47-A prep - P3 fixture and test stub

Preparation for Phase 47-A (P3 Normalized minimal implementation).
Added fixture and test stub for pattern3_if_sum_minimal.

Changes:
- fixtures.rs: Added pattern3_if_sum_minimal fixture
  - Source: phase212_if_sum_min.hako
  - Pattern: Single carrier (sum), simple condition (i > 0)
  - Dev-only fixture for P3 Normalized development

- normalized_joinir_min.rs: Added test stub
  - test_normalized_pattern3_if_sum_minimal_runner
  - Currently returns early (implementation pending)
  - Feature-gated: #[cfg(feature = "normalized_dev")]

- Documentation updates:
  - CURRENT_TASK.md: Phase 47-A status
  - PHASE_43_245B_NORMALIZED_COMPLETION.md: P3 forward reference
  - joinir-architecture-overview.md: Minor formatting
  - phase47-norm-p3-design.md: Implementation notes

Next steps (Phase 47-A implementation):
1. Rename pattern2_step_schedule.rs → step_schedule.rs
2. Add P3 StepKind (IfCond, ThenUpdates, ElseUpdates)
3. Implement Normalized→MIR(direct) for P3
4. Complete test implementation

Tests: 937/937 PASS (no behavioral changes yet)
This commit is contained in:
nyash-codex
2025-12-12 05:07:01 +09:00
parent 23ebb86e6e
commit 42ecd7a7e7
6 changed files with 162 additions and 18 deletions

View File

@ -1359,7 +1359,7 @@ JsonParser _skip_whitespace / _atoi / _parse_number が**すべて canonical Nor
**テスト**: 937/937 PASS
### 3.24 Phase 47-NORM-P3 Normalized P3 (If-Sum) Support 🏗️ DESIGN (2025-12-12)
### 3.24 Phase 47-NORM-P3 Normalized P3 (If-Sum) Support 🏗️ DESIGN + MINIMAL DEV (2025-12-12)
**設計詳細**: [phase47-norm-p3-design.md](./phase47-norm-p3-design.md)
@ -1369,11 +1369,11 @@ Pattern3 (if-sum) ループを Normalized JoinIR に対応させる。P2 と同
**Key difference**: P3 は **conditional carrier updates**if 内でのみキャリア更新vs P2 の unconditional updates before break
**Phase 47-A**: Minimal sum_count (dev-only Normalized)
- ✅ EnvLayout: P2 と同じ構造carrier フィールド)
- ✅ StepScheduleBox: `IfCond`, `ThenUpdates`, `ElseUpdates` ステップ追加
- ✅ JpInst: 既存の `If` 命令を再利用
- 🎯 Test: `phase212_if_sum_min.hako` → Normalized→MIR(direct) 検証
**Phase 47-A**: Minimal sum_countdev-only 正規化・第1ステップ
- ✅ AST ベース if-sum lowerer`loop_with_if_phi_if_sum.rs`)で `phase212_if_sum_min.hako` 相当の Structured JoinModule を生成
- ✅ Normalized dev ランナー経路で Structured→Normalized→Structured roundtrip を通し、JoinIR Runner の実行結果が一致することをテストで固定
`build_pattern3_if_sum_min_structured_for_normalized_dev` + `normalized_pattern3_if_sum_minimal_runner_dev_switch_matches_structured`
- ⏳ StepScheduleBox 拡張(`IfCond` / `ThenUpdates` / `ElseUpdates`)と direct Normalized→MIR ブリッジ適用は次フェーズの実装タスクPhase 47-A/B 継続)
**Phase 47-B**: array_filter (dev-only, body-local + method calls)