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
| Özellik | Durum | Notlar |
|---|---|---|
import |
✅ Çalışıyor | Çok dosyalı derleme. import matematikUtils → mod.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
| Özellik | Durum | Sı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
| Özellik | Durum | Not |
|---|---|---|
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
| Özellik | Hedef | Not |
|---|---|---|
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
| Durum | Sınırlama | Geç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)
| Durum | Sınırlama | Geç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)
| Durum | Sınırlama | Geç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. | — |