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

@ -1,6 +1,6 @@
# Phase 47: Normalized P3 (If-Sum) Design
**Status**: Design Complete, Implementation Planned
**Status**: Design Complete, Minimal Dev Test Implemented
**Date**: 2025-12-12
## Goal
@ -272,7 +272,7 @@ pub enum JpInst {
### Phase 47-A: Minimal
**Test**: `test_normalized_pattern3_if_sum_minimal`
**Test (runner-based, implemented)**: `normalized_pattern3_if_sum_minimal_runner_dev_switch_matches_structured`
```rust
#[cfg(feature = "normalized_dev")]
@ -294,16 +294,13 @@ fn test_normalized_pattern3_if_sum_minimal() {
print("count = " + count.to_string())
"#;
// Compare Structured→MIR vs Normalized→MIR(direct)
assert_vm_output_matches(source);
// 現在は Runner ベースで Structured→Normalized→Structured roundtrip のみ実装済み。
// VM Bridge での Normalized→MIR(direct) 比較は後続ステップ。
}
```
**Expected output**:
```
sum = 6 (1 + 3 + 5)
count = 3
```
**Expected output**phase212_if_sum_min.hako 相当):
`sum = 2`3 回中 2 回加算)
### Phase 47-B: array_filter