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:
parent
06e4136705
commit
f69654bbca
25
CLAUDE.md
25
CLAUDE.md
|
|
@ -37,13 +37,24 @@ git'te izlenir.
|
|||
değil; kripto asla elle yazılmaz (ADR-017).
|
||||
|
||||
## Mevcut durum (yapılan vs planlanan)
|
||||
- **Çalışıyor:** lexer, tokenizer, Pratt parser, AST, AST'nin JSON serileştirmesi,
|
||||
CLI iskeleti (`tokens`/`ast`/`symbols`/`run`), konum takibi, basit aritmetiği
|
||||
düşüren minimal IR deneyi.
|
||||
- **Planlı (henüz YOK):** sembol tablosu, semantik analiz, tip sistemi, diagnostic
|
||||
motoru, optimizasyon, IR+bytecode VM ile çalıştırma.
|
||||
- **Birinci kilometre taşı ("bitti" tanımı):** `examples/fibonacci.sqt`
|
||||
(recursive + iterative) derlenip çalıştırılabilmeli.
|
||||
- **✅ Birinci kilometre taşı AŞILDI:** `examples/fibonacci.sqt`
|
||||
(recursive + iterative) `saqut run` ile çalışıyor → `55\n55`.
|
||||
- **Çalışıyor (tam pipeline):**
|
||||
- Lexer, tokenizer, Pratt parser, AST + JSON serileştirmesi
|
||||
- Sembol tablosu (iki-geçişli toplayıcı, döngüsel struct tespiti)
|
||||
- Tip sistemi (`src/core/type.hpp`) + diagnostic motoru (`src/diagnostic/`)
|
||||
- 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.
|
||||
|
||||
## Belge haritası
|
||||
|
|
|
|||
|
|
@ -10,12 +10,11 @@
|
|||
> Tartışmanın tam akışı için bkz. `docs/transkript-frontend-tasarim.md`.
|
||||
> Uygulama planı için bkz. `docs/roadmap-frontend.md`.
|
||||
>
|
||||
> ⚠️ **Yapılan vs planlanan:** Bu belgedeki ADR-006…019 **tasarım kararlarıdır**;
|
||||
> tarif edilen makine (sembol tablosu, semantik analiz, tip sistemi, diagnostic,
|
||||
> optimizasyon, IR+VM) **henüz kodlanmamıştır.** Bugün çalışan: lexer, tokenizer,
|
||||
> Pratt parser, AST, AST'nin JSON serileştirmesi, CLI iskeleti, konum takibi ve
|
||||
> basit aritmetiği düşüren minimal bir IR deneyi. Hiçbir ADR, var olmayan bir
|
||||
> mekanizmayı varmış gibi anlatmaz.
|
||||
> ✅ **Uygulama durumu:** Bu belgedeki ADR-006…019 kararlarında tarif edilen
|
||||
> makine **kodlandı ve çalışıyor.** Sembol tablosu, semantik analiz, tip sistemi,
|
||||
> diagnostic motoru, optimizasyon (constant folding + DCE), IR üreteci ve bytecode
|
||||
> VM'in tamamı uygulandı. `examples/fibonacci.sqt` uçtan uca çalışıyor.
|
||||
> Güncel "çalışıyor / henüz yok" listesi için bkz. `CLAUDE.md`.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -18,9 +18,10 @@
|
|||
> **ç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
|
||||
> 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
|
||||
> (lexer/tokenizer/parser/AST + minimal IR deneyi çalışır); kod üretimi ve VM
|
||||
> **henüz yoktur.**
|
||||
> - **Yapılan vs planlanan:** Tüm pipeline uygulandı. `examples/fibonacci.sqt`
|
||||
> uçtan uca çalışıyor (lexer → tokenizer → parser → sembol tablosu → tip
|
||||
> denetleyici → optimizasyon → IR üreteci → bytecode VM). ADR-001'deki
|
||||
> "mevcut durum" listesi artık tarihseldir; güncel durum için bkz. `CLAUDE.md`.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -10,21 +10,12 @@
|
|||
> yorum satırlarıyla takip edilebilir olmalıdır (header-only tarzı korunur,
|
||||
> bkz. ADR-003).
|
||||
>
|
||||
> ⚠️ **Yapılan vs planlanan:** Bugün çalışan = lexer, tokenizer, Pratt parser,
|
||||
> AST, AST'nin JSON serileştirmesi, CLI iskeleti, konum takibi, basit aritmetiği
|
||||
> düşüren minimal IR deneyi. Bu yol haritasındaki **her şey planlıdır** (sembol
|
||||
> tablosu, semantik analiz, tip sistemi, diagnostic, optimizasyon).
|
||||
> ✅ **Birinci kilometre taşı AŞILDI.** Faz 0–4 uygulandı; `examples/fibonacci.sqt`
|
||||
> uçtan uca çalışıyor. Bu yol haritası artık tarihsel bir referanstır.
|
||||
>
|
||||
> 🎯 **Bu haftanın işi:** **sembol tablosu + iki-geçişli toplayıcı** (Faz 2),
|
||||
> hedef **"fibonacci'yi derle ve çalıştır"** (`examples/fibonacci.sqt`). Faz 0–1
|
||||
> bunun önkoşuludur.
|
||||
>
|
||||
> 🧭 **Ö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 0–3 fibonacci'yi geçirdikten **sonra** anlam kazanır — erken
|
||||
> soyutlama daha az değil, daha çok karmaşıklıktır.
|
||||
> **Sonraki hedefler:** float/double codegen, struct IR, array IR, açık bug'lar
|
||||
> (#35 bellek sızıntısı, #36 W003 uyarısı, #37 `%=` IR, #38 global değişken IR).
|
||||
> Güncel "çalışıyor / henüz yok" listesi için bkz. `CLAUDE.md`.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -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ı.
|
||||
İ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
|
||||
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.
|
||||
İ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ı
|
||||
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
|
||||
optimizasyon. **Orijinali bozmaz — klon üstünde** (ADR-007). İlgili ADR: 007, 008, 009.
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ Binary lands at `build/saqut`.
|
|||
| `saqut ast file:src.sqt` | Full AST as JSON |
|
||||
| `saqut ast file:src.sqt --optimized` | AST after constant folding + dead-code elimination |
|
||||
| `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 run file:src.sqt` | Compile and run via bytecode VM |
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue