« Tüm yayınlar

Pon: Yorumlayıcısız Python 3.14 Derleyicisi Rust'ta

Pon, CPython yorumlayıcısı ve bytecode olmadan Python 3.14 kodunu Cranelift ile makine koduna derleyen Rust tabanlı JIT/AoT derleyicisidir.

Pon, Python 3.14 için Rust ile yazılmış deneysel bir JIT ve AoT derleyici/çalışma zamanı. Klasik CPython yorumlayıcısı ve bytecode katmanı yerine, kaynak kod ruff parser ile ayrıştırılıp ortak bir ara temsile (IR) indirgeniyor ve bu IR Cranelift üzerinden doğrudan makine koduna derleniyor; sonuç ister process içinde JIT olarak çalıştırılabiliyor ister bağımsız native bir çalıştırılabilir dosya olarak derlenebiliyor. Bellek yönetimi referans sayımı yerine Green Tea adlı bir garbage collector ile yapılıyor, tip geri bildirimi toplayan çok katmanlı bir JIT (tier-0 boxed, tier-1 tipli) inline cache ve OSR gibi tekniklerle hot path'leri hızlandırıyor.

Projenin doğruluk garantisi CPython 3.14.0 ile byte-byte eşleşme üzerine kurulu: her modül farksal (differential) bir test seti üzerinden CPython çıktısıyla karşılaştırılıyor, geçen modüller CI'da kilitli "floor" dosyalarına işleniyor ve bu eşiğin altına düşen her regresyon derlemeyi kırıyor. Ayrı fuzzing ve stres testleri de sıfır sapma hedefiyle sürdürülüyor.

Şu an 244 modülden 209'u JIT altında, 206'dan 172'si AoT derlemede CPython ile birebir eşleşiyor; CPython'ın kendi test paketinin tamamının geçirilmesi ve stdlib modüllerinin (io, os, json, datetime vb.) native karşılıklarının yazılması ise yol haritasının en büyük kalemi. Proje ayrıca uv tarzı bir paket yöneticisi de içeriyor ancak bu henüz ana çalışma zamanı testlerine dahil değil. Hedef, bun/v8'in Python karşılığı olacak; tek dosyalık native çalıştırılabilirler üreten, CPython'dan çok daha hızlı çalışan ve kendi araç zincirini içinde barındıran bir runtime.