saqut-compiler/docs
saqut c5fb57412a fix(ir): && ve || kısa devre dallanmasıyla üret (ADR-008)
Sorun: IR üretici && ve || için case içermiyordu, default koluna
düşüp LOAD_CONST 0 üretiyordu — değişken operandlarda her zaman
false dönüyordu (sabit katlama yolu zaten doğruydu).

Düzeltme: her iki operatör artık dallanma olarak üretiliyor:
  a && b → JIF_FALSE (a false ise b'yi atla)
  a || b → JIF_TRUE  (a true ise b'yi atla)

JIF_TRUE yeni opcode olarak eklendi (instruction.hpp + interpreter.cpp).
do-while'ın mevcut "== 1 karşılaştırması" geçici çözümü bu opcode'dan
faydalanabilir — ayrı düzeltme (B4).

Test: tests/golden/logic/short_circuit.sqt — yan etkinin gerçekten
atlandığını çıktıyla kanıtlar (12/12 test yeşil).

ADR: docs/adr/ADR-008-kisa-devre-mantiksal-operatorler.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 15:54:03 +03:00
..
adr fix(ir): && ve || kısa devre dallanmasıyla üret (ADR-008) 2026-06-19 15:54:03 +03:00
adr-frontend-analiz.md refactor(opt): klon sadece ast komutunda — run/ir yerinde optimize eder 2026-06-18 23:15:27 +03:00
architecture.md docs: README yeniden yazıldı — GitHub vitrin formatı, mimari referans docs/architecture.md'ye taşındı 2026-06-18 21:53:08 +03:00
fikirler.md docs: belgeleri yeniden hizala (IR+VM modeli, kilitli kararlar) 2026-06-14 19:53:12 +03:00
issues.md Gemini 2026-05-27 10:29:30 +03:00
perf-after.txt perf(tokenizer): switch dispatch + unordered_map keyword lookup 2026-06-18 18:35:10 +03:00
perf-before.txt perf(tokenizer): switch dispatch + unordered_map keyword lookup 2026-06-18 18:35:10 +03:00
prcontext.md Gemini 2026-05-27 10:29:30 +03:00
roadmap-frontend.md docs: belgeleri yeniden hizala (IR+VM modeli, kilitli kararlar) 2026-06-14 19:53:12 +03:00
todo.md Gemini 2026-05-27 10:29:30 +03:00
transkript-frontend-tasarim.md docs: frontend tasarim kararlari, transkript ve yol haritasi 2026-06-14 17:56:42 +03:00