Files
hakorune/docs/説明書/reference/box-design/README.md
Moe Charm e0f0a658e6 docs: Phase 9.75 Box設計根本革命 - SocketBox Arc<Mutex>責務一元化
 Phase 9.75実装計画追加:
- copilot_issues.txtにPhase 9.75追加(Phase 9.7と9.8の間)
- Arc<Mutex>二重化問題の根本解決計画
- 段階的実装戦略(Phase A-D)定義

📚 Box設計ドキュメント完全体系化:
- docs/説明書/reference/box-design/ 新設
- everything-is-box.md: 核心哲学の完全解説
- memory-management.md: Arc<Mutex>設計・fini/weak参照
- delegation-system.md: 完全明示デリゲーション仕様
- box-types-catalog.md: 全Box型の完全カタログ
- ffi-abi-specification.md: FFI/ABI仕様(移動済み)

🔧 実装ノート完備:
- current-issues.md: 現在進行中の設計課題
- socket-box-problem.md: Arc<Mutex>二重化問題詳細分析
- phase-9-75-redesign.md: 実装計画詳細

👥 Copilot実装ガイド作成:
- phase9_75_socketbox_arc_mutex_redesign.md
- SocketBox優先対応の具体的実装手順
- 完全テストスイート設計
- 段階的実装戦略(Step 1-5)

📋 CURRENT_TASK.md更新:
- Box設計ドキュメント完成記録
- Phase 9.75準備完了状況

🎯 効果:
- Everything is Box哲学の体系的文書化
- SocketBox問題解決の明確な道筋
- Copilot協調実装の準備完了
- 新規開発者オンボーディング改善

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-15 07:47:09 +09:00

113 lines
3.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.

# 📦 Nyash Box設計ドキュメント
## 🎯 概要
Nyashの核心哲学「**Everything is Box**」に関する完全な設計ドキュメント集。
言語設計の根幹から実装詳細まで、Box設計のすべてを網羅しています。
## 📚 ドキュメント構成
### 🌟 設計思想
#### [everything-is-box.md](everything-is-box.md)
Nyashの核心哲学「Everything is Box」の完全解説。なぜすべてをBoxにするのか、その設計思想と利点を説明。
#### [box-types-catalog.md](box-types-catalog.md)
Nyashで利用可能な全Box型のカタログ。基本型StringBox, IntegerBoxから高度な型P2PBox, EguiBoxまで。
### 🔄 システム設計
#### [delegation-system.md](delegation-system.md)
完全明示デリゲーションシステムの設計。`from`構文、`override`必須、`pack`構文の詳細仕様。
#### [memory-management.md](memory-management.md)
Arc<Mutex>一元管理、fini()システム、weak参照による循環参照回避の設計原則。
### 🌐 外部連携
#### [ffi-abi-specification.md](ffi-abi-specification.md)
Box FFI/ABI完全仕様。外部ライブラリを「箱に詰める」ための統一インターフェース。
### 🔧 実装ノート
#### [implementation-notes/](implementation-notes/)
開発者向けの実装詳細、既知の問題、進行中の設計変更などの技術情報。
- [current-issues.md](implementation-notes/current-issues.md) - 現在対応中の設計課題
- [socket-box-problem.md](implementation-notes/socket-box-problem.md) - Arc<Mutex>二重化問題の詳細分析
- [phase-9-75-redesign.md](implementation-notes/phase-9-75-redesign.md) - Box設計根本革命の実装計画
## 🎨 設計原則
### 1. **Everything is Box**
すべての値がBoxオブジェクト。プリミティブ型は存在しない。
### 2. **明示性重視**
暗黙的な動作を避け、すべてを明示的に記述。
### 3. **Arc<Mutex>一元管理**
Box内部でのロックを避け、インタープリターが一元管理。
### 4. **メモリ安全性**
fini()システムとweak参照による確実なメモリ管理。
## 🚀 クイックリファレンス
### Box作成
```nyash
// 基本型
local str = new StringBox("Hello")
local num = new IntegerBox(42)
// ユーザー定義Box
box User {
init { name, email }
pack(userName, userEmail) {
me.name = userName
me.email = userEmail
}
}
```
### デリゲーション
```nyash
box AdminUser from User {
init { permissions }
pack(adminName, adminEmail, perms) {
from User.pack(adminName, adminEmail)
me.permissions = perms
}
override toString() {
return "Admin: " + from User.toString()
}
}
```
### 外部ライブラリ統合FFI/ABI
```nyash
// ExternBoxで外部APIを統一的に利用
local console = new ExternBox("console")
console.call("log", "Hello from Nyash!")
local canvas = new ExternBox("canvas")
canvas.call("fillRect", 10, 10, 100, 50)
```
## 📖 関連ドキュメント
- [言語リファレンス](../language-reference.md)
- [ビルトインBox一覧](../builtin-boxes.md)
- [実装ガイド](../../../../CLAUDE.md)
- [開発計画](../../../../予定/native-plan/copilot_issues.txt)
## 🔄 更新履歴
- 2025-08-14: Box設計ドキュメント初版作成
- 2025-08-14: Phase 9.75Arc<Mutex>責務一元化)対応開始
---
最終更新: 2025-08-14