3 ポイント 投稿者 GN⁺ 2025-11-24 | 1件のコメント | WhatsAppで共有
  • Racket 9.0 は、並列スレッド(Parallel Threads)を導入した主要リリースで、既存のグリーンスレッドや futures、places のサポートを拡張するもの
  • 新しいスレッドは #:pool 引数で作成でき、#:keep 'results を設定すると thread-wait で結果を後から取得可能
  • black-box ラッパーは、最適化コンパイラが特定の演算を削除しないようにして、ベンチマークの精度を高める
  • decompile-linklet 関数は linklet を再び S 式に変換でき、processor-count は並列数を返すように変更
  • AArch64 向け “natipkg” パッケージWeibull 分布の追加ドキュメント改善 など、さまざまな更新を含む

Racket 9.0 の主な変更点

  • 今回のリリースでは 並列スレッド(Parallel Threads) 機能が新たに導入された

    • Racket はこれまでグリーンスレッド、futures、places をサポートしていたが、並列スレッドは主要な拡張機能として追加された
    • 並列スレッドは #:pool 引数を通じて作成でき、#:keep 'results に設定すると thread-wait を通じて結果を後から取得できる
  • black-box ラッパーは、最適化コンパイラが特定の計算を完全に除去しないようにする

    • ベンチマーク実行時に正確な性能測定を保証するのに役立つ
  • decompile-linklet 関数は linklet を再び S 式(s-expression) にマッピング可能

    • コード分析やデバッグ時に内部表現を復元できる機能を提供
  • BC Racket では processor-count 関数が常に並列プロセッサ数を返すように変更

    • 並列実行環境で一貫したプロセッサ数を確認可能
  • AArch64 向け “natipkg” パッケージ が新たに配布され、パッケージのビルドおよびテストインフラに活用可能

追加の改善点

  • Check Syntax 機能が、構文オブジェクトの “origin” フィールド内でより深くネストされた識別子の追跡をサポート
  • math ライブラリWeibull 分布 を追加
  • 多数の バグ修正およびドキュメント改善 を含む

コミュニティと参加案内

  • 今回のリリースには Alexander ShopovBogdan PopaMatthew FlattMatthias Felleisen など複数の開発者が貢献
  • Racket は コミュニティ主導のオープンソースプロジェクト であり、新規コントリビューターを歓迎

フィードバックと告知のお願い

1件のコメント

 
GN⁺ 2025-11-24
Hacker Newsのコメント
  • 今回のニュースの核心は、Racketがついに並列スレッドをサポートするようになったこと
    以前からも places のような並列化手法はあったが、今回の方式はずっと軽量でなじみやすい
    Racketで何かを作るのが好きなので、これによってRacketの活用範囲が広がるのはうれしい

    • リリースノートを読みながら私も驚いた。ついにこの形のマルチスレッディングが入ったのは歓迎したい
      places は柔軟性に欠けていた。ラムダを簡単に渡せず、serializable-lambda が伝染的に働くせいで、実行時には関数ではなくデータしか送れなかった
      そのため、複数の place に作業を分散させる構造を作るのが難しかった
      今回の新しい並行機能でそれが可能になることを期待している
      これまではこうした理由でRacketの代わりにGNU Guileを使ってきた。Guileは futures や fibers を通じてマルチコア活用がずっと安定していた
      私も futures を使って並列意思決定木モデルを作ってみたが、ほぼ線形の速度向上が得られた
    • どんな種類のプロジェクトをRacketで作っているのか気になる
      私はClojure開発者なのでLisp系が好きだ。Racketで何を作っているのか知りたい
    • バージョン9になってようやく並列スレッドが追加されたのは、公式サイトでRacketを「成熟して磨き上げられた言語」と紹介しているのと少し矛盾しているように感じる
  • この動画を見ると、Racketは最初の言語でなければ難しく感じるかもしれないが、子どもでも学べるほどやさしい言語でもある

    • 本当にすばらしい動画だ
  • 私はRacketが本当に好きだ
    趣味で Racket関連の本 を書き、オンラインで無料公開している
    Scheme系言語の中ではRacketとGerbilを勧めたい
    RacketはIDEが良く、標準およびサードパーティライブラリが豊富なので初心者向きで、Gerbilはシステムプログラミングやネットワークユーティリティに向いている

  • Racketは本当にすばらしい言語だ
    学ぶのに適したLisp系で、DrRacket IDEで課題をこなしていた思い出が今でも残っている

  • 私は80年代半ばに初めてLispを試し、その後も新しい考え方やプログラミング技法を学ぶために時々戻ってきた
    Racketも何度も試したが、どうもソフトウェア自体が自分には合わなかった
    続けて使えば良いのかもしれないが、大きなプロジェクトをRacketで書くのはまだ想像できない

    • 昔は好きだったが、コードがあまりに遅く重かったので離れた
      Pythonよりも遅く、Chez Scheme で再実装されてから改善されたのかもしれないが、今は高速で軽量なCommon Lispを使っている
    • 「ソフトウェア」と言うとき、それは言語自体のことなのか、それともツール類のことなのか気になる
  • 私がRacketを知ったのは、John Carmackが10年前にOculus関連の作業をRacketでやっていたのを見たからだった
    関連動画

  • Lispはそれ自体がメタ言語であり、Racketはさらにメタだ
    実質的には言語制作キットと言える

    • こういう話はよく聞くが、実際にRacketで言語を作るPL開発者はあまり多くない
      私がPLの授業を教えたときにRacketを使ってみたが、学生たちはJavaやPythonに慣れていてLisp構文に苦労していた
      そのため、Racketがいったい誰のための言語なのかよく分からない
  • Bogdan Popaのブログ(defn.io)にはRacket関連の興味深い情報がたくさんある
    新しいスレッディング機能を自分で使ってみるのが楽しみだ

  • Racketを何度か試したが、IDEがあまりに直感的でなくぎこちないと感じた
    これが意図された設計なのか、それとも単により良い代替がないだけなのか気になる

    • IDEは言語そのものではない
      RacketはVSCode(Magic Racket, Langserver)、Emacs(Racket Mode)、Vimなどでもしっかりサポートされている
      公式ドキュメントLangserverリポジトリ を参照できる
      DrRacketには他のIDEにないマクロステッパーのような機能があり、今でも十分使う価値がある
    • racket-mode.com では非常に優れたEmacs統合を確認できる
  • Racketは面白い言語だ
    私たちの大学では1年生のCS授業でRacketの教育向けバージョンを使っている
    嫌う学生もいるが、静かに気に入っている人もいる

    • その授業名が何だったのか気になる
    • でも大半は卒業後、二度とRacketを使わないと言っている。それはかなり示唆的だ