Phase 11-12: LLVM backend initial, semantics layer, plugin unification

Major changes:
- LLVM backend initial implementation (compiler.rs, llvm mode)
- Semantics layer integration in interpreter (operators.rs)
- Phase 12 plugin architecture revision (3-layer system)
- Builtin box removal preparation
- MIR instruction set documentation (26→Core-15 migration)
- Cross-backend testing infrastructure
- Await/nowait syntax support

New features:
- LLVM AOT compilation support (--backend llvm)
- Semantics layer for interpreter→VM flow
- Tri-backend smoke tests
- Plugin-only registry mode

Bug fixes:
- Interpreter plugin box arithmetic operations
- Branch test returns incorrect values

Documentation:
- Phase 12 README.md updated with new plugin architecture
- Removed obsolete NYIR proposals
- Added LLVM test programs documentation

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Moe Charm
2025-09-01 23:44:34 +09:00
parent fff9749f47
commit 11506cee3b
196 changed files with 10955 additions and 380 deletions

26
build_llvm_wsl.sh Normal file
View File

@ -0,0 +1,26 @@
#!/bin/bash
set -e
echo "Building Nyash with LLVM for Windows from WSL..."
# Windows側のLLVMを使う
export LLVM_SYS_180_PREFIX="/mnt/c/Program Files/LLVM"
# 追加の環境変数Qt6ビルドで使っていたかもしれない技
export LLVM_SYS_180_FFI_WORKAROUND=1
export CC=x86_64-w64-mingw32-gcc
export CXX=x86_64-w64-mingw32-g++
export AR=x86_64-w64-mingw32-ar
# MinGWターゲットで試すQt6と同じ方法
echo "Trying MinGW target..."
cargo build --target x86_64-pc-windows-gnu --release --features llvm
# 成功したら実行ファイルの場所を表示
if [ $? -eq 0 ]; then
echo "Build successful!"
echo "Binary at: target/x86_64-pc-windows-gnu/release/nyash.exe"
else
echo "MinGW build failed, trying MSVC target with cargo-xwin..."
cargo xwin build --target x86_64-pc-windows-msvc --release --features llvm
fi