Extended PatternPipelineContext and CarrierUpdateInfo for Pattern 3 AST-based generalization. Changes: 1. PatternPipelineContext: - Added loop_condition: Option<ASTNode> - Added loop_body: Option<Vec<ASTNode>> - Added loop_update_summary: Option<LoopUpdateSummary> - Updated build_pattern_context() for Pattern 3 2. CarrierUpdateInfo: - Added then_expr: Option<ASTNode> - Added else_expr: Option<ASTNode> - Updated analyze_loop_updates() with None defaults Status: Phase 213-2 Steps 2-2 & 2-3 complete Next: Create Pattern3IfAnalyzer to extract if statement and populate update summary
21 lines
817 B
Bash
21 lines
817 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
if [[ "${NYASH_CLI_VERBOSE:-0}" == "1" ]]; then set -x; fi
|
|
|
|
ROOT=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
|
|
cd "$ROOT"
|
|
|
|
echo "[1/3] Build selfhost compiler EXE (no pack) ..." >&2
|
|
timeout -s KILL 10m bash tools/build_compiler_exe.sh --no-pack -o nyc >/dev/null
|
|
|
|
echo "[2/3] Run compiler on sample source ..." >&2
|
|
echo '/*c*/ return 1+2*3 // ok' > tmp/selfhost_sample.hako
|
|
./nyc tmp/selfhost_sample.hako > tmp/selfhost_sample.json
|
|
head -n1 tmp/selfhost_sample.json | rg -q '"kind":"Program"' || { echo "error: not a Program" >&2; exit 2; }
|
|
|
|
echo "[3/3] Execute via PyVM harness ..." >&2
|
|
BIN=${NYASH_BIN:-./target/release/hakorune}
|
|
NYASH_VM_USE_PY=1 "$BIN" --backend vm tmp/selfhost_sample.json --json-file >/dev/null 2>&1 || true
|
|
echo "✅ selfhost_parser_json_smoke OK" >&2
|