gui: add EguiBox TypeBox plugin (Windows egui stub)\n\n- plugins: add nyash-egui-plugin with TypeBox (resolve/invoke_id), Windows path for real window via eframe; stub on other OS\n- apps: add apps/egui-hello sample (open→uiLabel→run→close)\n- loader: improve Windows DLL resolution (target triples: x86_64/aarch64 msvc) and lib→dll mapping\n- tests: expand TypeBox vs TLV diff tests up to FileBox; all green\n- docs: update CURRENT_TASK checklist (diff tests completed)\n- config: nyash.toml add EguiBox (type_id=70), plugin registry and methods

This commit is contained in:
Moe Charm
2025-09-03 13:58:52 +09:00
parent f939ad0033
commit ceb22b6c18
33 changed files with 3891 additions and 84 deletions

View File

@ -1,16 +1,19 @@
# Phase 12 Task Board (v2 - セルフホスティング対応)
Status: Tier-0 完了vtable雛形 + レジストリ + VM優先経路。次は Tier-1 の最小Nyash ABIサンプル実装へ。
目的: C ABI を壊さず、TypeBox + 統一ディスパッチで Nyash ABI を段階導入。MIR→VM→JIT を「綺麗な箱」で統一。**最終的にRust依存を排除し、セルフホスティングを実現。**
## Tier-0直近・安全に積める
- [x] MapBoxの実用拡張stringキー/便利API
- [x] `keys()/values()` ランタイムシム現状は改行区切りString返却
- [ ] TypeBoxレジストリ雛形
- Box名/FQN、type_id、メソッド表、returns_result を登録
- 既存 `nyash.toml` → TypeBoxInfo への変換層
- [ ] 統一ディスパッチ層VM
- Nyash ABI vtable優先 → 無ければ C ABITLVへフォールバック
- 所有権・セーフポイントのガードMAY_BLOCKのみ初期対応
- [x] `keys()/values()` 実装ArrayBox返却に更新
- [x] TypeBoxレジストリ雛形
- Box名/FQN、type_id、メソッド表(静的スロット)を登録(`src/runtime/type_registry.rs`
- 既存 `nyash.toml` → TypeBoxInfo 変換層は別途(未着手)
- [x] 統一ディスパッチ層VM・雛形
- `NYASH_ABI_VTABLE=1` で vtable優先のVM経路を有効化fallbackはC ABI/TLV
- Array/Map/String/Instance の主要メソッドを最小カバレッジで処理(`try_boxcall_vtable_stub`)。
- 所有権・セーフポイントのガードは既存Barrier呼び出しで一部対応MAY_BLOCK等は今後拡張
- [x] プラグインテスター更新v2ローダに対応: `src/bin/test_plugin_loader_v2.rs`
## Tier-1実証
@ -24,9 +27,8 @@
- [ ] NyashValueインラインi64/boolの高速化
- [ ] 例外/エラーの完全変換panic→nyrt_err
- [ ] 所有権契約の遵守TRANSFER/BORROW/CLONE
- [ ] `keys()/values()` の正式実装ArrayBox返却
- 選択肢A: ランタイムで ArrayBox を構築
- 選択肢B: Mapプラグインに KeysArrayBox を同梱(要設定追加)
- [x] `keys()/values()` の正式実装ArrayBox返却
- 採用: ランタイムで ArrayBox を構築`src/boxes/map_box.rs`
## Tier-3セルフホスティング🔥新規
- [ ] Nyash ABI C実装の開始