
Ruby開発チームは11月17日、プログラミング言語「Ruby」のプレビュー版「Ruby 4.0.0-preview2」をリリースしました(ruby-lang.org)。今回のプレビュー版では、言語仕様からJITコンパイラまで幅広い改善が行われています。以下に注目ポイントを整理しました。
言語機能の変更:
-
nil.to_aが呼ばれなくなり、より直感的で一貫性のある挙動に。**nilがnil.to_hashを呼ばない仕様と統一。
コアクラスのアップデート:
-
Binding
-
local_variablesに番号付きパラメータが含まれなくなった。 -
local_variable_get/setも番号付きパラメータを扱わないように。
-
-
IO
-
IO.selectがFloat::INFINITYをタイムアウト引数として受け付けるように。
-
-
String / Regexp
-
Unicode 15.1.0 と Emoji 15.1 に対応。
-
最新の文字セットをサポート。
-
JIT関連の変更:
-
YJIT
-
ratio_in_yjitがデフォルトビルドで無効化。 -
--enable-yjit=statsを指定することで有効化可能。 -
invalidate_everythingがデフォルトで統計に追加。 -
RubyVM::YJIT.enableにmem_size:とcall_threshold:オプションが追加。
-
-
ZJIT
-
実験的なメソッドベースのJITコンパイラを追加。
-
--enable-zjitで有効化可能。 -
まだ性能改善は限定的で正式リリースまで評価は控えるべき。
-
-
RJIT
-
--rjitが削除。 -
サードパーティ実装は
ruby/rjitリポジトリへ移行。
-
Ruby 3.4.0から 3607ファイルが変更され、 197451行が追加され、285607 行が削除されています。。
まとめ
Ruby 4.0.0-preview2 は、言語仕様の一貫性強化、Unicodeアップデート、新しいJITコンパイラの試験導入など、次世代Rubyに向けた注目の機能が多数追加されています。正式リリースに向けて、開発者コミュニティのフィードバックが期待されます。
