Racket v9.0
(blog.racket-lang.org)- Racket 9.0, mevcut green thread'ler ile futures ve places desteğini genişleten, Parallel Threads özelliğini sunan önemli bir sürüm
- Yeni thread'ler
#:poolargümanı ile oluşturulabiliyor;#:keep 'resultsayarı kullanıldığında sonuçlar daha sonrathread-waitile alınabiliyor black-boxsarmalayıcısı, optimize edici derleyicinin belirli işlemleri kaldırmasını engelleyerek benchmark doğruluğunu artırıyordecompile-linkletfonksiyonu, bir linklet'i yeniden S-ifadesine dönüştürebiliyor;processor-countise paralel işlemci sayısını döndürecek şekilde değiştirildi- AArch64 için “natipkg” paketi, Weibull dağılımı eklenmesi ve belge iyileştirmeleri dahil çeşitli güncellemeler içeriyor
Racket 9.0'daki başlıca değişiklikler
-
Bu sürümde Parallel Threads özelliği yeni olarak eklendi
- Racket zaten green thread'ler, futures ve places destekliyordu; Parallel Threads ise buna eklenen önemli bir genişletme oldu
- Parallel Threads,
#:poolargümanı üzerinden oluşturulabiliyor ve#:keep 'resultsolarak ayarlandığında sonuçlar daha sonrathread-waitaracılığıyla alınabiliyor
-
black-boxsarmalayıcısı, optimize edici derleyicinin belirli hesaplamaları tamamen ortadan kaldırmasını engelliyor- Benchmark çalıştırırken doğru performans ölçümü sağlamada faydalı
-
decompile-linkletfonksiyonu, bir linklet'i yeniden S-ifadesine (s-expression) eşleyebiliyor- Kod analizi ve hata ayıklama sırasında iç temsili geri yükleme imkanı sağlıyor
-
BC Racket içinde
processor-countfonksiyonu, her zaman paralel işlemci sayısını döndürecek şekilde değiştirildi- Paralel yürütme ortamlarında işlemci sayısını tutarlı biçimde kontrol etmeyi mümkün kılıyor
-
AArch64 için “natipkg” paketi yeni olarak dağıtılıyor ve paket derleme ile test altyapısında kullanılabiliyor
Ek iyileştirmeler
- Check Syntax özelliği artık sözdizimi nesnesinin “origin” alanındaki daha derin iç içe geçmiş tanımlayıcıların takibini destekliyor
mathkütüphanesine Weibull dağılımı eklendi- Çok sayıda hata düzeltmesi ve belge iyileştirmesi yer alıyor
Topluluk ve katılım
- Bu sürüme Alexander Shopov, Bogdan Popa, Matthew Flatt, Matthias Felleisen ve diğer birçok geliştirici katkıda bulundu
- Racket, topluluk temelli bir açık kaynak proje ve yeni katkı sunanları memnuniyetle karşılıyor
- Katılım yöntemleri racket/README.md içinde bulunabilir
Geri bildirim ve duyuru çağrısı
- Sorular ve tartışmalar için Racket Discourse veya Discord toplulukları kullanılabilir
- Kullanıcıların ve platformlara özel paket yöneticilerinin bu sürüm haberini paylaşması teşvik ediliyor
- Resmi indirme: https://download.racket-lang.org
- Sürüm duyurusu: https://blog.racket-lang.org/2025/11/racket-v9-0.html
1 yorum
Hacker News görüşleri
Bu haberdeki asıl önemli nokta, Racket'in artık paralel thread desteği sunuyor olması
Daha önce de
placesgibi paralelleştirme yöntemleri vardı, ancak bu yeni yaklaşım çok daha hafif ve tanıdık geliyorRacket ile bir şeyler üretmeyi sevdiğim için, bunun Racket'in kullanım alanını genişletmesi sevindirici
placesesnek değildi. Lambda'ları kolayca aktaramıyordunuz veserializable-lambdabulaşıcı şekilde çalıştığı için çalışma anında işlev değil, yalnızca veri gönderebiliyordunuzBu yüzden işleri birden fazla
place'e dağıtan bir yapı kurmak zorduUmarım bu yeni eşzamanlılık özelliğiyle bu mümkün olur
Şimdiye kadar bu yüzden Racket yerine GNU Guile kullanıyordum. Guile,
futuresya dafibersile çok çekirdekli kullanımı çok daha güvenilir biçimde sağlıyorduBen de
futureskullanarak paralel bir karar ağacı modeli oluşturmuştum ve neredeyse doğrusal bir hız artışı elde etmiştimBen bir Clojure geliştiricisiyim, bu yüzden Lisp ailesini seviyorum. Racket ile neler yapıldığını duymak isterim
Bu videoya bakılırsa, Racket ilk diliniz değilse zor gelebilir ama çocukların bile öğrenebileceği kadar kolay bir dil
Racket'i gerçekten çok seviyorum
Eğlencesine Racket hakkında bir kitap yazdım ve çevrimiçi olarak ücretsiz okunabiliyor
Scheme ailesi dilleri arasında Racket ve Gerbil'i tavsiye ederim
Racket, iyi IDE'si ve zengin standart ile üçüncü taraf kütüphaneleri sayesinde yeni başlayanlar için uygun; Gerbil ise sistem programlama ya da ağ yardımcı araçları için iyi
Racket gerçekten harika bir dil
Öğrenmesi keyifli bir Lisp ailesi dili ve DrRacket IDE ile ödev yaptığım günleri hâlâ hatırlıyorum
Lisp ile ilk kez 80'lerin ortasında denemeler yaptım; sonrasında da yeni düşünme biçimlerini ve programlama tekniklerini öğrenmek için ara sıra geri döndüm
Racket'i de birkaç kez denedim ama yazılımın kendisi bir türlü bana uymadı
Düzenli kullansam belki ısınırdım ama büyük bir projeyi Racket ile yazmayı hâlâ gözümde canlandıramıyorum
Python'dan bile yavaştı; Chez Scheme ile yeniden yazıldıktan sonra düzelmiş olabilir ama ben artık hızlı ve hafif bir Common Lisp kullanıyorum
Racket'i ilk kez John Carmack'ın 10 yıl önce Oculus ile ilgili çalışmalarında Racket kullandığını görünce fark etmiştim
İlgili video
Arc wiki maddesi
Lisp başlı başına bir meta dil, Racket ise bundan da daha meta
Pratikte bir dil yapım kiti sayılabilir
PL dersi verdiğimde Racket kullanmıştım ama öğrenciler Java ya da Python'a alışkın oldukları için Lisp sözdiziminde zorlandılar
Bu yüzden Racket'in tam olarak kim için bir dil olduğundan emin değilim
Bogdan Popa'nın blogunda(defn.io) Racket hakkında birçok ilginç bilgi var
Yeni thread özelliğini bizzat denemeyi dört gözle bekliyorum
Racket'i birkaç kez denedim ama IDE bana fazla sezgisel olmayan ve tuhaf geldi
Bunun bilinçli bir tasarım tercihi mi, yoksa sadece daha iyi bir alternatif olmadığı için mi böyle olduğunu merak ediyorum
Racket; VSCode(Magic Racket, Langserver), Emacs(Racket Mode), Vim ve diğerlerinde de iyi destekleniyor
Resmî dokümana ve Langserver deposuna bakabilirsiniz
DrRacket'te, diğer IDE'lerde olmayan macro stepper gibi özellikler var; bu yüzden hâlâ kullanışlı
Racket eğlenceli bir dil
Üniversitemizde birinci sınıf CS derslerinde Racket'in eğitim amaçlı bir sürümü kullanılıyor
Bazı öğrenciler bundan hoşlanmıyor ama sessizce sevenler de var