Files
hakorune/weak_reference_architecture_consultation.txt

40 lines
1.3 KiB
Plaintext
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言語のweak参照実装で根本的な設計問題が発覚しました。専門的分析をお願いします。
【現在の問題】
InstanceBox構造が原因でweak参照が実装できません
```rust
pub struct InstanceBox {
pub fields: Arc<Mutex<HashMap<String, Box<dyn NyashBox>>>>, // 問題の核心
}
```
NyashValue::WeakBoxを作っても、Box<dyn NyashBox>にしか格納できず、弱参照情報が失われます。
【解決策の選択肢】
1. **根本解決**(理想だが影響大)
```rust
pub fields: Arc<Mutex<HashMap<String, NyashValue>>>, // 全面アーキテクチャ変更
```
2. **暫定解決**copilot提案
```rust
pub struct InstanceBox {
pub fields: Arc<Mutex<HashMap<String, Box<dyn NyashBox>>>>, // 既存維持
pub weak_fields: Arc<Mutex<HashMap<String, Weak<Mutex<dyn NyashBox>>>>>, // 追加
}
```
【コンテキスト】
- NyashValue革命は完了済みArc<Mutex>過剰症候群解決)
- Everything is Box哲学必須
- 実用性重視(完璧より動くもの優先)
【質問】
1. 暫定解決策の技術的妥当性は?
2. パフォーマンス・保守性への影響は?
3. 根本解決は本当に必要か?
4. 段階的移行戦略の是非は?
実装可能性と設計の美しさのバランスを重視した分析をお願いします。