[Fikir] String'in İç Temsili ve Unicode/UTF-8 Stratejisi #87
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#87
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?)
stringtipi dil kimliğinde var ama "string nedir" sorusu (bayt dizisi mi, karakter dizisi mi, UTF-8 mi) henüz hiç tartışılmadı. Bu karar,length(), indeksleme (s[0]), ve dosya/konsol I/O'sunun davranışını doğrudan belirler.Gelişme (Olası Yaklaşımlar)
std::string'e doğrudan eşlenir, ADR-015 "host heap" ilkesiyle uyumlu). Amas[0]bir bayt döner, bir "karakter" değil — Türkçe karakterler (ç, ş, ğ) çok-baytlı olduğundan indeksleme kafa karıştırabilir.length()/indeksleme dokümantasyonunda "bayt sayısı/bayt indeksi" olduğu açıkça yazılsın — ilerideruneAt()/codepointLength()gibi yardımcı builtin'lerle (ADR-016/017) kod-noktası erişimi sağlanabilir.Açık Sorular
+) ve karşılaştırma operatörleri tip denetiminde (Faz 3) nasıl ele alınacak —string + intgizli dönüşüm mü (ADR-010 "gizli dönüşüm yok" ile çatışır, muhtemelenE003)?İmza/Yorum: Bu karar ne kadar erken alınırsa, sonraki tüm builtin/stdlib tasarımı (özellikle JSON/XML parser örnekleri, ADR-017) o kadar sağlam temellenir.