B
bisect-ssa-pass
Workflow for debugging SSA pass semantic preservation using the noir-ssa CLI. Use when a program's behavior changes incorrectly during the SSA pipeline - bisects passes to identify which one breaks semantics. The `pass_vs_prev` fuzzer finds such issues automatically.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Workflow for debugging SSA pass semantic preservation using the noir-ssa CLI. Use when a program's behavior changes incorrectly during the SSA pipeline - bisects passes to identify which one breaks semantics. The pass_vs_prev fuzzer finds such issues automatically.
How to use
- Przygotuj projekt Noir z plikiem Prover.toml zawierającym dane wejściowe, które ujawniają problem — program powinien produkować nieprawidłowe wyniki lub zachowywać się nieoczekiwanie.
- Skompiluj projekt z flagą
--show-ssa, aby wygenerować wyjście SSA po każdym przejściu optymalizacyjnym:nargo compile --show-ssai zapisz wynik do pliku (np.ssa_output.txt). Nie używaj poleceń obcinających wyjście (takich jakhead) — czekaj, aż kompilacja się całkowicie zakończy i wszystkie przejścia zostaną zapisane. - Sprawdź, czy plik zawiera wszystkie przejścia, uruchamiając
grep -E "^After " ssa_output.txt— powinno być około 49 przejść. - Podziel wyjście SSA na osobne pliki dla każdego przejścia, używając dostarczonego skryptu:
./scripts/split-ssa-passes.sh ssa_output.txt ssa_passes. - Oczyść pliki z nagłówków i diagnostyki za pomocą skryptu:
./scripts/clean-ssa-passes.sh ssa_passes. - Uruchom bisekt na przejściach, aby zidentyfikować, które z nich zmienia zachowanie programu — skill automatycznie przetestuje każde przejście i wskaże problematyczne.