docs(task): Update CURRENT_TASK.md for Phase 122 completion

Phase 122 ConsoleBox.println / log 統一の完了を反映:
- Phase 120結果テーブル更新: ConsoleBox.println  Phase 122で解消
- Phase 120統計更新: 2/3 → 3/3 (Phase 122で達成)
- Phase 122セクション追加: 実装詳細・テスト結果・価値を記録
This commit is contained in:
nyash-codex
2025-12-04 05:17:57 +09:00
parent 024a09c15b
commit 0b2a7e906b

View File

@ -33,11 +33,11 @@
| ControlForm 構造生成 | ✅ 正常動作 | header/body/latch/exit ブロック | | ControlForm 構造生成 | ✅ 正常動作 | header/body/latch/exit ブロック |
| PHI 命令生成 | ✅ 正常動作 | 分岐・ループでの値合流 | | PHI 命令生成 | ✅ 正常動作 | 分岐・ループでの値合流 |
| StringBox メソッド | ✅ 正常動作 | length, substring, lastIndexOf | | StringBox メソッド | ✅ 正常動作 | length, substring, lastIndexOf |
| ConsoleBox.println | ❌ エラー | メソッド解決失敗Phase 122+ 課題) | | ConsoleBox.println | **Phase 122で解消** | println → log に正規化 |
**統計**: **統計**:
-**完全成功**: 2/3 プログラム -**完全成功**: 2/3 プログラムPhase 120 時点)
- ⚠️ **既知の問題**: 1/3ConsoleBox.println - Phase 122+ で修正予定) - **Phase 122 で 3/3 達成**: ConsoleBox.println 問題解消
- 📄 **作成ドキュメント**: 3 ファイル - 📄 **作成ドキュメント**: 3 ファイル
- 🧪 **スモークテスト**: 統合完了6 秒で自動実行) - 🧪 **スモークテスト**: 統合完了6 秒で自動実行)
@ -177,7 +177,80 @@ Phase 122+: 実装(段階的統合)
### 🚀 次のステップ ### 🚀 次のステップ
**Phase 122**: hako_check 環境変数で JoinIR 選択可能に(実装開始) **Phase 122**: ConsoleBox.println / log 統一(完了)✅
---
## 🎯 Phase 122: ConsoleBox.println / log 統一(完了)✅ 2025-12-04
### 📋 実装内容
**目的**: Phase 120 で発見された ConsoleBox.println エラーを根本解決
**問題**: esc_dirname_smoke.hako が selfhost Stage-3 + JoinIR Strict 経路で失敗
- エラーメッセージ: `Unknown method 'println' on ConsoleBox`
**解決策**: TypeRegistry / VM Method Dispatch レベルで println → log に正規化
### 📄 実装詳細
| 実装箇所 | ファイル | 変更内容 |
|---------|---------|---------|
| **TypeRegistry** | `src/runtime/type_registry.rs` | `CONSOLE_METHODS``println` (slot 400) 追加 |
| **ConsoleBox** | `src/boxes/console_box.rs` | `println()` メソッド追加log への委譲) |
| **VM Dispatch** | `src/backend/mir_interpreter/handlers/calls/method.rs` | ConsoleBox 専用ハンドラ追加 |
| **Plugin設定** | `nyash.toml` | `println` (method_id 2) 追加 |
### ✅ テスト結果
**Phase 120 で失敗していたケース**:
-**Phase 120**: esc_dirname_smoke.hako → `Unknown method 'println' on ConsoleBox`
-**Phase 122**: esc_dirname_smoke.hako → **実行成功**
**出力確認**:
```
[Console LOG]
[Console LOG] dir1/dir2
```
**Phase 120 ベースライン更新**:
- ✅ 完全成功: **3/3 プログラム**Phase 120 時点: 2/3
- ✅ ConsoleBox.println 問題完全解消
### 🏆 Phase 122 の価値
**Alias First 原則の確立**:
```
ユーザーコード: ConsoleBox.println("...")
VM TypeRegistry: println → slot 400log と同じ)
ConsoleBox 実装: log の実装が実行される
出力: 標準出力にメッセージ表示
```
**正規化ポイントの一元化**:
- **TypeRegistry で管理**: VM レベルで alias を一元管理
- **MirBuilder 不関与**: 特別扱いなし、自然な設計
- **全経路統一**: JSON v0 / selfhost / 通常VM すべてで一貫
**Phase 120 連携**:
- Phase 120: selfhost 経路ベースライン確立 → **問題発見**
- Phase 122: TypeRegistry レベルで根本解決 → **ベースライン改善**
### 📄 ドキュメント更新
| ドキュメント | 更新内容 |
|-------------|---------|
| `phase122_consolebox_println_unification.md` | 設計・実装・テスト結果の完全記録 |
| `hako_logging_design.md` | ConsoleBox 使い方ガイド追加 |
| `logging_policy.md` | Phase 122 ガイドライン・正規化ルール追加 |
| `core_boxes_design.md` | Section 18: Phase 122 実装記録追加 |
### 🚀 次のステップ
**Phase 123**: hako_check 環境変数で JoinIR 選択可能に(予定)
--- ---