fix(aot): Phase 25 MVP - numeric_core transformation完全動作

2つの重大バグを修正してBoxCall→Call変換を実現:

1. nyash.toml: numeric_coreモジュールマッピング追加
   - selfhost.llvm.ir.aot_prep.passes.numeric_core パスが解決できなかった
   - 224行目に追加してusing解決を修正

2. numeric_core.hako: JSONパース処理の根本修正
   - 問題: text.indexOf("{") が全JSONのルート{を検出
   - 結果: 全体が1命令として扱われ型検出が完全に破綻
   - 修正: op-marker-first パターンに変更
     - "op":"..." を先に検出
     - lastIndexOf("{") で命令開始を特定
     - 各命令を個別に正しく処理

成果:
- 型テーブルサイズ: 1 → 3 (MatI64インスタンス完全検出)
- 変換: BoxCall(MatI64, "mul_naive") → Call("NyNumericMatI64.mul_naive")
- 検証: 全テストパス(単体・E2E・変換・残骸確認)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
nyash-codex
2025-11-15 00:02:13 +09:00
parent e23b906512
commit a85045df26
4 changed files with 217 additions and 10 deletions

View File

@ -4,7 +4,16 @@
---
## 🔄 **現在の開発状況** (2025-09-28)
## 🔄 **現在の開発状況** (2025-11-15)
### 🎉 **Phase 25 MVP 完全成功!** (2025-11-15)
- **numeric_core BoxCall→Call変換** 完全動作!
- **2つの重大バグ修正**:
1. nyash.toml モジュールマッピング欠落224行目追加
2. numeric_core.hako JSONパース処理のバグ全JSON→個別命令処理に修正
- **型検出システム正常動作**: 型テーブルサイズ 1→3、MatI64インスタンス完全検出
- **変換例**: `BoxCall(MatI64, "mul_naive")``Call("NyNumericMatI64.mul_naive")`
- **検証**: 全テストパス単体・E2E・変換確認・残骸確認
### 🎯 **Phase 15: セルフホスティング実行器統一化**
- **Rust VM + LLVM 2本柱体制**で開発中