Files

2.6 KiB
Raw Permalink Blame History

🚀 LLVM実装クイックスタートガイド

📋 今すぐ始める手順

1. 環境準備5分

# LLVM 17インストール確認
llvm-config --version  # 17.x.x が表示されること

# Nyashプロジェクトで作業
cd /path/to/nyash
git checkout -b feature/llvm-poc

2. 最初のコミット10分

# Cargo.tomlを編集
echo '[dependencies]
inkwell = { version = "0.5", features = ["llvm17-0"] }

[features]
llvm = ["inkwell"]' >> Cargo.toml

# ディレクトリ作成
mkdir -p src/backend/llvm

# 最初のファイル作成
touch src/backend/llvm/mod.rs
touch src/backend/llvm/context.rs
touch src/backend/llvm/compiler.rs

# コミット
git add .
git commit -m "feat(llvm): Add inkwell dependency and basic structure"

3. 最小実装のコピペ20分

src/backend/llvm/mod.rs:

pub mod context;
pub mod compiler;

pub use compiler::compile_to_object;

動作確認:

cargo build --features llvm

4. テストプログラム作成5分

# テスト用Nyashファイル
cat > test_return_42.hako << 'EOF'
static box Main {
    main() {
        return 42
    }
}
EOF

🔍 詰まったときの確認ポイント

ビルドエラーの場合

# LLVM関連の環境変数確認
echo $LLVM_SYS_170_PREFIX

# 設定されていない場合
export LLVM_SYS_170_PREFIX=$(llvm-config --prefix)

inkwellのバージョン問題

# 代替バージョン
inkwell = { git = "https://github.com/TheDan64/inkwell", branch = "master", features = ["llvm17-0"] }

リンクエラーの場合

# pkg-configの確認
pkg-config --libs --cflags llvm

📞 ヘルプが必要な場合

  1. GitHub Issueにコメント
  2. 具体的なエラーメッセージを貼る
  3. 実行したコマンドを記載

例:

inkwellのビルドでエラーが発生しました。

エラー:

error: failed to run custom build command for llvm-sys v170.0.1


実行コマンド:

cargo build --features llvm


環境:
- OS: Ubuntu 22.04
- LLVM: 17.0.6
- Rust: 1.75.0

最初の成功確認

以下が動けば第一歩成功!

# ビルドが通る
cargo build --features llvm

# テストが実行できるまだ失敗してOK
cargo test --features llvm test_llvm

🎯 次のステップ

  1. context.rsの実装
  2. compiler.rsの実装
  3. return 42の動作確認

詳細は001-setup-inkwell-hello-world.mdを参照!


Remember: 完璧より進捗!最初は動くことが最優先です。🚀