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>
52 lines
1.3 KiB
Batchfile
52 lines
1.3 KiB
Batchfile
@echo off
|
|
setlocal ENABLEDELAYEDEXPANSION
|
|
chcp 65001 >nul
|
|
|
|
echo [Nyash AOT Build - libffi disabled]
|
|
echo ===================================
|
|
|
|
REM Set LLVM environment variables
|
|
set "LLVM_SYS_180_PREFIX=C:\LLVM-18"
|
|
set "LLVM_SYS_NO_LIBFFI=1"
|
|
set "LLVM_SYS_180_FFI_WORKAROUND=1"
|
|
|
|
echo LLVM_SYS_180_PREFIX=%LLVM_SYS_180_PREFIX%
|
|
echo LLVM_SYS_NO_LIBFFI=%LLVM_SYS_NO_LIBFFI%
|
|
|
|
REM Verify LLVM installation
|
|
if not exist "%LLVM_SYS_180_PREFIX%\include\llvm-c\Core.h" (
|
|
echo ERROR: Core.h not found at %LLVM_SYS_180_PREFIX%\include\llvm-c\Core.h
|
|
exit /b 1
|
|
)
|
|
|
|
if not exist "%LLVM_SYS_180_PREFIX%\lib\cmake\llvm\LLVMConfig.cmake" (
|
|
echo ERROR: LLVMConfig.cmake not found at %LLVM_SYS_180_PREFIX%\lib\cmake\llvm\LLVMConfig.cmake
|
|
exit /b 1
|
|
)
|
|
|
|
echo LLVM installation verified successfully!
|
|
|
|
REM Add LLVM to PATH
|
|
set "PATH=%LLVM_SYS_180_PREFIX%\bin;%PATH%"
|
|
|
|
REM Clean and build
|
|
echo.
|
|
echo Cleaning previous build...
|
|
cargo clean
|
|
|
|
echo.
|
|
echo Building Nyash with LLVM AOT support (no libffi)...
|
|
cargo build --bin nyash --release --features llvm
|
|
|
|
REM Check result
|
|
echo.
|
|
if exist "target\release\nyash.exe" (
|
|
echo SUCCESS: nyash.exe built successfully!
|
|
echo.
|
|
dir target\release\nyash.exe
|
|
) else (
|
|
echo ERROR: Build failed - nyash.exe not found
|
|
exit /b 1
|
|
)
|
|
|
|
endlocal |