[Fikir] Performans için C Tarzı Tasarım Kararları (Hız Önceliksiz Ama Bilinçli) #108
Labels
No Label
cli-ux
faz-plani
felsefe-gozden-gecir
ffi-builtin
fikir
gelecek-vizyon
ir-vm
kalite-mimari
moduller-import
test-senaryosu
tip-sistemi
tooling-lsp
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: saqut/saqut-compiler#108
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Giriş (Nedir, Neden Önemli?)
ADR-015 "öncelik determinizm + incelenebilirlik, ham hız değil" diyor — bu doğru bir karar. Ama "hız öncelik değil" ile "gereksiz yere yavaş" aynı şey değildir. Bu issue, mimariyi karmaşıklaştırmadan (yeni soyutlama eklemeden) elde edilebilecek "bedava" performans kazanımlarını listeler — C'nin "ne kadar az iş, o kadar hızlı" felsefesinden ilham alarak.
Gelişme (Tavsiyeler)
Type/Symbolnesneleristd::stringgibi alanlar taşıyor — bunlar fonksiyonlara referans/const&ile geçilmeli, değer ile değil. Bu, "header-only" (ADR-003) ile çatışmaz, sadece dikkatli imza yazımı gerektirir.std::unique_ptrile sahiplik (ownership) net olsun (#44'te bahsedilen issue tipi) — bellek sahipliği belirsizse hem bug hem performans kaybı (gereksizshared_ptr/kopya) olur.push X; pop→ hiçbir şey) IR seviyesinde temizlenebilir — bu, Faz 4'ün constant folding'ine benzer ama IR'e özel, küçük bir ek pass olabilir.saqutbinary'sinin kendi derlenme hızı): header-only + agresif template kullanımı derleme süresini şişirebilir —-Wall -Wextrayanında zaman zaman derleme süresi de (örn.time cmake --build) izlenmeli.Açık Sorular
İmza/Yorum: "C gibi hızlı olmak", saQut için "C kadar hızlı VM" anlamına gelmek zorunda değil — "gereksiz iş yapmayan, dikkatli yazılmış C++ kodu" anlamına gelebilir; bu, ADR-015 ile çatışmaz.