docs: Phase 88-89 完了 + Phase 90 P0 追加

## CURRENT_TASK.md
- Phase 88-89 完了を反映
- Phase 90 P0 追加(_parse_string 合成 fixture)
- P1/P2 候補を Phase 91/92 に繰り上げ
- 最終更新: 2025-12-14

## 10-Now.md
- Phase 88 到達点を追記(continue + 可変ステップ)
- Phase 89 P0/P1 到達点を追記(ContinueReturn detector + lowering)
- 未検証の断定は書かない(dev-only fixture で固定、と明記)

Impact:
- 正確な進捗記録
- Phase 90 の明確な方針(fixture → detector → lowering)

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
nyash-codex
2025-12-14 02:31:39 +09:00
parent 730a80f33f
commit 5b5f3b55d4
2 changed files with 88 additions and 41 deletions

View File

@ -4,7 +4,7 @@
詳細は `docs/development/current/main/` 以下の各 Phase 文書と、JoinIR の SSOT である 詳細は `docs/development/current/main/` 以下の各 Phase 文書と、JoinIR の SSOT である
`docs/development/current/main/joinir-architecture-overview.md` を参照してね。 `docs/development/current/main/joinir-architecture-overview.md` を参照してね。
最終更新: 2025-12-13 最終更新: 2025-12-14
過去ログ(肥大化した旧 CURRENT_TASKはここに退避したよ: 過去ログ(肥大化した旧 CURRENT_TASKはここに退避したよ:
- `docs/development/current/main/CURRENT_TASK_ARCHIVE_2025-12-13.md` - `docs/development/current/main/CURRENT_TASK_ARCHIVE_2025-12-13.md`
@ -17,8 +17,9 @@
- Pattern2 の promoted carriersDigitPos/Trimについて ExitLine 契約ConditionOnly を exit PHI から除外)を E2E で固定済み。 - Pattern2 の promoted carriersDigitPos/Trimについて ExitLine 契約ConditionOnly を exit PHI から除外)を E2E で固定済み。
- debug flag SSOT / DebugOutputBox 移行 / error tags 集約 / carrier init builder まで整備済み。 - debug flag SSOT / DebugOutputBox 移行 / error tags 集約 / carrier init builder まで整備済み。
- **LLVM exe line SSOT 確立**: `tools/build_llvm.sh` を使用した .hako → executable パイプライン標準化完了。 - **LLVM exe line SSOT 確立**: `tools/build_llvm.sh` を使用した .hako → executable パイプライン標準化完了。
- **Phase 89 P0 進行中**: Continue + Early Return パターンの dev-only 固定Step 0 完了、detector 締め済み) - **Phase 88 完了**: continue + 可変ステップi=i+const 差分)を dev-only fixture で固定、StepCalculator Box 抽出
- `cargo test --release --lib` は PASS を維持(退行なし) - **Phase 89 完了**: P0ContinueReturn detector+ P1lowering 実装)完了
- `cargo test --release --lib` は PASS を維持993 passed、退行なし
参照: 参照:
- `docs/development/current/main/10-Now.md` - `docs/development/current/main/10-Now.md`
@ -32,26 +33,30 @@
## 次の指示書(優先順位) ## 次の指示書(優先順位)
### P0 (進行中): Phase 89 - Continue + Early Return Pattern ### P0: Phase 90 - _parse_string 合成 fixture
**現在地**: Step 0 完了detector 締め済み、Step 1 進行中docs 更新) **目的**: continue(escape) + return(close quote) の合成パターンを dev-only fixture で固定
**残りステップ**: **実装順序**(最短・事故減):
1. ✅ Step 0: detector 締め + test完了 1. 合成 fixture 設計(制御構造のみ、文字列処理なし
2. 🚧 Step 1: ドキュメント10-Now.md, CURRENT_TASK.md← 現在ここ - continue(escape) + return(close quote) + str += ... + p += 1/2
3. Step 2: 最小 fixture 作成continue + early return、決定的出力 - 期待値が一意(例: n=10 で return 前に acc=4
4. Step 3: Frontend 新パターン箱追加LoopPattern::ContinueReturn 2. ShapeGuard 追加(誤爆防止
5. Step 4: normalized-dev 統合(shape + normalize 関数) - PatternParseStringCompositeMinimal (dev shape)
6. Step 5: 受け入れテスト(構造 vs vm-bridge 一致 + 期待値) - P4/ContinueReturn と区別する条件
3. lowering 実装(新しい箱)
- parse_string_composite_pattern.rs
- Fail-Fast: 対応形以外は即エラー
4. normalized_dev テスト2本
- structured vs canonical 一致
- 期待値一致
**受け入れ基準**: **受け入れ基準**:
- `NYASH_JOINIR_NORMALIZED_DEV_RUN=1 cargo test --features normalized_dev --test normalized_joinir_min` PASS - `NYASH_JOINIR_NORMALIZED_DEV_RUN=1 cargo test --features normalized_dev --test normalized_joinir_min` PASS
- `cargo test --release --lib` PASS退行なし - `cargo test --release --lib` PASS退行なし
- dev-only のみcanonical には入れない) - dev-only のみcanonical には入れない)
**参照**: ユーザー提供の Phase 89 指示書 ### P1: JoinIR / Selfhost depth-2 の前進Phase 91 候補)
### P1: JoinIR / Selfhost depth-2 の前進Phase 90 候補)
目的: 目的:
- JsonParserBox の残り複合ループを JoinIR 対応する。 - JsonParserBox の残り複合ループを JoinIR 対応する。
@ -65,7 +70,7 @@
受け入れ基準: 受け入れ基準:
- 代表ケースが 1 コマンドで再現可能CI は増やさない、quick を重くしない)。 - 代表ケースが 1 コマンドで再現可能CI は増やさない、quick を重くしない)。
### P1: Ownership/Relay runtime 対応の再開Phase 88 候補) ### P2: Ownership/Relay runtime 対応の再開Phase 92 候補)
目的: 目的:
- multihop/merge relay を “runtime でも” 受理できるところまで契約を伸ばすFail-Fast の段階解除)。 - multihop/merge relay を “runtime でも” 受理できるところまで契約を伸ばすFail-Fast の段階解除)。
@ -73,10 +78,23 @@
受け入れ基準: 受け入れ基準:
- dev-only 既定OFF のまま、既存ラインを壊さない。 - dev-only 既定OFF のまま、既存ラインを壊さない。
### Done: P0 SSOT の軽い追記docs-only ### Done: Phase 88-89 完了
- `docs/development/current/main/10-Now.md` の「Scope / BindingId」節に Phase 86 の到達点carrier init / error tagsを追記済み。 **Phase 88**:
- `docs/development/current/main/joinir-architecture-overview.md` の Phase 86 SSOT Modules は記載済み(追記不要)。 - continue + 可変ステップi=i+const 差分)を dev-only fixture で固定
- StepCalculator Box 抽出(+6 unit tests、再利用可能
- エラーメッセージ詳細化、Fail-Fast 仕様固定
**Phase 89 P0**:
- Pattern4 detector 締めSelect 必須 + conditional Jump exactly 1
- LoopPattern::ContinueReturn enum + shape 追加
- canonical には入れないdev-only、誤爆防止
**Phase 89 P1**:
- continue_return_pattern.rs 実装457行、StepCalculator 再利用)
- normalized_dev tests +2vm_bridge + 期待値)
**Impact**: 993 lib tests + 61 normalized_dev tests 全パス、箱化スコア 10/10
--- ---

