📚 Phase 15計画を詳細化・更新: Python/llvmlite正式採用とプラグイン全方向ビルド戦略

 主な更新内容:
- Python/llvmlite実装の正式採用を明記(開発速度10倍、~2400行)
- プラグイン全方向ビルド戦略(.so/.o/.a同時生成)で単一EXE生成可能に
- 各実装の予想コード量を具体化(パーサー800行、MIR Builder 2500行、VM 5000行)
- 循環依存問題の解決を明記(nyrtがC ABI経由で提供)
- 現実的なスケジュール調整(2025年9月~2026年3月)

🎉 最新進捗:
- dep_tree_min_string.nyashオブジェクト生成成功(10.4KB)
- LLVM verifier green - dominance違反解決
- Resolver patternでSSA安全性確保

🚀 次のマイルストーン:
- Python/llvmliteでEXE生成パイプライン完成
- nyash-llvm-compiler分離設計
- NyashパーサーMVP実装開始

Everything is Boxの究極形が、ついに実現へ!

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Selfhosting Dev
2025-09-13 15:37:58 +09:00
parent 8e4f6d774d
commit 1d6fab4eda
44 changed files with 1653 additions and 598 deletions

View File

@ -0,0 +1,40 @@
#!/usr/bin/env bash
set -euo pipefail
# Build all plugins in cdylib/staticlib forms and copy artifacts next to Cargo.toml
ROOT_DIR=$(cd "$(dirname "$0")/.." && pwd)
cd "$ROOT_DIR"
PROFILE=${PROFILE:-release}
echo "[plugins] building all (profile=$PROFILE)"
for dir in plugins/*; do
[[ -d "$dir" && -f "$dir/Cargo.toml" ]] || continue
pkg=$(grep -m1 '^name\s*=\s*"' "$dir/Cargo.toml" | sed -E 's/.*"(.*)".*/\1/')
# Determine lib name (prefer [lib].name, else package name with '-' -> '_')
libname=$(awk '/^\[lib\]/{flag=1;next}/^\[/{flag=0}flag && /name\s*=/{print; exit}' "$dir/Cargo.toml" | sed -E 's/.*"(.*)".*/\1/')
if [[ -z "${libname}" ]]; then
libname=${pkg//-/_}
fi
echo "[plugins] -> $pkg (libname=$libname)"
cargo build -p "$pkg" --$PROFILE >/dev/null
# Copy artifacts
outdir="target/$PROFILE"
# cdylib (.so/.dylib/.dll)
for ext in so dylib dll; do
f="${outdir}/lib${libname}.${ext}"
if [[ -f "$f" ]]; then
cp -f "$f" "$dir/" && echo " copied $(basename "$f")"
fi
done
# staticlib (.a)
fa="${outdir}/lib${libname}.a"
if [[ -f "$fa" ]]; then
cp -f "$fa" "$dir/" && echo " copied $(basename "$fa")"
fi
done
echo "[plugins] done"