Phase 9.78h: VM BinOp and/or short-circuit + BoxRef<Integer> arithmetic; add diagnostic hooks. Update CURRENT_TASK with progress and VM path-tracing TODO. Align docs: MIR26 canonical spec and phase docs.

This commit is contained in:
Moe Charm
2025-08-26 00:06:35 +09:00
parent 3a8f7092e6
commit f82ad5a84d
19 changed files with 534 additions and 69 deletions

View File

@ -1,4 +1,4 @@
# 🚀 Phase 9.75h-0 Complete: Unified Plugin System Developer Guide
# 🚀 Phase 9.75g-0 Complete: Unified Plugin System Developer Guide
**Completion Date**: 2025-08-18
**Status**: ✅ **PRODUCTION READY**
@ -404,4 +404,4 @@ Phase 9.75g-0 **perfectly positions** Nyash for Phase 10 (LLVM AOT):
**Last Updated**: 2025-08-19
**Author**: Claude (AI Assistant)
**Review Status**: Ready for Team Review
**Confidentiality**: Open Source Development Documentation
**Confidentiality**: Open Source Development Documentation

View File

@ -1,5 +1,8 @@
# Phase 9.78b: インタープリター・VM統合アーキテクチャ再設計
Status: Not Started設計完了、実装未着手
Last Updated: 2025-08-25
**作成日**: 2025-08-21
**優先度**: 最高Phase 9.78aの前提条件)
**設計者**: Codex exec (天才的洞察)
@ -209,4 +212,4 @@ use core::model::BoxDeclaration as InterpreterBoxDecl;
---
**総工数見積もり**: 14日各ステップにバッファ含む
**推奨アプローチ**: Step 1-2を先行実施して感触を掴む
**推奨アプローチ**: Step 1-2を先行実施して感触を掴む

View File

@ -0,0 +1,72 @@
# Phase 9.78h: MIRパイプライン前提整備P2P/Cranelift前の全作業
Status: In Progress9.79 P2PBox前のゲート
Last Updated: 2025-08-25
## 🎯 目的
P2PBoxPhase 9.79に着手する前に、MIRパイプラインBuilder/SSA/MIR26/Verifier/Optimizer/VM整合を完全に安定化し、26命令セットで凍結する。これにより、P2P/Craneliftの土台を強固にする。
## 📦 スコープMIRまわりの全タスク
0) 命令セットの凍結26命令が正
- 命令セットの単一出典: `docs/reference/mir/INSTRUCTION_SET.md` を唯一の参照に統一
- コード側の列挙とテスト: `src/mir/instruction.rs` の列挙と一致、総数26のテストで保証ドキュメント≧コードではなくコード≡ドキュメント
- 25命令文献はアーカイブへ移動本流は26命令
1) Builder/Loweringの確定
- Builder移行完了: `builder.rs``builder_modularized/*`(命令フィールド名・効果一致: `function→func`, `arguments→args`
- Loop SSA復帰: `loop_api` によるPhi挿入・seal・predecessor更新の段階適用、簡易lowering除去
- TypeOp早期lowering網羅: `is/as/isType/asType` の関数/メソッド両パスで確実に `TypeOp(Check/Cast)` 生成、`print(isType(...))` 直下もdst化
2) MIR26命令ダイエットの凍結
- TypeOp統合: Check/Castの意味論確定、Printer表示/エフェクト統一
- WeakRef/Barrier統合: flag ON/OFFで差分固定PoC featureで比較可能に
- 命令リストの合意化: 26命令でのPrinter/Verifier/Optimizer整合
3) Verifier/Printer/Optimizer整合
- Verifier: mergeでのphi未使用検知/支配関係、Barrier位置/WeakRef整合のチェック
- Printer: `--mir-verbose` で TypeOp/WeakRef/Barrier を明示、`--mir-verbose-effects``pure|readonly|side`
- Optimizer: 未lowering安全ネットCall/BoxCall→TypeOp強化、`NYASH_OPT_DIAG_FAIL=1` で診断をCIゲート化
4) VM整合ホットパス健全化
- BinOp: `and`/`or` 実装、BoxRef×BoxRefの数値演算サポート
- Compare/Branch: 既定のVoid/Bool/Intセマンティクスを維持、回帰テスト
- Array/Map/BoxCall: get/set/push/size のfast-path・identity shareの確認
- VM Stats: `--vm-stats`, `--vm-stats-json` の代表ケース更新
5) スナップショット/CI導線
- 軽量スナップショット: TypeOp/extern_call/loop/await/boxcall の含有チェックを代表ケースで固定
- ゴールデン比較: `tools/snapshot_mir.sh` + `tools/ci_check_golden.sh` の運用整備
- CLI分離テスト: `cargo test -p core` のみで回る構成CLI変更で止まらない
6) ランタイム/API整備
- ResultBox移行: `box_trait::ResultBox``boxes::ResultBox` へ全面置換、互換層の段階削除
- ドキュメント同期: CURRENT_TASK/CLAUDE/phase-docを更新し参照経路を一本化
## ✅ 受け入れ基準P2P着手ゲート
- [ ] MIR26整合完了Printer/Verifier/Optimizer一致・効果表記統一
- [ ] Loop SSA復帰Phi/Seal/Pred更新がVerifierで合格
- [ ] TypeOp網羅is/as/isType/asTypeの早期loweringOptimizer診断ONで回帰ゼロ
- [ ] 軽量スナップショット緑TypeOp/extern_call/loop/await/boxcall
- [ ] VM未実装の解消And/Or・BoxRef演算
- [ ] CLI分離テスト導線`cargo test -p core`)安定
- [ ] ResultBox移行完了旧参照なし
- [ ] 命令セットの単一出典化INSTRUCTION_SET.mdと総数26のテストがCIで緑
## 🪜 タスク分解(実行順)
1. Builder移行完了命令フィールド名・効果一致
2. Loop SSA復帰Phi/Seal/Pred更新の段階適用
3. TypeOp早期loweringの網羅 + Optimizer安全ネットの強化
4. MIR26統合TypeOp/WeakRef/BarrierとPrinter/Verifier/Optimizer整合
5. VM補強and/or, BoxRef演算, Array/Map fast-path確認
6. 軽量スナップショット + CLI分離テスト + ResultBox移行の仕上げ
## 🔗 依存/参照
- 次フェーズP2P本体: [phase_9_79_p2pbox_rebuild.md](phase_9_79_p2pbox_rebuild.md)
- CURRENT_TASKの「近々/中期」および「Phase 10 着手ゲート」
- `docs/reference/execution-backend/p2p_spec.md`P2Pは9.79で実装)
## 🚫 非スコープ
- P2PBox/IntentBox/MessageBus実装9.79で扱う)
- Cranelift JIT/LLVM AOTPhase 10以降
---
メモ: 9.78hは「MIRの足場を固める」段階。ここで26命令・SSA・検証・スナップショット・VM整合・ResultBox移行までを完了し、9.79(P2P)→Phase 10(Cranelift)へ安全に進む。

