Ruby 3.4.0 リリース
(ruby-lang.org)-
昨年と同様、12/25 に Ruby 3.4.0 がリリースされました
-
主な更新内容には、
itブロック引数参照の追加、Prism をデフォルトパーサーとして変更、Socket ライブラリに Happy Eyeballs Version 2 のサポート追加、YJIT の改善、モジュラー GC の追加などがあります。 -
itブロック引数参照- 変数名を使わずにブロック引数を参照できる
itが導入されました。これは_1と同様に動作し、シンプルなブロックで使いやすくなります。
- 変数名を使わずにブロック引数を参照できる
-
Prism をデフォルトパーサーに変更
- デフォルトパーサーは
parse.yから Prism に変更されました。ユーザー側で大きな変更はないはずですが、互換性の問題が発生した場合は報告をお願いします。
- デフォルトパーサーは
-
Socket ライブラリの Happy Eyeballs Version 2
- Socket ライブラリに Happy Eyeballs Version 2(RFC 8305)のサポートが追加されました。これは、現代のインターネット環境に適した効率的で信頼性の高いネットワーク接続を提供します。
-
YJIT の改善
- ほとんどのベンチマークでパフォーマンスが向上し、メモリ使用量が減少し、さまざまなバグ修正と新機能が追加されました。
-
モジュラー GC
- 代替ガベージコレクタ (GC) 実装を動的にロードできるモジュラー GC 機能が追加されました。Rust ツールチェーンが必要です。
-
言語の変更点
frozen_string_literalコメントがないファイルの文字列リテラルが変更されると警告が発生します。**nilキーワードスプラッティングのサポートなど、さまざまな変更が含まれます。
-
コアクラスの更新
Exception#set_backtraceがThread::Backtrace::Locationの配列を受け入れるなど、複数のコアクラス更新が含まれます。
-
標準ライブラリの更新
- RubyGems、Bundler、JSON、Tempfile など複数の標準ライブラリでパフォーマンス改善と機能追加が行われます。
-
互換性の問題
- エラーメッセージとバックトレース表示方法の変更、
Hash#inspectレンダリング方式の変更など、互換性に関する変更が含まれます。
- エラーメッセージとバックトレース表示方法の変更、
-
C API の更新
rb_newobjおよびrb_newobj_of関数の削除など、C API に関する更新が含まれます。
-
その他の変更
- 未使用のブロックをメソッドに渡す際に警告が発生するなど、さまざまな変更が含まれます.
2件のコメント
Hacker Newsのコメント
Ruby のパーサー変更への期待が大きい。これまで yacc を使うよう教えられてきたが、Ruby は手作業で書かれたパーサーを使う言語の仲間入りをした。
parse.yを 22k 行のprism.cに置き換えるのは大胆な試みだ。Ruby 3.4.1 はすでに旧バージョンだ。
この数年、Ruby のパフォーマンスはとくに向上してきた。3.3 以降は
--yjitオプションで全アプリを実行していて、差が大きい。Shopify の戦略は YJIT の話と同じ。サービスのリファクタリングが難しければ、Ruby のリファクタリングを進めるという意思表明だ。
JIT と GC のレベルでのパフォーマンス改善は、嬉しい追加ポイント。
毎年クリスマスの恒例行事のように Ruby リリースを待っている。
毎年末に Rails アプリを更新しているが、最近は安定性や性能が向上していて更新がしやすくなっている。
Ruby チームへ祝福と感謝を捧げる。
Rails 8 の話題以来、Ruby を試してみたかったが、インストール手順があまりにも難しくて諦めた。
html.erbファイルの構文ハイライトが完全に壊れていた。> Rails 8のニュースがきっかけで Ruby を試してみたかったのですが、インストール手順があまりにも難しくて断念しました。
macOSでRailsのインストールを簡単にしてくれるスクリプトがあります。
=>
https://rails.new/