[Fikir] Native Date/Time (Tarih/Zaman) Tipi #85
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#85
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?)
Tarih/zaman, hemen her gerçek programda karşılaşılan ama yanlış yapılması çok kolay bir konudur (saat dilimleri, artık yıllar, formatlar). Modern diller (Go, Rust, JS
Temporal) bunu standart kütüphaneye/derleyiciye yakın tutar.Gelişme (Olası Yaklaşımlar)
date/datetimeyeni bir primitif tip olarak değil, struct olarak saQut'un kendisinde tanımlanabilir (struct Date { int year; int month; int day; }) — bu, "batteries = FFI/kütüphane sınırı" (ADR-017) felsefesiyle örtüşür ve derleyici çekirdeğine yük bindirmez.callhost) ile alınabilir — saat dilimi/takvim mantığı saQut içine yazılmaz, denenmiş bir C kütüphanesine (örn. sistemtime.h) bağlanır.datetipi gerekirse, bu issue "native tip mi, struct+FFI mi" kararının kaydı olarak kalır.Açık Sorular
printsonrası) ikinci gerçek kullanım örneği olabilir mi?tarih + 5 gün) operatör overload'ı gerektirir mi — ama dilde operatör overload yok (kilitli karar); bu çatışmayı nasıl çözeriz (fonksiyon:addDays(d, 5))?İmza/Yorum: Önerim: v0'da struct+FFI, native tip değil — "batteries boundary" ilkesinin ikinci somut test vakası.