View File

@ -0,0 +1,44 @@
# Phase 9.79: P2PBox再設計・実装Cranelift前に完了
Status: Planned (Pre-Cranelift priority)
Last Updated: 2025-08-25
## 🎯 目的
Cranelift導入前にP2P通信基盤P2PBox/IntentBox/MessageBus/Transportsを再設計・実装し、VM/インタープリター双方で安定動作させる。
## 📦 スコープ
1) モデル/API
- IntentBoxTLV/serde互換
- MessageBus単一共有・購読/発行・ログ)
- P2PBoxnew/on/send/pack、デリゲーション整合
2) Transports段階導入
- InProcess同プロセスbus
- WebSocketWSクライアント/サーバ連携)
- WebRTC将来、 signalingはOut of Scope
3) 実行統合
- VM/InterpreterのBoxCall経由で同一API
- プラグイン/ExternCallと競合しない設計BIDと将来統合
## ✅ 受け入れ基準
- `p2p_spec.md` の代表ケースがVM/Interpreterで成功
- E2E: `node_a.send("bob", IntentBox(...))` が InProcess で往復確認
- `NYASH_VM_DEBUG_BOXCALL=1` でも追跡容易(ログ整備)
## 🪜 実装ステップ
前提9.78h: [phase_9_78h_mir_pipeline_stabilization.md](phase_9_78h_mir_pipeline_stabilization.md) の受け入れ基準を満たすこと。
1. IntentBoxの最小実装payload: MapBox/ArrayBox
2. MessageBus購読/発行、ハンドラ登録)
3. P2PBoxnew/on/send、packはビルトインのみ
4. InProcessTransport同プロセス配送
5. WebSocketTransport PoC非同期I/OはInterpreter側、VMはフォールバック
6. E2E/スナップショット・ドキュメント整備
## 🔗 参考
- docs/reference/execution-backend/p2p_spec.md
- docs/guides/p2p-guide.md
---
備考: 既存 `src/boxes/p2p_box.rs` は古い設計。完全新規で実装する。

View File

@ -1,5 +1,8 @@
# Phase 9.8: BIDレジストリ + 自動コード生成ツールWASM/VM/LLVM/言語)
Status: PlannedPhase 8.6完了後に着手)
Last Updated: 2025-08-25
目的What/Why
- 外部ライブラリをBoxBIDとして配布・発見・利用するための基盤を用意する。
- 当面は nyash.toml にBID情報を“埋め込む”方式で回し、将来は外部BID(manifest)参照+自動生成へ段階拡張する。