docs: update Phase 137-1 completion status and Phase 2 roadmap
## Summary Loop Canonicalizer Phase 1(型定義)の完了と、Phase 2(dev-only 観測)への ロードマップを記録。 ## Changes ### loop-canonicalizer.md - Status: Design (P0) → Phase 1 done(型定義まで) - 実装の入口を明記(src/mir/loop_canonicalizer/mod.rs) - NYASH_LOOP_ROUTING_TRACE → joinir_dev_enabled() に変更 (新 ENV を増やさず、既存のスイッチに寄せる) ### CURRENT_TASK.md - Phase 137-1 完了を追記 - P0 を「設計」→「Phase 2(dev-only 観測)」へ更新 ### phases/README.md - Phase 137 を追加 ### phases/phase-137/README.md (NEW) - Phase 1 完了サマリ - Phase 2 予定を最小で記録 ### joinir-design-map.md / 01-JoinIR-Selfhost-INDEX.md - loop-canonicalizer への導線を追加 ## Next Steps Phase 2: dev-only 観測の導入 - canonicalize_loop_expr() の薄い入口を追加 - joinir_dev_enabled() 配下でログ出し - 既定挙動は完全不変 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
# Loop Canonicalizer(設計 SSOT)
|
||||
|
||||
Status: Design (P0)
|
||||
Status: Phase 1 done(型定義まで)
|
||||
Scope: ループ形の組み合わせ爆発を抑えるための “前処理” の設計(fixture/shape guard/fail-fast と整合)
|
||||
Related:
|
||||
- SSOT (契約/不変条件): `docs/development/current/main/joinir-architecture-overview.md`
|
||||
@ -158,6 +158,15 @@ pub enum CarrierRole {
|
||||
|
||||
---
|
||||
|
||||
## 実装の入口(現状)
|
||||
|
||||
Phase 1(型定義のみ)の実装はここ:
|
||||
- `src/mir/loop_canonicalizer/mod.rs`
|
||||
|
||||
注意:
|
||||
- ここは「型と語彙の SSOT」を置く場所で、routing/lowering にはまだ介入しない。
|
||||
- Phase 2 以降で `canonicalize(loop_ast) -> (LoopSkeleton, RoutingDecision)` を導入し、dev-only で観測から始める。
|
||||
|
||||
## Capability の語彙(Fail-Fast reason タグ)
|
||||
|
||||
Skeleton を生成できても lower/merge できるとは限らない。以下の Capability で判定する:
|
||||
@ -207,13 +216,13 @@ pub struct RoutingDecision {
|
||||
|----------------------------|-------------------------------|-----------------------------------|
|
||||
| `error_tags` | `chosen.is_none()` | Fail-Fast のエラーメッセージ |
|
||||
| `contract_checks` | debug build + 契約違反時 | Phase 135 P1 の verifier に統合 |
|
||||
| `NYASH_LOOP_ROUTING_TRACE` | 環境変数 ON 時 | 開発時のルーティング追跡 |
|
||||
| JoinIR dev/debug | `joinir_dev_enabled()==true` | 開発時のルーティング追跡 |
|
||||
| 統計 JSON | 将来拡張 | Corpus 分析(Skeleton Signature) |
|
||||
|
||||
### error_tags との統合
|
||||
|
||||
- `RoutingDecision.error_tags` は `src/mir/builder/control_flow/joinir/error_tags.rs` に追記
|
||||
- 既存の `ErrorTagCollector` を使用(新規 Box は作らない)
|
||||
- `RoutingDecision` の Fail-Fast 文言は `src/mir/join_ir/lowering/error_tags.rs` の語彙に寄せる
|
||||
- 既存のエラータグ(例: `error_tags::freeze(...)`)を使用し、文字列直書きを増やさない
|
||||
|
||||
---
|
||||
|
||||
@ -269,4 +278,3 @@ loop(p < len) {
|
||||
- [ ] 必要 Capability を列挙し、未達は Fail-Fast(理由が出る)
|
||||
- [ ] 既存 smoke/verify が退行しない(quick は重くしない)
|
||||
- [ ] 新規 Capability は先に `loop-canonicalizer.md` に追記してから実装
|
||||
|
||||
|
||||
Reference in New Issue
Block a user