Files
hakorune/docs/reference/boxes-system/README.md
tomoaki ab76e39036 feat(parser): Phase 285A1.4 & A1.5 - Weak field sugar + Parser hang fix
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>
2025-12-24 07:44:50 +09:00

2.4 KiB
Raw Blame History

📦 Nyash Boxシステム設計ドキュメント

🎯 概要

Nyashの核心哲学「Everything is Box」に関する完全な設計ドキュメント集。 言語設計の根幹から実装詳細まで、Boxシステムのすべてを網羅しています。

注(init { ... } について):

  • init { a, b, c } は legacy のフィールド宣言slotです互換のために残っています
  • 新規コードでは、可能なら Unified Membersstored/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成果: プラグインシステムとの完全統合