Files
hakorune/docs/予定/native-plan/llvm/issue/Quick-Start-Guide.md

134 lines
2.6 KiB
Markdown
Raw Normal View History

# 🚀 LLVM実装クイックスタートガイド
## 📋 今すぐ始める手順
### 1. **環境準備**5分
```bash
# LLVM 17インストール確認
llvm-config --version # 17.x.x が表示されること
# Nyashプロジェクトで作業
cd /path/to/nyash
git checkout -b feature/llvm-poc
```
### 2. **最初のコミット**10分
```bash
# 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**:
```rust
pub mod context;
pub mod compiler;
pub use compiler::compile_to_object;
```
**動作確認**:
```bash
cargo build --features llvm
```
### 4. **テストプログラム作成**5分
```bash
# テスト用Nyashファイル
cat > test_return_42.nyash << 'EOF'
static box Main {
main() {
return 42
}
}
EOF
```
## 🔍 詰まったときの確認ポイント
### **ビルドエラーの場合**
```bash
# LLVM関連の環境変数確認
echo $LLVM_SYS_170_PREFIX
# 設定されていない場合
export LLVM_SYS_170_PREFIX=$(llvm-config --prefix)
```
### **inkwellのバージョン問題**
```toml
# 代替バージョン
inkwell = { git = "https://github.com/TheDan64/inkwell", branch = "master", features = ["llvm17-0"] }
```
### **リンクエラーの場合**
```bash
# 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
```
## ✅ 最初の成功確認
以下が動けば第一歩成功!
```bash
# ビルドが通る
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](./001-setup-inkwell-hello-world.md)を参照!
---
**Remember**: 完璧より進捗!最初は動くことが最優先です。🚀