docs: dökümanlar ve issue'lar gerçek durumla güncellendi

- CLAUDE.md: "Mevcut durum" bölümü yeniden yazıldı — tüm pipeline
  çalışıyor, bilinen eksikler (#35–#38) listelendi
- docs/fikirler.md: "kod üretimi VM henüz yoktur" notu kaldırıldı
- docs/adr-frontend-analiz.md: "henüz kodlanmamıştır" uyarısı kaldırıldı
- docs/roadmap-frontend.md: tüm fazlar (0–4)  TAMAMLANDI olarak işaretlendi
- readme.md: saqut check komutu CLI tablosuna eklendi
- GitHub #30–#34 issue'ları kapatıldı (düzeltilmiş bug'lar)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Claude 2026-06-19 19:07:11 +00:00
parent 06e4136705
commit f69654bbca
No known key found for this signature in database
5 changed files with 38 additions and 35 deletions

View File

@ -37,13 +37,24 @@ git'te izlenir.
değil; kripto asla elle yazılmaz (ADR-017). değil; kripto asla elle yazılmaz (ADR-017).
## Mevcut durum (yapılan vs planlanan) ## Mevcut durum (yapılan vs planlanan)
- **Çalışıyor:** lexer, tokenizer, Pratt parser, AST, AST'nin JSON serileştirmesi, - **✅ Birinci kilometre taşı AŞILDI:** `examples/fibonacci.sqt`
CLI iskeleti (`tokens`/`ast`/`symbols`/`run`), konum takibi, basit aritmetiği (recursive + iterative) `saqut run` ile çalışıyor → `55\n55`.
düşüren minimal IR deneyi. - **Çalışıyor (tam pipeline):**
- **Planlı (henüz YOK):** sembol tablosu, semantik analiz, tip sistemi, diagnostic - Lexer, tokenizer, Pratt parser, AST + JSON serileştirmesi
motoru, optimizasyon, IR+bytecode VM ile çalıştırma. - Sembol tablosu (iki-geçişli toplayıcı, döngüsel struct tespiti)
- **Birinci kilometre taşı ("bitti" tanımı):** `examples/fibonacci.sqt` - Tip sistemi (`src/core/type.hpp`) + diagnostic motoru (`src/diagnostic/`)
(recursive + iterative) derlenip çalıştırılabilmeli. - Tip denetleyici + yapısal doğrulayıcı (`src/semantic/`)
- Optimizasyon: constant folding (int/bool/logical) + dead code elimination
- IR üreteci (3-adresli, slot tabanlı) + bytecode VM (yorumlayıcı döngü)
- CLI: `tokens` / `ast` / `symbols` / `check` / `ir` / `run` (6 komut)
- **Henüz YOK (bilinen eksikler):**
- float/double codegen (tip sistemi var, IR opcode'u yok)
- struct IR (parse/semantik var, codegen yok)
- array IR (parse/semantik var, codegen yok)
- `%=` operatörü IR'da eksik (#37)
- Global değişken IR üretimi sessizce atlıyor (#38)
- W003 ölü kod uyarısı üretilmiyor (#36)
- DCE silinen düğümleri `delete` etmiyor — bellek sızıntısı (#35)
- **İlke:** Önce uçtan uca tek **dikey dilim**, sonra çerçeve. Erken soyutlamadan kaçın. - **İlke:** Önce uçtan uca tek **dikey dilim**, sonra çerçeve. Erken soyutlamadan kaçın.
## Belge haritası ## Belge haritası

View File

@ -10,12 +10,11 @@
> Tartışmanın tam akışı için bkz. `docs/transkript-frontend-tasarim.md`. > Tartışmanın tam akışı için bkz. `docs/transkript-frontend-tasarim.md`.
> Uygulama planı için bkz. `docs/roadmap-frontend.md`. > Uygulama planı için bkz. `docs/roadmap-frontend.md`.
> >
> ⚠️ **Yapılan vs planlanan:** Bu belgedeki ADR-006…019 **tasarım kararlarıdır**; > ✅ **Uygulama durumu:** Bu belgedeki ADR-006…019 kararlarında tarif edilen
> tarif edilen makine (sembol tablosu, semantik analiz, tip sistemi, diagnostic, > makine **kodlandı ve çalışıyor.** Sembol tablosu, semantik analiz, tip sistemi,
> optimizasyon, IR+VM) **henüz kodlanmamıştır.** Bugün çalışan: lexer, tokenizer, > diagnostic motoru, optimizasyon (constant folding + DCE), IR üreteci ve bytecode
> Pratt parser, AST, AST'nin JSON serileştirmesi, CLI iskeleti, konum takibi ve > VM'in tamamı uygulandı. `examples/fibonacci.sqt` uçtan uca çalışıyor.
> basit aritmetiği düşüren minimal bir IR deneyi. Hiçbir ADR, var olmayan bir > Güncel "çalışıyor / henüz yok" listesi için bkz. `CLAUDE.md`.
> mekanizmayı varmış gibi anlatmaz.
--- ---

View File

@ -18,9 +18,10 @@
> **çok uzak gelecektir**. ADR-001'deki karşılaştırmalar o gün için geçerli. > **çok uzak gelecektir**. ADR-001'deki karşılaştırmalar o gün için geçerli.
> - "HeavyIR/LightIR" ikiliği (ADR-005) bir **gelecek fikri** olarak durur; v0'ın > - "HeavyIR/LightIR" ikiliği (ADR-005) bir **gelecek fikri** olarak durur; v0'ın
> IR+VM hedefi tek, basit bir IR'dir + **FFI seam** (ADR-016). > IR+VM hedefi tek, basit bir IR'dir + **FFI seam** (ADR-016).
> - **Yapılan vs planlanan:** ADR-001'deki "mevcut durum" listesi hâlâ doğrudur > - **Yapılan vs planlanan:** Tüm pipeline uygulandı. `examples/fibonacci.sqt`
> (lexer/tokenizer/parser/AST + minimal IR deneyi çalışır); kod üretimi ve VM > uçtan uca çalışıyor (lexer → tokenizer → parser → sembol tablosu → tip
> **henüz yoktur.** > denetleyici → optimizasyon → IR üreteci → bytecode VM). ADR-001'deki
> "mevcut durum" listesi artık tarihseldir; güncel durum için bkz. `CLAUDE.md`.
--- ---

View File

@ -10,21 +10,12 @@
> yorum satırlarıyla takip edilebilir olmalıdır (header-only tarzı korunur, > yorum satırlarıyla takip edilebilir olmalıdır (header-only tarzı korunur,
> bkz. ADR-003). > bkz. ADR-003).
> >
> ⚠️ **Yapılan vs planlanan:** Bugün çalışan = lexer, tokenizer, Pratt parser, > ✅ **Birinci kilometre taşı AŞILDI.** Faz 04 uygulandı; `examples/fibonacci.sqt`
> AST, AST'nin JSON serileştirmesi, CLI iskeleti, konum takibi, basit aritmetiği > uçtan uca çalışıyor. Bu yol haritası artık tarihsel bir referanstır.
> düşüren minimal IR deneyi. Bu yol haritasındaki **her şey planlıdır** (sembol
> tablosu, semantik analiz, tip sistemi, diagnostic, optimizasyon).
> >
> 🎯 **Bu haftanın işi:** **sembol tablosu + iki-geçişli toplayıcı** (Faz 2), > **Sonraki hedefler:** float/double codegen, struct IR, array IR, açık bug'lar
> hedef **"fibonacci'yi derle ve çalıştır"** (`examples/fibonacci.sqt`). Faz 01 > (#35 bellek sızıntısı, #36 W003 uyarısı, #37 `%=` IR, #38 global değişken IR).
> bunun önkoşuludur. > Güncel "çalışıyor / henüz yok" listesi için bkz. `CLAUDE.md`.
>
> 🧭 **Önce dikey dilim, sonra çerçeve.** Bir şey çalışmadan önce genel pass
> manager / evrensel config / ağır soyutlama inşa etme. Uçtan uca tek bir dilim
> (kaynak → IR → çalıştır; tamsayı + değişken + kontrol akışı + tek `print`)
> önce çalışsın. Faz 4'ün framework'ü (OptimizationManager, fixpoint, config)
> ancak Faz 03 fibonacci'yi geçirdikten **sonra** anlam kazanır — erken
> soyutlama daha az değil, daha çok karmaşıklıktır.
--- ---
@ -46,7 +37,7 @@ Katman eşlemesi (ADR-006):
--- ---
## Faz 0 — Temeller (Type + Diagnostic + Hata Kataloğu) ## Faz 0 — Temeller (Type + Diagnostic + Hata Kataloğu) — TAMAMLANDI
**Bağımlılık:** yok. **Hedef:** her şeyin üstüne kurulacağı temel veri yapıları. **Bağımlılık:** yok. **Hedef:** her şeyin üstüne kurulacağı temel veri yapıları.
İlgili ADR: 010 (Type), 013 (Diagnostic). İlgili ADR: 010 (Type), 013 (Diagnostic).
@ -91,7 +82,7 @@ Katman eşlemesi (ADR-006):
--- ---
## Faz 1 — AST Refactor (ExpressionNode / StatementNode + analiz alanları) ## Faz 1 — AST Refactor (ExpressionNode / StatementNode + analiz alanları) — TAMAMLANDI
**Bağımlılık:** Faz 0 (Type). **Hedef:** node hiyerarşisini ifade/deyim olarak **Bağımlılık:** Faz 0 (Type). **Hedef:** node hiyerarşisini ifade/deyim olarak
ayır, analiz alanlarını ekle. İlgili ADR: 012, 013. ayır, analiz alanlarını ekle. İlgili ADR: 012, 013.
@ -116,7 +107,7 @@ ayır, analiz alanlarını ekle. İlgili ADR: 012, 013.
--- ---
## Faz 2 — Symbol Table (scope'lu, iki-geçişli toplama) ## Faz 2 — Symbol Table (scope'lu, iki-geçişli toplama) — TAMAMLANDI
**Bağımlılık:** Faz 0, 1. **Hedef:** isim çözümleme + scope + referans toplama. **Bağımlılık:** Faz 0, 1. **Hedef:** isim çözümleme + scope + referans toplama.
İlgili ADR: 011, 013. İlgili ADR: 011, 013.
@ -150,7 +141,7 @@ ayır, analiz alanlarını ekle. İlgili ADR: 012, 013.
--- ---
## Faz 3 — Semantic Analiz (Tip Kontrolü + Yapısal Doğrulama) ## Faz 3 — Semantic Analiz (Tip Kontrolü + Yapısal Doğrulama) — TAMAMLANDI
**Bağımlılık:** Faz 2. **Hedef:** tipleri ata/kontrol et, yapısal kuralları **Bağımlılık:** Faz 2. **Hedef:** tipleri ata/kontrol et, yapısal kuralları
doğrula. İlgili ADR: 010, 013. doğrula. İlgili ADR: 010, 013.
@ -173,7 +164,7 @@ doğrula. İlgili ADR: 010, 013.
--- ---
## Faz 4 — Optimizasyon Framework ## Faz 4 — Optimizasyon Framework — TAMAMLANDI
**Bağımlılık:** Faz 3. **Hedef:** opsiyonel, iteratif, toggle'lı kaynak-seviyesi **Bağımlılık:** Faz 3. **Hedef:** opsiyonel, iteratif, toggle'lı kaynak-seviyesi
optimizasyon. **Orijinali bozmaz — klon üstünde** (ADR-007). İlgili ADR: 007, 008, 009. optimizasyon. **Orijinali bozmaz — klon üstünde** (ADR-007). İlgili ADR: 007, 008, 009.

View File

@ -91,6 +91,7 @@ Binary lands at `build/saqut`.
| `saqut ast file:src.sqt` | Full AST as JSON | | `saqut ast file:src.sqt` | Full AST as JSON |
| `saqut ast file:src.sqt --optimized` | AST after constant folding + dead-code elimination | | `saqut ast file:src.sqt --optimized` | AST after constant folding + dead-code elimination |
| `saqut symbols file:src.sqt` | Symbol table dump | | `saqut symbols file:src.sqt` | Symbol table dump |
| `saqut check file:src.sqt` | Semantic analysis only — errors and warnings, JSON |
| `saqut ir file:src.sqt` | IR instruction dump | | `saqut ir file:src.sqt` | IR instruction dump |
| `saqut run file:src.sqt` | Compile and run via bytecode VM | | `saqut run file:src.sqt` | Compile and run via bytecode VM |