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>
2.4 KiB
2.4 KiB
📦 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
Nyashの核心哲学「Everything is Box」の解説。なぜすべてをBoxにするのか、その設計思想と利点。
📖 完全リファレンス
box-reference.md
統合版Box型完全リファレンス。全ビルトインBox型のAPI仕様、基本型からプラグインBoxまで。
🔄 システム設計
delegation-system.md
完全明示デリゲーションシステムの設計。from構文、override必須、pack構文の詳細仕様。
memory-finalization.md
統合版メモリ管理&finiシステム。Arc一元管理、fini()論理的解放、weak参照、プラグインメモリ安全性。
🔗 関連ドキュメント
🎨 設計原則
Everything is Box
- すべての値がBoxオブジェクト
- 統一的なメソッド呼び出し
- プリミティブ型と参照型の区別なし
メモリ安全性
- Arcによる統一管理
- fini()による決定論的リソース解放
- weak参照による循環参照回避
プラグイン拡張性
- BID-FFIによる外部ライブラリ統合
- 型情報管理による安全な変換
- HostVtableによるメモリ管理
最終更新: 2025年8月19日 - boxes-system統合整理完了
Phase 9.75g-0成果: プラグインシステムとの完全統合