Ruby 3.4.0 yayınlandı
(ruby-lang.org)-
Geçtiğimiz yıllarda olduğu gibi 12/25'te Ruby 3.4.0 yayımlandı
-
Temel güncellemeler arasında
itblok parametre referansı eklenmesi, varsayılan ayrıştırıcı olarak Prism'e geçiş, soket kütüphanesine Happy Eyeballs Version 2 desteği eklenmesi, YJIT iyileştirmeleri ve modüler GC eklenmesi gibi değişiklikler vardır. -
itblok parametre referansı- Değişken adı olmadan blok parametresine referans verilebilen
ittanıtıldı. Bu özellik_1ile benzer şekilde çalışır ve basit bloklarda kullanımı kolaylaştırır.
- Değişken adı olmadan blok parametresine referans verilebilen
-
Varsayılan ayrıştırıcı olarak Prism'e geçiş
- Varsayılan ayrıştırıcı
parse.yyerine Prism olarak değiştirildi. Kullanıcılar açısından büyük bir fark beklenmiyor; uyumluluk sorunu olursa lütfen raporlayın.
- Varsayılan ayrıştırıcı
-
Socket kütüphanesinde Happy Eyeballs Version 2
- Socket kütüphanesine Happy Eyeballs Version 2 (RFC 8305) desteği eklendi. Bu, modern internet koşullarına uygun, verimli ve güvenilir ağ bağlantıları sağlar.
-
YJIT iyileştirmeleri
- Çoğu ölçümde performans artışı, bellek kullanımında azalma, çeşitli hata düzeltmeleri ve yeni özellikler eklendi.
-
Modüler GC
- Alternatif bir çöp toplama (GC) uygulamasını dinamik olarak yükleyebilen modüler bir GC özelliği eklendi. Rust araç zinciri gerektirir.
-
Dil değişiklikleri
frozen_string_literalyorumu olmadan dosyalarda string literal'ların değiştirilmesi durumunda uyarı üretilir.**nilanahtar sözcük yayılımı (splatting) desteği gibi çeşitli değişiklikler de var.
-
Çekirdek sınıf güncellemeleri
Exception#set_backtrace'unThread::Backtrace::Locationdizisini kabul etmesi dahil olmak üzere çeşitli çekirdek sınıf güncellemeleri içerir.
-
Standart kütüphane güncellemeleri
- RubyGems, Bundler, JSON, Tempfile gibi çeşitli standart kütüphanelerde performans iyileştirmeleri ve yeni özellikler eklenmiştir.
-
Uyumluluk sorunları
- Hata iletisi ve backtrace gösterimi biçimlerinin değişmesi,
Hash#inspectişleme biçiminin değiştirilmesi gibi uyumlulukla ilgili değişiklikler bulunmaktadır.
- Hata iletisi ve backtrace gösterimi biçimlerinin değişmesi,
-
C API güncellemeleri
rb_newobjverb_newobj_ofişlevlerinin kaldırılması da dahil olmak üzere C API güncellemeleri içerir.
-
Diğer değişiklikler
- Kullanılmayan bir bloğu metoda iletirken uyarı verilmesi gibi farklı değişiklikleri içerir.
2 yorum
Hacker News yorumu
Ruby ayrıştırıcı değişikliklerine dair beklenti çok yüksek. Daha önce
yacckullanmam gerektiğini öğrenmiştim, ancak Ruby şimdi elle yazılmış bir ayrıştırıcı kullanan diller listesine de katıldı.parse.ydosyasını 22k satırlıkprism.cile değiştirmek oldukça göze çarpan bir hamle.Ruby 3.4.1 zaten eski kalmış.
Son birkaç yıldır Ruby'nin performansı özellikle artmış görünüyor. 3.3'ten bu yana tüm uygulamalarda
--yjitseçeneğiyle çalıştırıyorum ve ciddi farklar görüyorum.Shopify'ın stratejisi de YJIT hikâyesiyle aynı. Servisi yeniden düzenleyemiyorsak Ruby'yi yeniden düzenleyeceğiz yaklaşımı.
JIT ve GC seviyelerinde performans iyileştirmeleri hoş bir ek avantaj.
Ruby yayınını her yıl bir Noel geleneği gibi bekliyorum.
Her yılın sonunda Rails uygulamalarını güncelliyorum ve son dönemde hem daha stabil hem de daha yüksek performanslı olduğundan bunu çok daha kolay yapıyorum.
Ruby ekibine tebrik ve teşekkür ederim.
Rails 8 haberi sonrası Ruby'yi denemek istemiştim ama kurulum süreci çok zordu.
html.erbdosyalarının sözdizimi vurgulaması tamamen bozulmuştu.macOS’ta Rails kurulumunu kolayca yapan bir betik var.
=>
https://rails.new/