Files
hakorune/docs/development/roadmap/phases/phase-9/llvm/Practical-Distribution-Strategy.md

3.2 KiB
Raw Blame History

📦 Nyash実用的配布戦略現実的なアプローチ

🎯 配布形態の比較

方式 ファイルサイズ 配布の手間 適用範囲 実用性
個別バイナリ 各1-2MB OS別に配布 全アプリ
APE 3-6MB 1ファイル 小規模CLI
WASM+ランタイム 0.5MB+10MB ランタイム必要 全アプリ

📊 現実的な使い分け

1. メインストリーム配布(推奨)

# OS別の最適化されたバイナリ
nyash-linux-x64    (1.5MB) - musl静的リンク
nyash-windows.exe  (916KB) - mingw最適化
nyash-macos       (1.8MB) - 署名付き

利点:

  • 各OSで最高性能
  • 最小サイズ
  • OS固有機能フル活用
  • 大規模アプリも対応

2. 開発者向け配布

# LLVM IRの中立性を活用
nyashc --emit-bitcode program.hako
# → program.bc (プラットフォーム中立)

# 各自のマシンで最適化コンパイル
nyashc --from-bitcode program.bc --target native

3. 特殊用途でのAPE

# 小さなツール限定
nyash-fmt.com     # コードフォーマッター (2MB)
nyash-lint.com    # リンター (3MB)
nyash-repl.com    # REPL (4MB)

APEが向いている場合:

  • 単体で動くCLIツール
  • 依存ライブラリが少ない
  • 配布の簡単さが最優先

APEが向いていない場合:

  • GUIアプリケーション
  • 大量のライブラリ依存
  • プラグインシステム
  • ゲームなど大規模アプリ

🚀 段階的実装計画(修正版)

Phase 1: 基本マルチターゲット1ヶ月

nyashc build --target linux
nyashc build --target windows
# 個別にビルド、確実に動作

Phase 2: 同時生成最適化3ヶ月

nyashc build --all-targets
# Bitcodeキャッシュで高速化
# 並列ビルドで時間短縮

Phase 3: 配布自動化6ヶ月

nyashc release
# 出力:
# - dist/nyash-v1.0-linux-x64.tar.gz
# - dist/nyash-v1.0-windows-x64.zip
# - dist/nyash-v1.0-macos.dmg
# - dist/nyash-tools.com (APE版ツール集)

💡 賢い配布戦略

メインアプリ: 個別最適化バイナリ

nyash本体:
  Linux: 1.5MB (musl静的)
  Windows: 916KB (mingw)
  macOS: 1.8MB (universal)

開発ツール: APEで統一

開発者ツールAPE:
  nyash-fmt.com: 2MB
  nyash-test.com: 3MB
  nyash-bench.com: 2.5MB

プラグイン: 動的ライブラリ

プラグイン各OS別:
  filebox.so: 200KB (Linux)
  filebox.dll: 180KB (Windows)
  filebox.dylib: 220KB (macOS)

🎉 結論

「適材適所」が最強の戦略!

  • 大規模アプリ: 個別最適化バイナリ
  • 小規模ツール: APEで配布簡略化
  • 開発者向け: Bitcodeで柔軟性確保

APEは「魔法」だけど、現実的には限定的な用途で輝く技術。 Nyashのメイン配布は堅実な個別バイナリで行きましょう!

Everything is Box、でも配布は現実的に📦