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:
@ -33,11 +33,11 @@
|
||||
| ControlForm 構造生成 | ✅ 正常動作 | header/body/latch/exit ブロック |
|
||||
| PHI 命令生成 | ✅ 正常動作 | 分岐・ループでの値合流 |
|
||||
| StringBox メソッド | ✅ 正常動作 | length, substring, lastIndexOf |
|
||||
| ConsoleBox.println | ❌ エラー | メソッド解決失敗(Phase 122+ 課題) |
|
||||
| ConsoleBox.println | ✅ **Phase 122で解消** | println → log に正規化 |
|
||||
|
||||
**統計**:
|
||||
- ✅ **完全成功**: 2/3 プログラム
|
||||
- ⚠️ **既知の問題**: 1/3(ConsoleBox.println - Phase 122+ で修正予定)
|
||||
- ✅ **完全成功**: 2/3 プログラム(Phase 120 時点)
|
||||
- ✅ **Phase 122 で 3/3 達成**: ConsoleBox.println 問題解消
|
||||
- 📄 **作成ドキュメント**: 3 ファイル
|
||||
- 🧪 **スモークテスト**: 統合完了(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 400(log と同じ)
|
||||
↓
|
||||
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 選択可能に(予定)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user