[Fikir] Native Date/Time (Tarih/Zaman) Tipi #85

Open
opened 2026-06-14 22:14:01 +03:00 by saqut · 0 comments
Owner

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)

  • v0 için minimal yaklaşım: date/datetime yeni 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.
  • Daha ileri: gerçek saat/takvim hesapları (örn. "bugünden 30 gün sonrası") host sisteminden FFI (ADR-016, callhost) ile alınabilir — saat dilimi/takvim mantığı saQut içine yazılmaz, denenmiş bir C kütüphanesine (örn. sistem time.h) bağlanır.
  • Eğer ileride performans/ergonomi nedeniyle native bir date tipi gerekirse, bu issue "native tip mi, struct+FFI mi" kararının kaydı olarak kalır.

Açık Sorular

  • "Şu anki zaman" gibi dış-dünya bağımlı bilgi nasıl elde edilir — bu doğrudan FFI seam'in (print sonrası) ikinci gerçek kullanım örneği olabilir mi?
  • Tarih aritmetiği (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ı.

### 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) - v0 için minimal yaklaşım: `date`/`datetime` yeni 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. - Daha ileri: gerçek saat/takvim hesapları (örn. "bugünden 30 gün sonrası") host sisteminden FFI (ADR-016, `callhost`) ile alınabilir — saat dilimi/takvim mantığı saQut içine yazılmaz, denenmiş bir C kütüphanesine (örn. sistem `time.h`) bağlanır. - Eğer ileride performans/ergonomi nedeniyle native bir `date` tipi gerekirse, bu issue "native tip mi, struct+FFI mi" kararının kaydı olarak kalır. --- ### Açık Sorular - "Şu anki zaman" gibi dış-dünya bağımlı bilgi nasıl elde edilir — bu doğrudan FFI seam'in (`print` sonrası) ikinci gerçek kullanım örneği olabilir mi? - Tarih aritmetiği (`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ı.
saqut added the
fikir
tip-sistemi
labels 2026-06-14 22:14:01 +03:00
Sign in to join this conversation.
No description provided.