Files
hakorune/docs/how-to/self-hosting.md

1.4 KiB
Raw Blame History

SelfHosting — HowTo前提→手順→検証

目的

  • Ny → MIR → VM/JIT の自己ホスト経路を最短手順で動かす。

前提

  • Ruststable: cargo --version
  • Bash + ripgrepWSL/Unix 推奨)

手順v2 推奨)

  1. ビルド
    • 実行: cargo build --release
  2. 最小 E2EVM、plugins 無効)
    • 実行: NYASH_DISABLE_PLUGINS=1 ./target/release/nyash --backend vm apps/selfhost-minimal/main.nyash
  3. クイックスモークVM軸
    • 実行: tools/smokes/v2/run.sh --profile quick
  4. プラグイン(任意・動的)
    • 実行: tools/smokes/v2/run.sh --profile plugins
  5. LLVM 統合任意・AOT/ハーネス)
    • 実行: tools/smokes/v2/run.sh --profile integration

検証

  • 期待出力: Result: 0selfhostminimal
  • スモーク:全成功(非 0 は失敗)

便利フラグ

  • NYASH_DISABLE_PLUGINS=1 外部プラグイン無効化
  • NYASH_CLI_VERBOSE=1 実行ログ詳細
  • NYASH_USING_DYLIB_AUTOLOAD=1 using.dylib 自動ロード(開発用)

トラブルシュート

  • ハング: timeout 15s ... を付与、NYASH_CLI_VERBOSE=1 で詳細
  • プラグインエラー: まず NYASH_DISABLE_PLUGINS=1
  • ルート相対パスで実行/cargo clean -p nyash で個別クリーン

関連

  • CI: .github/workflows/smoke.ymlJSON/JUnit 出力は v2 ランナーで取得可能)
  • マージ運用: docs/development/engineering/merge-strategy.md