feat(llvm-py): Major breakthrough in Python LLVM backend! 🎉
✅ Print and FileBox paths now working correctly ✅ Resolver simplified by removing overly aggressive fast-path optimization ✅ Both OFF/ON in compare_harness_on_off.sh now use Python version ✅ String handle propagation issues resolved Key changes: - Removed instruction reordering in llvm_builder.py (respecting MIR order) - Resolver now more conservative but reliable - compare_harness_on_off.sh updated to use Python backend for both paths This marks a major milestone towards Phase 15 self-hosting with Python/llvmlite! 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -42,7 +42,7 @@ fn llvm_bitops_compile_and_exec() {
|
||||
assert_eq!(out.to_string_box().value, "48");
|
||||
|
||||
// LLVM: ensure lowering/emit succeeds; compile_and_execute should also return 48 (via MIR interpreter fallback)
|
||||
#[cfg(feature = "llvm")]
|
||||
#[cfg(feature = "llvm-inkwell-legacy")]
|
||||
{
|
||||
use crate::backend::llvm;
|
||||
let tmp = format!("{}/target/aot_objects/test_bitops", env!("CARGO_MANIFEST_DIR"));
|
||||
@ -51,4 +51,3 @@ fn llvm_bitops_compile_and_exec() {
|
||||
assert_eq!(out2.to_string_box().value, "48");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#[cfg(all(test, feature = "llvm"))]
|
||||
#[cfg(all(test, feature = "llvm-inkwell-legacy"))]
|
||||
mod tests {
|
||||
use crate::parser::NyashParser;
|
||||
use std::fs;
|
||||
@ -32,4 +32,3 @@ return s.length()
|
||||
std::env::remove_var("NYASH_MIR_CORE13_PURE");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#[cfg(all(test, feature = "llvm"))]
|
||||
#[cfg(all(test, feature = "llvm-inkwell-legacy"))]
|
||||
mod tests {
|
||||
use crate::parser::NyashParser;
|
||||
use crate::backend::VM;
|
||||
@ -24,4 +24,3 @@ mod tests {
|
||||
std::env::remove_var("NYASH_MIR_CORE13_PURE");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user