1.4 KiB
1.4 KiB
Self‑Hosting — How‑To(前提→手順→検証)
目的
- Ny → MIR → VM/JIT の自己ホスト経路を最短手順で動かす。
前提
- Rust(stable):
cargo --version - Bash + ripgrep(WSL/Unix 推奨)
手順
- ビルド(JIT有効)
- 実行:
cargo build --release --features cranelift-jit
- 実行:
- 最小 E2E(VM、plugins 無効)
- 実行:
NYASH_DISABLE_PLUGINS=1 ./target/release/nyash --backend vm apps/selfhost-minimal/main.nyash
- 実行:
- コアスモーク
- 実行:
bash tools/jit_smoke.sh
- 実行:
- selfhost‑minimal スモーク
- 実行:
bash tools/selfhost_vm_smoke.sh
- 実行:
- 追加(任意)
- ブートストラップ:
bash tools/bootstrap_selfhost_smoke.sh - ラウンドトリップ:
bash tools/ny_roundtrip_smoke.sh
- ブートストラップ:
検証
- 期待出力:
Result: 0(selfhost‑minimal) - スモーク:全成功(非 0 は失敗)
便利フラグ
NYASH_DISABLE_PLUGINS=1外部プラグイン無効化NYASH_CLI_VERBOSE=1実行ログ詳細NYASH_JIT_THRESHOLD=1JIT 降臨テスト
トラブルシュート
- ハング:
timeout 15s ...を付与、NYASH_CLI_VERBOSE=1で詳細 - プラグインエラー: まず
NYASH_DISABLE_PLUGINS=1 - ルート相対パスで実行/
cargo clean -p nyashで個別クリーン
関連
- CI:
.github/workflows/smoke.yml - マージ運用:
docs/CONTRIBUTING-MERGE.md