saqut-compiler/build
saqut 7c93f12304 fix(ir): ! operatörü kopyalama yerine (x == 0) üretiyor (B2)
Sorun: unary ! dalı emitLoadSlot ile operandı kopyalıyordu — terslemiyordu.
Sabitlerde sabit katlama doğru çalışıyordu; değişken operandlar her zaman
orijinal değeri döndürüyordu.

Düzeltme: BANG case'i EQUAL_EQUAL(operand, 0) olarak üretiliyor.
  !x → slots[result] = (slots[operand] == 0) ? 1 : 0
Sonuç her zaman 0 ya da 1; bool int olarak temsil edilmesiyle tutarlı.
~ (B2/F2 kapsamı dışı) eski TODO dalında kalmaya devam ediyor.

Test: tests/golden/logic/not_operator.sqt — değişken operandla !0→1,
!5→0, !!5→1, !!0→0, if(!x) dallanma. 17/17 test yeşil.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 16:15:46 +03:00
..
CMakeFiles fix(ir): ! operatörü kopyalama yerine (x == 0) üretiyor (B2) 2026-06-19 16:15:46 +03:00
Testing/Temporary fix(ir): ! operatörü kopyalama yerine (x == 0) üretiyor (B2) 2026-06-19 16:15:46 +03:00
.ninja_deps fix(ir): ! operatörü kopyalama yerine (x == 0) üretiyor (B2) 2026-06-19 16:15:46 +03:00
.ninja_log fix(ir): ! operatörü kopyalama yerine (x == 0) üretiyor (B2) 2026-06-19 16:15:46 +03:00
CMakeCache.txt feat(ir-vm): fibonacci.sqt çalışıyor — IR üretici + bytecode VM 2026-06-18 19:17:30 +03:00
CTestTestfile.cmake fix(ir): ! operatörü kopyalama yerine (x == 0) üretiyor (B2) 2026-06-19 16:15:46 +03:00
build.ninja fix(ir): && ve || kısa devre dallanmasıyla üret (ADR-008) 2026-06-19 15:54:03 +03:00
cmake_install.cmake Gemini 2026-05-27 10:29:30 +03:00