Files
hakorune/build_aot_only.ps1
Moe Charm 11506cee3b 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>
2025-09-01 23:44:34 +09:00

32 lines
1.3 KiB
PowerShell

# PowerShell script for building Nyash with LLVM AOT support (no libffi)
Write-Host "Setting up environment for AOT-only LLVM build..." -ForegroundColor Green
# Set environment variables
$env:LLVM_SYS_180_PREFIX = "C:\LLVM-18"
$env:LLVM_SYS_180_FFI_WORKAROUND = "1"
$env:LLVM_SYS_NO_LIBFFI = "1" # This is the key - disable libffi
$env:PATH = "C:\LLVM-18\bin;" + $env:PATH
Write-Host "Environment variables set:" -ForegroundColor Yellow
Write-Host " LLVM_SYS_180_PREFIX = $env:LLVM_SYS_180_PREFIX"
Write-Host " LLVM_SYS_NO_LIBFFI = $env:LLVM_SYS_NO_LIBFFI (libffi disabled for AOT)"
# Clean build directory
Write-Host "`nCleaning previous build..." -ForegroundColor Yellow
cargo clean
# Build with LLVM feature
Write-Host "`nBuilding Nyash with LLVM AOT support..." -ForegroundColor Green
cargo build --bin nyash --release --features llvm
# Check output
Write-Host "`nChecking build output..." -ForegroundColor Yellow
if (Test-Path "target\release\nyash.exe") {
Write-Host "SUCCESS: nyash.exe created!" -ForegroundColor Green
Get-Item "target\release\nyash.exe" | Format-List Name, Length, LastWriteTime
} else {
Write-Host "ERROR: nyash.exe not found" -ForegroundColor Red
Write-Host "Listing exe files in target\release:"
Get-ChildItem "target\release\*.exe" | Format-Table Name, Length
}