feat(llvm/phi): Phase 278 P0 - remove deprecated PHI debug env vars

## Changes
- debug_helper.py: Remove backward compatibility (warning → error + exit 1)
- environment-variables.md: Migrate deprecated section with migration guide
- phase278_p0_deprecated_env_fail.sh: Add smoke test for deprecated var detection

## Removed Variables (5)
- NYASH_LLVM_PHI_DEBUG
- NYASH_PHI_TYPE_DEBUG
- NYASH_PHI_ORDERING_DEBUG
- NYASH_LLVM_TRACE_PHI
- NYASH_LLVM_VMAP_TRACE

## SSOT Variables (3) - Unchanged
- NYASH_LLVM_DEBUG_PHI=1
- NYASH_LLVM_DEBUG_PHI_TRACE=1
- NYASH_LLVM_PHI_STRICT=1

## Benefits
-  Deprecated vars cause fail-fast error (not silent)
-  Error messages include replacement hints
-  Documentation reflects removal (migration guide included)
-  Smoke test verifies deprecated var rejection
-  No regressions in existing tests

## Testing
 Test 1: Deprecated NYASH_LLVM_PHI_DEBUG rejected
 Test 2: Deprecated NYASH_LLVM_TRACE_PHI rejected
 Test 3: SSOT vars work normally
 Regression tests: strict=OFF, strict=ON, debug mode - all pass

🤖 Generated with Claude Code

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-22 15:08:50 +09:00
parent 939efbca9b
commit 264940ef51
3 changed files with 72 additions and 20 deletions

View File

@ -0,0 +1,42 @@
#!/bin/bash
# Phase 278 P0: Verify deprecated env vars are rejected
set -e
# Build
cargo build --release --features llvm
# Test 1: NYASH_LLVM_PHI_DEBUG should fail
echo "Test 1: Deprecated NYASH_LLVM_PHI_DEBUG should fail..."
if NYASH_LLVM_PHI_DEBUG=1 NYASH_LLVM_USE_HARNESS=1 \
./target/release/hakorune --backend llvm \
apps/tests/phase275_p0_plus_number_only_min.hako 2>&1 | grep -q "was removed in Phase 278"; then
echo "✅ Test 1 passed: Deprecated var rejected"
else
echo "❌ Test 1 failed: Expected error message"
exit 1
fi
# Test 2: NYASH_LLVM_TRACE_PHI should fail
echo "Test 2: Deprecated NYASH_LLVM_TRACE_PHI should fail..."
if NYASH_LLVM_TRACE_PHI=1 NYASH_LLVM_USE_HARNESS=1 \
./target/release/hakorune --backend llvm \
apps/tests/phase275_p0_plus_number_only_min.hako 2>&1 | grep -q "was removed in Phase 278"; then
echo "✅ Test 2 passed: Deprecated var rejected"
else
echo "❌ Test 2 failed: Expected error message"
exit 1
fi
# Test 3: SSOT vars should work
echo "Test 3: SSOT vars should work..."
if NYASH_LLVM_DEBUG_PHI=1 NYASH_LLVM_USE_HARNESS=1 \
./target/release/hakorune --backend llvm \
apps/tests/phase275_p0_plus_number_only_min.hako > /dev/null 2>&1; then
echo "✅ Test 3 passed: SSOT var works"
else
echo "❌ Test 3 failed: SSOT var should work"
exit 1
fi
echo "✅ All Phase 278 P0 smoke tests passed"