Ruby 3.4正式リリース。YJITコンパイラの速度向上とメモリ削減、新パーサPrismがデフォルトに

2025年1月7日

Ruby開発チームは2024年12月25日、Ruby 3.4.0の正式リリースを発表しました

Rubyは毎年12月25日に新バージョンをリリースすることが恒例となっており、2024年も予定通りに新バージョンが登場しました。

fig

YJITコンパイラの速度向上とメモリ削減

Ruby 3.4ではJITコンパイラとして搭載されているYJITの速度向上と使用メモリ削減が実現されました。

Ruby 3.1でメインラインにマージされたYJITコンパイラは、ECサイト構築サービスを提供するShopifyが、大規模なRailsアプリケーションにおいてより高い性能向上を目指して開発したJITコンパイラです。

Ruby 3.4でのYJITは、x86-64とarm64の両方のプラットフォームにおいてほとんどのベンチマークのパフォーマンスが向上したこと、メタデータの圧縮と統一的なメモリ使用量制限によりメモリ使用量が削減されたことが報告されています。

「it」の追加

構文における新機能としては、ブロックパラメータに名前をつけずに参照する「it」が追加されました。下記のように、ブロック内で「_1」のみを使用する意図がある場合に、その代替として「it」を用いて分かりやすく記述できるようになりました。

ary = ["foo", "bar", "baz"]
p ary.map { it.upcase } #=> ["FOO", "BAR", "BAZ"]

パーサがPrismに、ガベージコレクタの動的ロード

また、ユーザーにはほとんど影響がない変更として、デフォルトのパーサがPrismに変更されました。

Rubyのパーサとは、Rubyのコードを解析し、Rubyランタイムで実行しやすい形式に変換するための処理などを担っています。

それ以外にも、Ruby関連ツールでRubyのコードを解析する場合、例えばコードエディタでRubyのコードを補完するための書きかけのコードを解析する処理や、Rubyのコードのフォーマットを整えるなどの関連ツールやライブラリでのRubyコードの解析、Javaで実装されたRubyであるJRubyなどさまざまなRubyの実装におけるコードの解析など、さまざまな場面でパーサが使われています。

Prismはこれまでのパーサとの互換性を保ちつつ、書きかけのコードのような不完全なコードであっても可能な限り解析できるエラートレラント性、さまざまな実装において利用しやすいような移植性、長期的に使い続けられるようなメンテナンス性のそれぞれを十分に満たすように開発が行われてきました。

そしてRuby 3.4でデフォルトのパーサとして採用されたのです。これによりRuby関連ツールやさまざまなRuby実装などにおいて今後の進化が容易になったと言えるでしょう。

その他の新機能として、Modular GC 機能によりRuby標準とは異なるガベージコレクタの実装を動的にロードできるようになりました。

あわせて読みたい

プログラミング言語 Ruby




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本