Phase 25.1a: selfhost builder hotfix (fn rename, docs)

This commit is contained in:
nyash-codex
2025-11-15 05:42:32 +09:00
parent 8d9bbc40bd
commit 6856922374
40 changed files with 2013 additions and 72 deletions

View File

@ -14,6 +14,13 @@
- **型検出システム正常動作**: 型テーブルサイズ 1→3、MatI64インスタンス完全検出
- **変換例**: `BoxCall(MatI64, "mul_naive")``Call("NyNumericMatI64.mul_naive")`
- **検証**: 全テストパス単体・E2E・変換確認・残骸確認
- **🔧 追加修正(継続セッション)**:
- **PHI型伝播修正**: 4回反復型伝播で copy → phi → copy チェーン完全対応8d9bbc40
- **環境変数伝播**: microbench.sh に NYASH_AOT_NUMERIC_CORE 伝播追加3d082ca1
- **両SSAパターン検証**: 冗長版13 PHI& 最適化版1 PHI両方で変換成功確認 ✅
- **ログ転送問題根治**: hakorune_emit_mir.sh の provider 経路にログ転送追加(ユーザー実装)
- **STRICT mode 調査**: check_numeric_core_invariants() 実装済みだが未使用(タイミング問題で無効化)
- **🛠️ 推奨ワークフロー確立**: `tools/dev_numeric_core_prep.sh` で環境変数自動設定 ✅
### 🎯 **Phase 15: セルフホスティング実行器統一化**
- **Rust VM + LLVM 2本柱体制**で開発中
@ -951,6 +958,36 @@ NYASH_CLI_VERBOSE=1 # 詳細診断
NYASH_DUMP_JSON_IR=1 # JSON IR出力
```
### 🧬 Phase 25 Numeric Core 開発ワークフロー(推奨)
**numeric_core / AotPrep のデバッグは必ず `dev_numeric_core_prep.sh` を使用!**
```bash
# 基本的な使い方
tools/dev_numeric_core_prep.sh your_case.hako out.json 2> dev.log
# ログを確認
cat dev.log | grep -E "\[aot/numeric_core\]|\[prep:\]"
```
**環境変数**:
- `NYASH_AOT_NUMERIC_CORE=1` - numeric_core パス有効化(自動設定)
- `NYASH_AOT_NUMERIC_CORE_TRACE=1` - 詳細ログ出力(自動設定)
- `HAKO_APPLY_AOT_PREP=1` - AotPrep パイプライン有効化(自動設定)
**期待されるログ出力**:
```
[aot/numeric_core] type table size: 4
[aot/numeric_core] copy-prop MatI64: r2 → r6
[aot/numeric_core] phi-prop MatI64: r7
[aot/numeric_core] transformed BoxCall(MatI64, mul_naive) → Call(NyNumericMatI64.mul_naive)
```
**トラブルシューティング**:
- ログが見えない → `hakorune_emit_mir.sh` のログ転送確認
- 変換されない → 型テーブルに MatI64 が登録されているか確認
- STRICT mode エラー → Pre-AotPrep 段階での誤検出(無効化推奨)
### 🤖 AI相談
```bash
# Gemini CLIで相談