This document explains how to run the full pipeline for a single task.
Primary single-task entry:
scripts/run_single_task.py
Execution boundary:
- Host Step1: Readability
- Guest Step2: Syntactic Correctness / Recompilation
- Guest Step3: Semantic Fidelity
python3 scripts/run_single_task.py \
src/7.c \
decompiled/retdec_out/arm32/7/7_gcc_O2_no_g.c \
--arch arm32 \
--original-bin build/arm32/7/7_gcc_O2_no_g \
--results-dir runs/qwen_demo \
--llm-profile qwen3.5-plusArgument summary:
- First positional argument: original source file
- Second positional argument: decompiled source file
--arch: target architecture used to select the Lima instance--original-bin: original binary--results-dir: root directory of the target results tree--llm-profile: active profile name
Force a fresh rerun of the task instead of reusing existing Step2 outputs.
Skip host-side Step1. Use only for debugging.
Run Step1 + Step2 only and skip Step3.
Require an existing successful Step2 result and rerun only Step3.
Outputs are written to:
results_<llm>_v4_full/<arch>/<src>/<bin_name>/<decompiler>/
Each task directory contains:
readability/syntactic/semantic/report.md
readability/test_results_*.json: structured Step1 outputsyntactic/repair_trace.json: iterative Step2 repair tracesemantic/result_metrics.json: Step3 metric summaryreport.md: per-task report
- The corresponding Lima instance is running
- If guest time drifts, synchronize the guest clock first
- Profiles and key inventory are configured under
config/ - Run
scripts/setup_lima_*.shwhen guest setup is required