3 puan yazan GN⁺ 2025-11-24 | 1 yorum | WhatsApp'ta paylaş
  • 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 #:pool argümanı ile oluşturulabiliyor; #:keep 'results ayarı kullanıldığında sonuçlar daha sonra thread-wait ile alınabiliyor
  • black-box sarmalayıcısı, optimize edici derleyicinin belirli işlemleri kaldırmasını engelleyerek benchmark doğruluğunu artırıyor
  • decompile-linklet fonksiyonu, bir linklet'i yeniden S-ifadesine dönüştürebiliyor; processor-count ise 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, #:pool argümanı üzerinden oluşturulabiliyor ve #:keep 'results olarak ayarlandığında sonuçlar daha sonra thread-wait aracılığıyla alınabiliyor
  • black-box sarmalayı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-linklet fonksiyonu, 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-count fonksiyonu, 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
  • math kü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

Geri bildirim ve duyuru çağrısı

1 yorum

 
GN⁺ 2025-11-24
Hacker News görüşleri
  • Bu haberdeki asıl önemli nokta, Racket'in artık paralel thread desteği sunuyor olması
    Daha önce de places gibi paralelleştirme yöntemleri vardı, ancak bu yeni yaklaşım çok daha hafif ve tanıdık geliyor
    Racket ile bir şeyler üretmeyi sevdiğim için, bunun Racket'in kullanım alanını genişletmesi sevindirici

    • Sürüm notlarını okurken ben de şaşırdım. Nihayet bu tür bir multithreading gelmiş olması güzel
      places esnek değildi. Lambda'ları kolayca aktaramıyordunuz ve serializable-lambda bulaşıcı şekilde çalıştığı için çalışma anında işlev değil, yalnızca veri gönderebiliyordunuz
      Bu yüzden işleri birden fazla place'e dağıtan bir yapı kurmak zordu
      Umarı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, futures ya da fibers ile çok çekirdekli kullanımı çok daha güvenilir biçimde sağlıyordu
      Ben de futures kullanarak paralel bir karar ağacı modeli oluşturmuştum ve neredeyse doğrusal bir hız artışı elde etmiştim
    • Racket ile ne tür projeler yaptığını merak ediyorum
      Ben bir Clojure geliştiricisiyim, bu yüzden Lisp ailesini seviyorum. Racket ile neler yapıldığını duymak isterim
    • Paralel thread'lerin ancak sürüm 9'da eklenmiş olması, ana sayfada Racket'in “olgun ve rafine bir dil” olarak tanıtılmasıyla biraz çelişiyor gibi geliyor
  • Bu videoya bakılırsa, Racket ilk diliniz değilse zor gelebilir ama çocukların bile öğrenebileceği kadar kolay bir dil

    • Gerçekten harika bir video
  • 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

    • Eskiden seviyordum ama kodun çok yavaş ve ağır olması yüzünden bıraktım
      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
    • “Yazılım” derken dilin kendisini mi, yoksa araç zincirini mi kastettiğini merak ediyorum
  • 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

    • Bu arada HN, Arc ile yazıldı ve Arc da Racket ile yapıldı
      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

    • Bunu sık sık duyuyorum ama gerçekte Racket ile dil geliştiren PL geliştiricisi çok yok
      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

    • IDE, dilin kendisi değildir
      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-mode.com üzerinde çok iyi bir Emacs entegrasyonu görebilirsiniz
  • 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

    • O dersin adının ne olduğunu merak ettim
    • Ama çoğu mezun olduktan sonra bir daha asla Racket kullanmayacağını söylüyor; bu da epey düşündürücü