Files
hakorune/docs/CURRENT_TASK.md
Moe Charm 601b1f08e3 feat(design): implement birth() unified system design with transparency removal
## 🌟 birth() Unified System Design - Gemini Expert Approval
- Adopt explicit birth() method calls for all Box inheritance
- Complete removal of pack transparency system
- Maintain Nyash's explicit philosophy and predictability

## 🚨 Fix Documentation Inconsistencies
- Update CURRENT_TASK.md: birth() unified design decision
- Create phase_8_9_birth_unified_system_copilot_proof.md task specification
- Add Gemini consultation documentation for design validation

## 📋 New Explicit Syntax Design
```nyash
#  New explicit syntax (Gemini recommended)
box EnhancedString from StringBox {
    birth(content, prefixStr) {
        from StringBox.birth(content)  # ← Explicit method call\!
        me.prefix = prefixStr
    }
}
```

## 🔧 Implementation Requirements
- Parser modification: remove transparency support from `from Parent()`
- Interpreter modification: remove `execute_builtin_constructor_call()`
- Weak reference lifecycle fix: auto-nullification after fini()
- Comprehensive test cases with hand-off prevention metrics

## 🎯 Success Criteria (No Compromise)
- Complete transparency system eradication 
- Explicit birth() syntax enforcement 
- Weak reference lifecycle correction 
- All test cases complete PASS 
- Nyash explicit philosophy complete restoration 

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-15 20:31:14 +09:00

178 lines
7.4 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.

# 🎯 現在のタスク (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