Files
hakorune/docs/CURRENT_TASK.md

178 lines
7.4 KiB
Markdown
Raw Normal View History

# 🎯 現在のタスク (2025-08-15 birth()統一設計決定・実装準備)
## ✅ **Phase 10完全実装完了 - Copilot神業達成**
- **3つのCアプリ移植**: Tinyproxy/Chip-8/kilo完全実装 ✅
- **ゼロコピー検出API**: BufferBox.is_shared_with()/.share_reference()/.memory_footprint() ✅
- **テスト実行成功**: test_zero_copy_detection.nyash完全動作 ✅
- **Arc::ptr_eq()検出**: 真のゼロコピー判定実現 ✅
- **新API978行追加**: すべて正常ビルド・実行成功 ✅
## 🎯 **birth()統一設計決定 - Gemini完全承認獲得 (2025-08-15)**
### **🌟 透明化システム廃止 → 明示的birth()統一システム採用** ✅
**Gemini分析結論**: 「birth()統一・内部実装自由案が多くの点で優れており、Nyashの言語設計として非常に妥当で洗練されたもの」
### **🎯 新・明示的birth()統一設計**
**核心方針**: 透明化システム完全廃止・明示的birth()メソッド呼び出しに統一
### **📋 新・明示的birth()構文**
```nyash
# ✅ 新しい明示的構文Gemini推奨
box EnhancedString from StringBox {
init { prefix }
birth(content, prefixStr) {
from StringBox.birth(content) # ← 明示的メソッド呼び出し!
me.prefix = prefixStr
}
override toString() {
return me.prefix + from StringBox.toString()
}
}
```
### **🔧 実装側の内部動作**
```rust
// from StringBox(content) の解決優先度
fn resolve_builtin_delegation(builtin: &str, args: Vec<_>) -> String {
if is_builtin_box(builtin) {
// 1. ビルトインBoxの場合、内部的にpackを呼ぶ
builtin_pack_registry.call_pack(builtin, args)
} else {
// 2. ユーザー定義Boxの場合、birth優先
resolve_user_constructor(builtin, args) // birth > init > Box名
}
}
```
### **🎯 実装すべきこと**
**1. ビルトインBox自動判定**
- `is_builtin_box()` 関数実装
- StringBox, P2PBox, MathBox等をビルトイン登録
**2. pack透明化システム**
- `from BuiltinBox()` → 内部的に `BuiltinBox.pack()` 呼び出し
- ユーザーは`pack`という単語を見ない・書かない
**3. デリゲーション解決統一**
- ビルトインBox: 自動pack呼び出し
- ユーザー定義Box: birth > init > Box名 優先順位
**4. エラーメッセージ改善**
- ユーザーには「birth()がありません」と表示
- packエラーは内部ログのみ
### **🎉 期待される効果**
- **完全透明化**: ユーザーはpackを一切意識しない
- **統一体験**: `from Parent()` で全て解決
- **設計分離**: ビルトインBox内部実装とユーザーAPI完全分離
## 🚨 **緊急実装タスク**
**GitHub Issue**: Phase 8.9実装
**ドキュメント**: [phase_8_9_birth_unified_system_copilot_proof.md](docs/予定/native-plan/issues/phase_8_9_birth_unified_system_copilot_proof.md)
### **🎯 Copilot委託タスク手抜き対策済み**
1. **透明化システム完全削除** - `from StringBox(content)` エラー化
2. **明示的birth()構文強制** - `from StringBox.birth(content)` 必須化
3. **weak参照修正** - fini後の自動null化
4. **包括テストケース** - 手抜き検出用5段階テスト
### **🔧 修正対象ファイル**
- `src/parser/expressions.rs:519-522` - パーサー透明化削除
- `src/interpreter/expressions.rs:1091-1095` - インタープリター修正
- `src/interpreter/objects.rs` - weak参照ライフサイクル修正
### **✅ 成功条件(妥協なし)**
- 透明化システム完全根絶 ✅
- 明示的birth()構文強制 ✅
- weak参照ライフサイクル修正 ✅
- 全テストケース完全PASS ✅
- Nyash明示性哲学完全復活 ✅
### 📦 **移植対象アプリケーション**
1. **🌐 Tinyproxy** - ゼロコピー判定機能実証HTTPプロキシサーバー
2. **🎮 Chip-8エミュレーター** - fini伝播・weak参照実戦テスト
3. **✏️ kilo テキストエディター** - 「うっかり全体コピー」検出機能
### 🛠️ **新API要件実装予定**
- **ゼロコピー判定**: `BufferBox.is_shared_with()`, `share_reference()`
- **fini伝播システム**: 依存オブジェクト自動クリーンアップ
- **weak参照**: `WeakBox.is_alive()`, 循環参照防止
- **メモリ効率監視**: `Box.memory_footprint()`, リアルタイム警告
## 📈 **完了済みPhase要約**
- **Phase 8**: MIR/WASM基盤構築、13.5倍高速化実証 ✅
- **Phase 9**: AOT WASM実装、ExternCall基盤 ✅
- **Phase 9.75**: Arc<Mutex>→RwLock全変換完了 ✅
## 🔮 **今後のロードマップ**
- **Phase 9.5**: HTTPサーバー実用テスト2週間**現在ここ**
- **Phase 10**: LLVM Direct AOT4-6ヶ月、1000倍高速化目標
## 📊 **主要実績**
- **Box統一アーキテクチャ**: Arc<Mutex>二重ロック問題を根本解決
- **実行性能**: WASM 13.5倍、VM 20.4倍高速化達成
- **Everything is Box哲学**: 全11個のBox型でRwLock統一完了
## 🔥 **実装優先度**
### **🚨 Critical (即時実装)**
1. **ビルトインBox判定システム** - is_builtin_box()実装15分
2. **pack透明化解決** - from BuiltinBox()自動変換30分
3. **統合テスト作成** - 透明化動作確認10分
### **⚡ High (今週中)**
4. **エラーメッセージ改善** - pack隠蔽、birth中心メッセージ
5. **ドキュメント更新** - CLAUDE.md透明化設計反映
6. **パフォーマンス最適化** - ビルトイン判定高速化
### **📝 Medium (来週)**
7. **既存テスト見直し** - pack直接呼び出し削除
8. **delegation-system.md更新** - 透明化設計反映
### **🔮 Future (今後の予定)**
9. **FFI/ABI統合** - ExternBox経由外部APIPhase 11予定
10. **動的ライブラリ読み込み** - 外部ライブラリBox化Phase 12予定
11. **BID自動生成** - YAML→実装自動化Phase 13予定
## 🚀 **Phase 8.8: pack透明化システム実装準備完了**
### **✅ 完了事項 (2025-08-15)**
1. **birth()実装完了** - コンストラクタ統一構文実装 ✅
2. **ドキュメント矛盾修正完了** - pack機能正しい定義確立 ✅
3. **pack透明化イシュー作成完了** - Copilot実装仕様書完成 ✅
### **📋 ドキュメント修正完了リスト**
-`delegation-system.md` - pack→birth統一、pack専用セクション追加
-`box-design/README.md` - pack専用セクション追加
-`LANGUAGE_GUIDE.md` - birth統一、pack専用明記
-`CLAUDE.md` - birth哲学、pack専用システム分離
### **🎯 次のアクション (Copilot実装待ち)**
**イシュー**: `phase_8_8_pack_transparency_system.md`
#### **実装内容**
1. **ビルトインBox判定システム** - `is_builtin_box()` 関数
2. **pack透明化解決** - `from BuiltinBox()` 自動変換
3. **エラーメッセージ改善** - pack隠蔽、ユーザーフレンドリー化
#### **必須テストケース (5種類)**
- ユーザー定義Box基本動作
- ビルトインBox継承
- **透明化システム動作** (最重要)
- 混在テスト
- エラーケーステスト
#### **完了条件**
- 全テストケース PASS
- 既存機能継続動作
- パフォーマンス維持
- ユーザーはpackを一切意識しない
---
**現在状況**: pack透明化システム実装準備完了✅ → Copilot実装開始待ち🤖
**最終更新**: 2025-08-15 17:00