Phase 25.1a: selfhost builder hotfix (fn rename, docs)

This commit is contained in:
nyash-codex
2025-11-15 05:42:32 +09:00
parent 8d9bbc40bd
commit 6856922374
40 changed files with 2013 additions and 72 deletions

70
test_numeric_core_phi.sh Normal file
View File

@ -0,0 +1,70 @@
#!/bin/bash
set -e
echo "=== Phase 25 MVP: Testing PHI Type Propagation Fix ==="
echo ""
# Test 1: Simple case (should still work)
echo "Test 1: Simple matmul case"
echo "------------------------"
cat > /tmp/test_matmul_simple.hako << 'EOF'
using numeric.core as nc
static box Main {
main() {
local a = nc.MatI64.new(2, 2)
local b = nc.MatI64.new(2, 2)
local c = a.mul_naive(b)
return c
}
}
EOF
# Build with AOT prep
HAKO_APPLY_AOT_PREP=1 NYASH_AOT_NUMERIC_CORE=1 NYASH_AOT_NUMERIC_CORE_TRACE=1 \
bash tools/hakorune_emit_mir.sh /tmp/test_matmul_simple.hako /tmp/test_simple_result.json
# Check for transformation
if grep -q '"name":"NyNumericMatI64.mul_naive"' /tmp/test_simple_result.json; then
echo "✅ Simple case: transformation SUCCESS"
else
echo "❌ Simple case: transformation FAILED"
exit 1
fi
echo ""
echo "Test 2: Complex matmul_core case"
echo "--------------------------------"
# Test 2: Complex case (matmul_core with PHI chains)
NYASH_AOT_NUMERIC_CORE=1 NYASH_AOT_NUMERIC_CORE_TRACE=1 \
tools/perf/microbench.sh --case matmul_core --backend llvm --exe --runs 1 --n 4 2>&1 | tee /tmp/matmul_core_test.log
# Check trace output for successful transformation
if grep -q "MatI64 vids:" /tmp/matmul_core_test.log; then
echo "✅ Complex case: MatI64 vids detected"
else
echo "⚠️ Complex case: MatI64 vids not shown (might be OK if trace is off)"
fi
if grep -q "transformed.*BoxCall.*Call" /tmp/matmul_core_test.log; then
echo "✅ Complex case: transformation SUCCESS"
else
echo "❌ Complex case: transformation FAILED"
echo "Check /tmp/matmul_core_test.log for details"
exit 1
fi
# Check that we don't see untransformed boxcalls
if grep -q '\[mir_json/numeric_core\].*boxcall("mul_naive")' /tmp/matmul_core_test.log; then
echo "⚠️ Complex case: still seeing untransformed boxcalls"
exit 1
else
echo "✅ Complex case: no untransformed boxcalls detected"
fi
echo ""
echo "=== All tests PASSED ==="
echo ""
echo "Diagnostic logs:"
grep -E '\[aot/numeric_core\]' /tmp/matmul_core_test.log | head -20