Dil Özellik Envanteri Alfa

MELP şu an Alfa aşamasında (v0.1.0). Aşağıdaki tablo, derleyicide (STAGE0 v1.1.1, 1 Nisan 2026 itibarıyla) gerçekten çalışan ve çalışmayan özellikleri gösterir. Eksikler bilinçli olarak belgelenmiştir — topluluk bu durumu makul karşılayabilir.

✅ Çalışıyor Teste kanıtlanmış
⚠️ Kısmi Temel senaryo çalışıyor, edge case'ler kırık
❌ Yok Henüz desteklenmiyor
🗓 Planlandı Beta veya sonrasında
Çalışan Özellikler
ÖzellikDurumNotlar
import ✅ Çalışıyor Çok dosyalı derleme. import matematikUtilsmod.fonksiyon() akışı test edildi (10/11 geçiş).
module / export ✅ Çalışıyor module Util ... end_module, namespace ile dışa aktarma çalışıyor. 4/4 test geçiyor.
event ✅ Çalışıyor .mlp ve .mlpgui dosyalarında. event greet() ... end_event + app_start() desteklenir. 10/10 test.
struct ✅ Çalışıyor Alan tanımı, alan erişimi, struct ile fonksiyon parametresi.
match / when ✅ Çalışıyor Pattern matching. Guard koşulları kısmen çalışıyor (bkz. Kısmi bölümü).
Result{T;E} ✅ Çalışıyor Hata yönetimi için önerilen yol. 18/18 test geçiyor.
Lambda / HOF ✅ Çalışıyor lambda(x) -> x * 2, değişkene atama, array_map / filter / reduce / find / foreach.
Standart kütüphane ✅ Mevcut str(), length(), assert(), range(), sqrt(), pow(), min(), max(), abs(), clamp(), gcd(), lcm(), now_ms(), rand(), split(), to_number(), to_string(), pad_str(), format_date() ve dahası.
Çok dilli sözdizimi ✅ Çalışıyor Türkçe, Rusça, Arapça, İngilizce keyword desteği. Normalizer aracılığıyla.
Kısmen Çalışan Özellikler
ÖzellikDurumSınır
try / catch / throw / finally ⚠️ Kısmi Temel yapı çalışıyor. Runtime istisnaları (sıfıra bölme vb.) catch'e düşmüyor. error.message üye erişimi eksik.
interface / implement ⚠️ Kısmi 33/35 test geçiyor (%94). Bazı this.field senaryolarında 0 dönüyor.
operator overloading ⚠️ Kısmi Temel struct operatörleri (+, -, *) çalışıyor. Karmaşık kombinasyonlarda LLVM doğrulama hatası. 2/5 test.
async / await / spawn ⚠️ Kısmi Derleniyor ve senkron olarak doğru çalışıyor. Gerçek event loop / promise sistemi yok. spawn thread başlatır.
Generics <T> ⚠️ Kısmi Basit function identity<T>(x as T) çalışıyor. Constraint sözdizimi (T: Comparable) yok. {T} curly brace formu çalışmıyor.
Match guard ⚠️ Kısmi Temel pattern matching çalışıyor. Guard koşullu pattern codegen bazı senaryolarda hatalı.
Henüz Çalışmayan Özellikler
ÖzellikDurumNot
typeof ❌ Yok Derleyicide handler yok. typeof(x) → "Unknown function" hatası verir.
const ❌ Yok Yalnızca lexer'da token tanımlı, parser'da işlenmiyor. const x = 42 hata verir.
timer ❌ Yok Dil anahtar sözcüğü yok. Workaround: FFI ile C sleep() çağrılabilir.
Beta ve Sonrası İçin Planlananlar
ÖzellikHedefNot
typeof operatörü 🗓 Beta Runtime tip sorgusu.
const immutability 🗓 Beta Sabit değer enforcement — derleme zamanı hatası.
Generics constraint 🗓 Beta T: Comparable, T: Numeric gibi tip parametresi kısıtları.
Gerçek async runtime 🗓 Beta / Stage 2 Event loop, Promise sistemi, non-blocking I/O.
try/catch runtime istisna 🗓 Beta Sıfıra bölme, null erişimi gibi runtime hatalarının catch'e düşmesi.
timer 🗓 Beta Dil düzeyinde zamanlayıcı desteği.
Operator overloading (tam) 🗓 Beta Karmaşık struct kombinasyonları dahil 5/5 test geçişi.
Paket yöneticisi (mlppkg) 🗓 Stage 2 Bağımlılık yönetimi, paket yayınlama.
Self-hosting derleyici 🗓 Stage 2 MELP derleyicisinin MELP ile yazılması.
CUDA / GPU programlama 🗓 Stage 3 LLVM NVPTX backend üzerinden.

Bilinen Kullanıcı Sınırlamaları

Alfa aşamasında karşılaşabileceğiniz bilinen davranışlar. Hayal kırıklığına uğramamak için okuyun.

VS Code Eklentisi
DurumSınırlamaGeçici Çözüm
⚠️ Hover belgesi birçok keyword için Türkçe açıklama içermiyor (try/catch, true/false, and/or/not, exit/continue vb.). İngilizce açıklama gösterilir veya hiç gösterilmez. İngilizce modda çalışın veya dil dokümanlarına bakın.
⚠️ Generics için hover belgesi {T: Comparable} sözdizimini gösteriyor, ancak bu form derleyicide çalışmıyor. Doğru form: <T>. Her zaman function f<T>(x as T) formunu kullanın.
⚠️ module.fonksiyon() çağrıları editörde sahte "bilinmeyen fonksiyon" uyarısı üretebiliyor. Derleme başarıyla tamamlansa da uyarı gözükür. Uyarıyı görmezden gelin — derleme sonucuna bakın.
const ve typeof yazılırken editör uyarı vermiyor. Bu iki keyword derleyicide henüz çalışmadığı için derleme hatası alırsınız. Bu iki keyword'ü kullanmayın (bkz. "Henüz Çalışmayan" bölümü).
Web IDE (Tarayıcı İçi Derleyici)
DurumSınırlamaGeçici Çözüm
async / await / spawn kullanan programlar Web IDE'de derlenemiyor. Geçersiz WASM bytecode üretiyor. Bu özellikleri yerel kurulumla (melp binary) test edin.
enum / match / try-catch kullanan programlar Web IDE'de çalışmıyor. Yerel kurulum veya VS Code eklentisiyle test edin.
⚠️ Uzun süren veya çok çıktı üreten programlarda çıktı, program tamamlanana kadar ekranda görünmez (satır satır değil, bir seferde gelir). Kısa programlarda sorun yok. Uzun programlar için bekleyin.
⚠️ Farklı dillerden keyword karıştırılırsa (örn. Türkçe + Rusça) editör uyarı vermiyor. Tek dil seçin ve tutarlı kalın.
GUI Tasarım IDE (Electron)
DurumSınırlamaGeçici Çözüm
Özel widget tipi tanımlanamıyor. Yalnızca yerleşik widget tipleri kullanılabilir. Beta sürümünde eklenecek.
⚠️ Panel / GroupBox için seçilen otomatik düzen (layout), proje yeniden açıldığında kaybolabilir. Düzeni her seferinde proje kaydetmeden önce kontrol edin.
🗓 Dışa aktarılan uygulamalar Electron/HTML tabanlıdır. GTK/Qt tabanlı native paket desteği Beta sürümünden sonra gelecek.