View File

@ -57,34 +57,63 @@
**Reference**: phase87-selfhost-llvm-exe-line.md **Reference**: phase87-selfhost-llvm-exe-line.md
### Phase 89 P0: Continue + Early Return Pattern (2025-12-14) 🚧 ### Phase 88: Continue + 可変ステップ (2025-12-14)
**Status**: IN PROGRESS - Dev-only fixture isolation **Status**: COMPLETE - dev-only fixture 固定完了
**Goal**: **Achievements**:
- Establish new control axis: Continue + Early Return (loop-internal return) - continue + 可変ステップi=i+const 差分加算)を dev-only fixture で固定
- Prevent Pattern4 detector false positives (canonical mismatch) - continue 分岐側での acc 更新を許可
- Maintain default behavior (normalized_dev scope only) - Fail-Fast 仕様固定(非 const の i 更新を拒否)
- StepCalculator Box 抽出(+6 unit tests、再利用可能な純関数設計
- エラーメッセージ詳細化Expected/Found/Hint 形式)
**Step 0 COMPLETE** (2025-12-14): **Impact**:
- ✅ Pattern4 detector tightened (require Select + exactly 1 conditional Jump) - Tests: 993 lib tests PASS, 60 normalized_dev tests PASS
- ✅ Test added: `test_pattern4_detector_rejects_loop_with_return` - 箱化スコア: 9/10Phase 33 Box 理論の模範実装)
- ✅ All existing Pattern4 tests pass - コード削減: 5%321→305行、重複ロジック削除
**Next Steps**: **Reference**:
- P0-1: Documentation (10-Now.md, CURRENT_TASK.md) - continue_pattern.rs, step_calculator.rs
- P0-2: Minimal fixture (continue + early return, deterministic output) - jsonparser_unescape_string_step2_min.program.json
- P0-3: Frontend pattern (LoopPattern::ContinueReturn enum + lowering box)
- P0-4: Normalized-dev integration (shape + normalize function)
- P0-5: Acceptance tests (structured vs vm-bridge parity + expected output)
**Constraints**: ### Phase 89 P0: Continue + Early Return Pattern Detector (2025-12-14) ✅
- ❌ No default behavior changes
- ❌ No by-name branching
- ❌ No fallback processing (Fail-Fast)
- ❌ Not added to canonical shapes initially (dev-only first)
**Reference**: (TBD - phase89-continue-return-pattern.md) **Status**: COMPLETE - Dev-only detector 確立完了
**Achievements**:
- Pattern4 detector 締めSelect 必須 + conditional Jump exactly 1
- LoopPattern::ContinueReturn enum 追加
- NormalizedDevShape::PatternContinueReturnMinimal 追加detector: Select + conditional Jumps >= 2
- Fail-Fast: UnimplementedPattern errorフォールバックなし
- canonical には入れないdev-only、誤爆防止
**Impact**:
- Pattern4 誤爆防止continue+return を正しく区別)
- Tests: 987 lib tests PASS
**Reference**:
- shape_guard.rs, loop_patterns/mod.rs, analysis.rs
- pattern_continue_return_min.program.json (fixture)
### Phase 89 P1: ContinueReturn Lowering Implementation (2025-12-14) ✅
**Status**: COMPLETE - 独立箱実装完了
**Achievements**:
- continue_return_pattern.rs 実装457行、StepCalculator 再利用)
- Continue + Early Return の JoinIR loweringloop 内 return 対応)
- Fail-Fast 原則徹底5箇所検証
- fixtures.rs に build_pattern_continue_return_min 追加
- normalized_dev tests +2vm_bridge + 期待値 n=10→acc=4
**Impact**:
- Tests: 993 lib tests PASS, 61 normalized_dev tests PASS (+2)
- 箱化原則:単一責任・境界明確・再利用性高
**Reference**:
- continue_return_pattern.rs, fixtures.rs
- tests/normalized_joinir_min/shapes.rs
### Scope / BindingIddev-only の段階移行ライン) ### Scope / BindingIddev-only の段階移行ライン)