Remove legacy hardcoded 'sum' carrier validation that was blocking array_filter patterns with different accumulator names (e.g., 'out'). Before: Pattern3 required carrier named 'sum' to exist After: Pattern3 uses carrier_info generically (any carrier name works) Test results: - phase49_joinir_array_filter_smoke: PASS ✅ - phase49_joinir_array_filter_fallback: PASS ✅ - phase49_joinir_array_filter_ab_comparison: PASS ✅ - Full suite: 909/909 PASS, 0 FAIL Also: Archive old roadmap documentation (67k lines moved to docs/archive/) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2.0 KiB
2.0 KiB
LLVM 18 セットアップガイド
Date: 2025-08-31 Platform: Linux/WSL
📦 LLVM 18インストール確認
$ llvm-config-18 --version
18.1.3
$ llvm-config-18 --prefix
/usr/lib/llvm-18
🔧 環境変数設定
方法1: シェル設定(推奨)
# ~/.bashrcまたは~/.zshrcに追加
export LLVM_SYS_180_PREFIX=/usr/lib/llvm-18
# 即座に反映
source ~/.bashrc
方法2: プロジェクトローカル設定
# プロジェクトルートに.envファイル作成
echo "LLVM_SYS_180_PREFIX=/usr/lib/llvm-18" > .env
方法3: ビルド時指定
# 環境変数を直接指定してビルド
LLVM_SYS_180_PREFIX=/usr/lib/llvm-18 cargo build --features llvm
✅ 設定確認
# 環境変数が設定されているか確認
echo $LLVM_SYS_180_PREFIX
# llvm-sysクレートのビルドテスト
cargo check --features llvm
🚀 inkwell使用例
Cargo.tomlに追加:
[dependencies]
inkwell = { version = "0.5", features = ["llvm18-0"] }
[features]
llvm = ["inkwell"]
テストビルド:
export LLVM_SYS_180_PREFIX=/usr/lib/llvm-18
cargo build --features llvm
⚠️ トラブルシューティング
問題: "could not find llvm-config"
# llvm-configへのシンボリックリンク作成
sudo ln -s /usr/bin/llvm-config-18 /usr/bin/llvm-config
問題: "LLVM_SYS_180_PREFIX not set"
# 一時的な解決
export LLVM_SYS_180_PREFIX=/usr/lib/llvm-18
# 永続的な解決(.bashrcに追加)
echo 'export LLVM_SYS_180_PREFIX=/usr/lib/llvm-18' >> ~/.bashrc
source ~/.bashrc
問題: バージョン不一致
# インストール済みLLVMバージョン確認
dpkg -l | grep llvm
# 必要に応じて正しいバージョンをインストール
sudo apt-get install llvm-18 llvm-18-dev