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:
@ -221,6 +221,7 @@ path = "lang/src/shared/common/string_helpers.hako"
|
||||
"selfhost.llvm.ir.aot_prep.passes.const_dedup" = "lang/src/llvm_ir/boxes/aot_prep/passes/const_dedup.hako"
|
||||
"selfhost.llvm.ir.aot_prep.passes.binop_cse" = "lang/src/llvm_ir/boxes/aot_prep/passes/binop_cse.hako"
|
||||
"selfhost.llvm.ir.aot_prep.passes.collections_hot" = "lang/src/llvm_ir/boxes/aot_prep/passes/collections_hot.hako"
|
||||
"selfhost.llvm.ir.aot_prep.passes.numeric_core" = "lang/src/llvm_ir/boxes/aot_prep/passes/numeric_core.hako"
|
||||
"selfhost.llvm.ir.aot_prep.passes.fold_const_ret" = "lang/src/llvm_ir/boxes/aot_prep/passes/fold_const_ret.hako"
|
||||
"selfhost.shared.json.core.json_canonical" = "lang/src/shared/json/json_canonical_box.hako"
|
||||
"selfhost.shared.common.common_imports" = "lang/src/shared/common/common_imports.hako"
|
||||
|
||||
Reference in New Issue
Block a user