feat(joinir): Phase 197 lightweight loops E2E validation complete

Verified JoinIR infrastructure on production-ready lightweight loops:

Test Results (4/5 E2E PASS, 1/5 routing confirmed):
- phase195_sum_count.hako (P3 multi-carrier): 93 
- loop_if_phi.hako (P3 single-carrier): sum=9 
- loop_min_while.hako (P1): 0,1,2 
- phase182_match_literal.hako (P1): MATCH 
- _skip_whitespace (P2): routing whitelisted 

Key Findings:
- No [joinir/freeze] messages - all loops route through JoinIR mainline
- Zero regressions on Phase 190-196 tests
- Pattern detection (P1/P2/P3) working correctly

Documentation Updates:
- phase197-lightweight-loops-deployment.md: Implementation Results
- joinir-architecture-overview.md: Deployment status table (7/13 = 54%)
- CURRENT_TASK.md: Phase 197 marked complete

Coverage: 7/13 JsonParser loops JoinIR-enabled (54%)
Deferred: 6 loops (ConditionEnv, complex carriers, multiple MethodCalls)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
nyash-codex
2025-12-09 15:28:49 +09:00
parent 845715a822
commit f47fa9a7a8
3 changed files with 140 additions and 13 deletions

View File

@ -536,8 +536,43 @@ JoinIR は Rust 側だけでなく、将来的に .hako selfhost コンパイラ
- **E2E 結果**: phase195_sum_count.hako → 93 ✅
- 詳細: phase196-select-bug-analysis.md
6. **JsonParser 残り複雑ループへの適用Phase 197+, 200+**
6. **✅ JoinIR 実戦適用(軽量ループ検証)** → Phase 197 完了 ✅
- 目的: Phase 196 までの安定基盤を実戦の小さいループで検証
- 対象ループ5本:
1. `_match_literal` (P1) - JsonParser 単純 while ✅
2. `_skip_whitespace` (P2) - JsonParser break パターン ✅
3. `phase195_sum_count.hako` (P3 multi-carrier) ✅
4. `loop_if_phi.hako` (P3 single-carrier) ✅
5. `loop_min_while.hako` (P1 minimal) ✅
- 結果:
- [x] routing 確認: 全ループ whitelisted ✅
- [x] E2E 実行: 4/5 ループで期待値出力、1/5 routing 確認 ✅
- [x] 退行なし: Phase 190-196 テスト全 PASS ✅
- 詳細: phase197-lightweight-loops-deployment.md
7. **JsonParser/selfhost 実戦 JoinIR 適用状況** (2025-12-09 更新)
| Function | Pattern | Status | Note |
|----------|---------|--------|------|
| `_match_literal` | P1 | ✅ JoinIR OK | Phase 197 検証済みE2E PASS|
| `_skip_whitespace` | P2 | ✅ JoinIR OK | Phase 197 routing 確認whitelisted|
| `_trim` (leading) | P5 | ✅ JoinIR OK | Phase 173 実証済み |
| `_trim` (trailing) | P5 | ✅ JoinIR OK | Phase 173 実証済み |
| `phase195_sum_count` | P3 | ✅ JoinIR OK | Phase 196 検証済みmulti-carrier|
| `loop_if_phi` | P3 | ✅ JoinIR OK | Phase 196 検証済みsingle-carrier|
| `loop_min_while` | P1 | ✅ JoinIR OK | Phase 165 基本検証済み |
| `_parse_number` | P2 | ⚠️ Deferred | ConditionEnv 制約Phase 200+|
| `_atoi` | P2 | ⚠️ Deferred | ConditionEnv 制約Phase 200+|
| `_parse_string` | P3 | ⚠️ Deferred | 複雑キャリアPhase 195+ 拡張後)|
| `_unescape_string` | P3 | ⚠️ Deferred | 複雑キャリアPhase 195+ 拡張後)|
| `_parse_array` | - | ⚠️ Deferred | 複数 MethodCallPhase 195+|
| `_parse_object` | - | ⚠️ Deferred | 複数 MethodCallPhase 195+|
**Coverage**: 7/13 ループ JoinIR 対応済み54%
**Verification**: 4/7 ループ E2E PASS、3/7 structural/routing 確認済み
8. **JsonParser 残り複雑ループへの適用Phase 198+, 200+**
- Phase 200+: ConditionEnv 拡張 (function-scoped variables) → _parse_number, _atoi
- Phase 195+: Pattern 3 拡張 (multi-flag carriers) → _parse_string, _unescape_string
- Phase 195+: MethodCall 拡張 (multiple calls in body) → _parse_array, _parse_object
- Phase 198+: Pattern 3 拡張 (multi-flag carriers) → _parse_string, _unescape_string
- Phase 198+: MethodCall 拡張 (multiple calls in body) → _parse_array, _parse_object
- selfhost `.hako` コンパイラの全ループを JoinIR で処理 (Phase 210+)