Edward Kmett Haskell kodunu JVM üzerinde çalıştıran THC derleyicisini geliştirdi
Öne çıkanlar
- THC, GHC 9.14.1 prim-op işlemlerinin tamamını destekleyerek GHC'nin kendisini JVM üzerinde derleyebildi.
- GraalVM FFI desteği sayesinde Python, Ruby ve JavaScript kütüphaneleri sıfır kopyalı metin aktarımıyla doğrudan çağrılabiliyor.
- Project Loom entegrasyonu ile Haskell tarzı hafif yeşil iş parçacıkları JVM üzerinde çalıştırılabiliyor.
Yazılımcı Edward Kmett, GHC Core kodunu JVM üzerinde çalıştıran Turbo Haskell Compiler (THC) adlı yeni derleyici projesini duyurdu. GHC 9.14.1 sürümündeki tüm temel işlemleri (prim-ops) destekleyen THC, Truffle ve GraalVM altyapısını kullanarak Haskell programları için anında derleme (JIT) ve Native Image aracılığıyla önceden derleme (AOT) imkanı sunuyor. Ayrıştırma, tür denetimi ve Core optimizasyonunu GHC yürütürken, THC bu aşamadan sonrasını devralarak kendi çalışma zamanı ortamında çalıştırıyor. Araç, GHC'nin kendisi dahil olmak üzere pandoc, happy ve alex gibi karmaşık Haskell yazılımlarını derleyebiliyor.
THC, GraalVM ekosisteminin çok dilli (polyglot) FFI yeteneklerini kullanarak Python, Ruby, R ve JavaScript kütüphanelerine doğrudan erişim sağlıyor. UTF-8 kodlu metinler için kopyalamasız (zero-copy) veri aktarımı sunan sistem, harici dillerdeki veri çerçevelerinin veya yapay zeka modellerinin doğrudan Haskell programlarına dahil edilmesine olanak tanıyor. Eşzamanlılık tarafında hem standart Java iş parçacıklarını hem de Project Loom altyapısını destekleyen derleyici; hafif yeşil iş parçacıkları, eşzamansız istisnalar ve Masking mekanizmalarını eksiksiz biçimde yürütüyor.
Kuyruk çağrısı optimizasyonu için özel bir kod dönüştürme yöntemi ve 64 bitlik Bloom filtresi kullanan THC, özyinelemeli çağrıları sıkı döngülere dönüştürerek yığın taşmalarını engelliyor. İlk testlerde GHC başarımına yakın sonuçlar veren sistem, bellek tüketimini azaltmak için 32 bitlik sıkıştırılmış nesne işaretçilerinden (compressed oops) yararlanıyor. Açık kaynak kodlu olarak GitHub üzerinden yayımlanan projenin geliştirme süreci Libera.chat IRC ağındaki topluluk kanalında devam ediyor.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.