Files
hakorune/CURRENT_TASK.md
nyash-codex 5b5f3b55d4 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>
2025-12-14 02:31:39 +09:00

105 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Current Task
このファイルは「いま何に集中しているか」と「次にやり得る候補」だけを書く軽量ビューだよ。
詳細は `docs/development/current/main/` 以下の各 Phase 文書と、JoinIR の SSOT である
`docs/development/current/main/joinir-architecture-overview.md` を参照してね。
最終更新: 2025-12-14
過去ログ(肥大化した旧 CURRENT_TASKはここに退避したよ:
- `docs/development/current/main/CURRENT_TASK_ARCHIVE_2025-12-13.md`
---
## 今の状態Phase 7489 まで到達)
- Scope/BindingId の段階移行dev-onlyは Pattern2/3/4 まで配線済みdual-path 維持)。
- Pattern2 の promoted carriersDigitPos/Trimについて ExitLine 契約ConditionOnly を exit PHI から除外)を E2E で固定済み。
- debug flag SSOT / DebugOutputBox 移行 / error tags 集約 / carrier init builder まで整備済み。
- **LLVM exe line SSOT 確立**: `tools/build_llvm.sh` を使用した .hako → executable パイプライン標準化完了。
- **Phase 88 完了**: continue + 可変ステップi=i+const 差分)を dev-only fixture で固定、StepCalculator Box 抽出。
- **Phase 89 完了**: P0ContinueReturn detector+ P1lowering 実装)完了。
- `cargo test --release --lib` は PASS を維持993 passed、退行なし
参照:
- `docs/development/current/main/10-Now.md`
- `docs/development/current/main/phase73-scope-manager-design.md`
- `docs/development/current/main/phase80-bindingid-p3p4-plan.md`
- `docs/development/current/main/phase81-pattern2-exitline-contract.md`
- `docs/development/current/main/phase78-85-boxification-feedback.md`
- `docs/development/current/main/phase87-selfhost-llvm-exe-line.md`
---
## 次の指示書(優先順位)
### P0: Phase 90 - _parse_string 合成 fixture
**目的**: continue(escape) + return(close quote) の合成パターンを dev-only fixture で固定
**実装順序**(最短・事故減):
1. 合成 fixture 設計(制御構造のみ、文字列処理なし)
- continue(escape) + return(close quote) + str += ... + p += 1/2
- 期待値が一意(例: n=10 で return 前に acc=4
2. ShapeGuard 追加(誤爆防止)
- PatternParseStringCompositeMinimal (dev shape)
- 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
- `cargo test --release --lib` PASS退行なし
- dev-only のみcanonical には入れない)
### P1: JoinIR / Selfhost depth-2 の前進Phase 91 候補)
目的:
- JsonParserBox の残り複合ループを JoinIR 対応する。
- または selfhost .hako コンパイラの他部分Lexer/ASTBuilder 等)で JoinIR 適用範囲を拡大する。
やること(設計→実装の順):
1. 候補ループの抽出JsonParserBox or Lexer/ASTBuilder
2. Pattern 判定Pattern 1-4 のいずれか、または新 Pattern 提案)
3. JoinIR lowering 実装 + E2E テスト
受け入れ基準:
- 代表ケースが 1 コマンドで再現可能CI は増やさない、quick を重くしない)。
### P2: Ownership/Relay runtime 対応の再開Phase 92 候補)
目的:
- multihop/merge relay を “runtime でも” 受理できるところまで契約を伸ばすFail-Fast の段階解除)。
受け入れ基準:
- dev-only 既定OFF のまま、既存ラインを壊さない。
### Done: Phase 88-89 完了
**Phase 88**:
- 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
---
## すぐ走らせる確認コマンド
- `cargo test --release --lib`
- `NYASH_JOINIR_NORMALIZED_DEV_RUN=1 cargo test --features normalized_dev --test normalized_joinir_min -- --nocapture`