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:
@ -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
|
||||
|
||||
@ -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を先行実施して感触を掴む
|
||||
|
||||
@ -0,0 +1,72 @@
|
||||
# Phase 9.78h: MIRパイプライン前提整備(P2P/Cranelift前の全作業)
|
||||
|
||||
Status: In Progress(9.79 P2PBox前のゲート)
|
||||
Last Updated: 2025-08-25
|
||||
|
||||
## 🎯 目的
|
||||
P2PBox(Phase 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の早期lowering+Optimizer診断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 AOT(Phase 10以降)
|
||||
|
||||
---
|
||||
メモ: 9.78hは「MIRの足場を固める」段階。ここで26命令・SSA・検証・スナップショット・VM整合・ResultBox移行までを完了し、9.79(P2P)→Phase 10(Cranelift)へ安全に進む。
|
||||
@ -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
|
||||
- IntentBox(TLV/serde互換)
|
||||
- MessageBus(単一共有・購読/発行・ログ)
|
||||
- P2PBox(new/on/send/pack、デリゲーション整合)
|
||||
|
||||
2) Transports(段階導入)
|
||||
- InProcess(同プロセスbus)
|
||||
- WebSocket(WSクライアント/サーバ連携)
|
||||
- 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. P2PBox(new/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` は古い設計。完全新規で実装する。
|
||||
@ -1,5 +1,8 @@
|
||||
# Phase 9.8: BIDレジストリ + 自動コード生成ツール(WASM/VM/LLVM/言語)
|
||||
|
||||
Status: Planned(Phase 8.6完了後に着手)
|
||||
Last Updated: 2025-08-25
|
||||
|
||||
目的(What/Why)
|
||||
- 外部ライブラリをBox(BID)として配布・発見・利用するための基盤を用意する。
|
||||
- 当面は nyash.toml にBID情報を“埋め込む”方式で回し、将来は外部BID(manifest)参照+自動生成へ段階拡張する。
|
||||
|
||||
Reference in New Issue
Block a user