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>
32 lines
1.3 KiB
PowerShell
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
|
|
} |