builder/vm: stabilize json_lint_vm under unified calls

- Fix condition_fn resolution: Value call path + dev safety + stub injection
- VM bridge: handle Method::birth via BoxCall; ArrayBox push/get/length/set direct bridge
- Receiver safety: pin receiver in method_call_handlers to avoid undefined use across blocks
- Local vars: materialize on declaration (use init ValueId; void for uninit)
- Prefer legacy BoxCall for Array/Map/String/user boxes in emit_box_or_plugin_call (stability-first)
- Test runner: update LLVM hint to llvmlite harness (remove LLVM_SYS_180_PREFIX guidance)
- Docs/roadmap: update CURRENT_TASK with unified default-ON + guards

Note: NYASH_DEV_BIRTH_INJECT_BUILTINS=1 can re-enable builtin birth() injection during migration.
This commit is contained in:
nyash-codex
2025-09-28 12:19:49 +09:00
parent 41a46b433d
commit 510f4cf523
74 changed files with 2846 additions and 825 deletions

View File

@ -2,6 +2,33 @@
このファイルは最小限の入口だよ。詳細はREADMEから辿ってねにゃ😺
---
## 🔄 **現在の開発状況** (2025-09-28)
### 🎯 **Phase 15: セルフホスティング実行器統一化**
- **Rust VM + LLVM 2本柱体制**で開発中
- **Core Box統一化**: 3-tier → 2-tier 統一完了
- **MIR Callee型革新**: 型安全な関数解決システム実装済み
### 🤝 **AI協働開発体制**
```
Claude: 戦略・分析・レビュー
ChatGPT: 実装・検証
現在の合意:
✅ Phase 15集中セルフホスト優先
✅ Builder根治は段階的3 Phase戦略
✅ 息が合っている状態: 良好
```
### 📚 **重要リソース**
- **開発マスタープラン**: [00_MASTER_ROADMAP.md](docs/development/roadmap/phases/00_MASTER_ROADMAP.md)
- **現在のタスク**: [CURRENT_TASK.md](CURRENT_TASK.md)
- **Phase 15詳細**: [docs/development/roadmap/phases/phase-15/](docs/development/roadmap/phases/phase-15/)
---
## 🚨 重要スモークテストはv2構造を使う
- 📖 **スモークテスト完全ガイド**: [tools/smokes/README.md](tools/smokes/README.md)
- 📁 **v2詳細ドキュメント**: [tools/smokes/v2/README.md](tools/smokes/v2/README.md)
@ -16,9 +43,13 @@ cargo build --release
# 一括スモークテスト
tools/smokes/v2/run.sh --profile quick
# 個別スモークテスト
# 個別スモークテスト(フィルタ指定)
tools/smokes/v2/run.sh --profile quick --filter "<glob>"
# 例: --filter "core/json_query_min_vm.sh"
# 例: --filter "userbox_*" # User Box関連のみ
# 例: --filter "json_*" # JSON関連のみ
# 単発スクリプト実行
bash tools/smokes/v2/profiles/quick/core/selfhost_mir_m3_jump_vm.sh
# 単発実行(参考)
./target/release/nyash --backend vm apps/APP/main.nyash
@ -29,14 +60,17 @@ tools/smokes/v2/run.sh --profile quick --filter "<glob>"
# 前提: Python3 + llvmlite
# 未導入なら: pip install llvmlite
# ビルドLLVM_SYS_180_PREFIX不要
cargo build --release --features llvm
# 一括スモークテスト
# 一括スモークテスト(そのまま実行
tools/smokes/v2/run.sh --profile integration
# 個別スモークテスト
# 警告低減版(ビルド後に実行・推奨)
cargo build --release -p nyash-llvm-compiler && cargo build --release --features llvm
tools/smokes/v2/run.sh --profile integration
# 個別スモークテスト(フィルタ指定)
tools/smokes/v2/run.sh --profile integration --filter "<glob>"
# 例: --filter "json_*" # JSON関連のみ
# 例: --filter "vm_llvm_*" # VM/LLVM比較系のみ
# 単発実行
NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash --backend llvm apps/tests/peek_expr_block.nyash
@ -179,15 +213,15 @@ target/x86_64-pc-windows-msvc/release/nyash.exe
./target/release/nyash --backend llvm program.nyash # 実行時最適化
```
### 🎯 **2本柱ビルド方法** (2025-09-24更新)
### 🎯 **2本柱ビルド方法** (2025-09-28更新)
#### 🔨 **標準ビルド**(推奨)
```bash
# 標準ビルド2本柱対応
cargo build --release
# LLVM機能付きビルド(本番用)
env LLVM_SYS_180_PREFIX=/usr/lib/llvm-18 cargo build --release --features llvm
# LLVMllvmliteハーネス付きビルド(本番用)
cargo build --release --features llvm
```
#### 📝 **2本柱テスト実行**
@ -196,9 +230,9 @@ env LLVM_SYS_180_PREFIX=/usr/lib/llvm-18 cargo build --release --features llvm
cargo build --release
./target/release/nyash program.nyash
# 2. LLVM実行 ✅(本番・最適化用)
env LLVM_SYS_180_PREFIX=/usr/lib/llvm-18 cargo build --release --features llvm
./target/release/nyash --backend llvm program.nyash
# 2. LLVM実行 ✅(本番・最適化用, llvmliteハーネス
cargo build --release --features llvm
NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash --backend llvm program.nyash
# 3. プラグインテスト実証済み ✅
# CounterBox
@ -829,7 +863,9 @@ box MyBox {
- Reference: [docs/reference/](docs/reference/)
### 🎯 リファレンス
- **言語**: [LANGUAGE_REFERENCE_2025.md](docs/reference/language/LANGUAGE_REFERENCE_2025.md)
- **言語**:
- [Quick Reference](docs/reference/language/quick-reference.md) ⭐最優先 - 1ページ実用ガイド
- [LANGUAGE_REFERENCE_2025.md](docs/reference/language/LANGUAGE_REFERENCE_2025.md) - 完全仕様
- **MIR**: [INSTRUCTION_SET.md](docs/reference/mir/INSTRUCTION_SET.md)
- **API**: [boxes-system/](docs/reference/boxes-system/)
- **プラグイン**: [plugin-system/](docs/reference/plugin-system/)
@ -847,6 +883,7 @@ box MyBox {
### 🎯 最重要ドキュメント2つの核心
#### 🔤 言語仕様
- **[クイックリファレンス](docs/reference/language/quick-reference.md)** ⭐最優先 - 1ページ実用ガイドASI・Truthiness・演算子・型ルール
- **[構文早見表](docs/quick-reference/syntax-cheatsheet.md)** - 基本構文・よくある間違い
- **[完全リファレンス](docs/reference/language/LANGUAGE_REFERENCE_2025.md)** - 言語仕様詳細