A1.4: Add sugar syntax `public weak parent` ≡ `public { weak parent }`
A1.5: Fix parser hang on unsupported `param: Type` syntax
Key changes:
- A1.4: Extend visibility parser to handle weak modifier (fields.rs)
- A1.5: Shared helper `parse_param_name_list()` with progress-zero detection
- A1.5: Fix 6 vulnerable parameter parsing loops (methods, constructors, functions)
- Tests: Sugar syntax (OK/NG), parser hang (timeout-based)
- Docs: lifecycle.md, EBNF.md, phase-285a1-boxification.md
Additional changes:
- weak() builtin implementation (handlers/weak.rs)
- Leak tracking improvements (leak_tracker.rs)
- Documentation updates (lifecycle, types, memory-finalization, etc.)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
59 lines
2.4 KiB
Markdown
59 lines
2.4 KiB
Markdown
# 📦 Nyash Boxシステム設計ドキュメント
|
||
|
||
## 🎯 概要
|
||
|
||
Nyashの核心哲学「**Everything is Box**」に関する完全な設計ドキュメント集。
|
||
言語設計の根幹から実装詳細まで、Boxシステムのすべてを網羅しています。
|
||
|
||
注(`init { ... }` について):
|
||
- `init { a, b, c }` は legacy のフィールド宣言(slot)です(互換のために残っています)。
|
||
- 新規コードでは、可能なら Unified Members(stored/computed/once/birth_once)での宣言を推奨します(SSOT: `docs/reference/language/EBNF.md` / ライフサイクルSSOT: `docs/reference/language/lifecycle.md`)。
|
||
|
||
## 📚 ドキュメント構成
|
||
|
||
### 🌟 コア哲学
|
||
|
||
#### [everything-is-box.md](everything-is-box.md)
|
||
Nyashの核心哲学「Everything is Box」の解説。なぜすべてをBoxにするのか、その設計思想と利点。
|
||
|
||
### 📖 完全リファレンス
|
||
|
||
#### [box-reference.md](box-reference.md)
|
||
**統合版Box型完全リファレンス**。全ビルトインBox型のAPI仕様、基本型からプラグインBoxまで。
|
||
|
||
### 🔄 システム設計
|
||
|
||
#### [delegation-system.md](delegation-system.md)
|
||
完全明示デリゲーションシステムの設計。`from`構文、`override`必須、`pack`構文の詳細仕様。
|
||
|
||
#### [memory-finalization.md](memory-finalization.md)
|
||
**統合版メモリ管理&finiシステム**。Arc<Mutex>一元管理、fini()論理的解放、weak参照、プラグインメモリ安全性。
|
||
|
||
## 🔗 関連ドキュメント
|
||
|
||
- **[プラグインシステム](../plugin-system/)**: BID-FFIプラグインシステム完全仕様
|
||
- **[言語仕様](../core-language/)**: デリゲーション構文、言語リファレンス
|
||
- **[実行バックエンド](../execution-backend/)**: MIR、P2P通信仕様
|
||
|
||
## 🎨 設計原則
|
||
|
||
### Everything is Box
|
||
- すべての値がBoxオブジェクト
|
||
- 統一的なメソッド呼び出し
|
||
- プリミティブ型と参照型の区別なし
|
||
|
||
### メモリ安全性
|
||
- Arc<Mutex>による統一管理
|
||
- fini()による決定論的リソース解放
|
||
- weak参照による循環参照回避
|
||
|
||
### プラグイン拡張性
|
||
- BID-FFIによる外部ライブラリ統合
|
||
- 型情報管理による安全な変換
|
||
- HostVtableによるメモリ管理
|
||
|
||
---
|
||
|
||
**最終更新**: 2025年8月19日 - boxes-system統合整理完了
|
||
**Phase 9.75g-0成果**: プラグインシステムとの完全統合
|