Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails関連

Ruby 3.2.0がリリースされました

あけましておめでとうございます。旧聞に属しますが、昨年クリスマスにRuby 3.2.0が予定通りリリースされました。

なお、Ruby 2系最後のバージョンであるRuby 2.7.xは、2023/03/31以降にサポートが終了することが予想されます。Ruby 2系を使っているプロジェクトは早めにRuby 3系への移行準備をしておきましょう。

参考: Ruby Maintenance Branches

Ruby 3.2.0のビルド方法については以下の記事をどうぞ。

Ruby 3.2.0-devをM1 Macbook Pro(Ventura)でビルドする

🔗 更新の概要

Ruby 3.2.0では新しい構文の導入や構文の変更は控えられており、機能追加や最適化、バグ修正が中心です。特にDataクラスは使いでがありそうです。

なお、Ruby 3.2.0最終リリースノートはRuby 3.2.0 RC 1リリースの時点のリリース情報↓にだいぶ追記されています。

参考: Ruby 3.2.0 RC 1 リリース


Ruby 3.2.0の目玉機能をいくつかリストアップします。詳しくは公式のリリース情報をご覧ください。

  • イミュータブルな値オブジェクトに使えるDataクラスがコアに追加された
  • 正規表現のReDoS対策
    • Regexp.timeoutグローバル設定の導入
    • マッチングアルゴリズムをメモ化の最適化によって改善(19104
  • SyntaxSuggest機能の導入(18159
  • TypeErrorとArgumentErrorの引数を下線表示するようになった
  • YJITが実験段階を終えて正式採用となった
    • x86-64とarm64/aarch64両方でビルド可能に
    • Ruby 3.1のYJITより高速化され、メモリオーバーヘッドも削減された
    • YJITのビルドにはRust 1.58.0以降が必要
    • YJITはオプションであり、なしでも実行可能
    • YJITがオブジェクトシェイプを利用する形で最適化された(18776
  • MJITコンパイラがruby_vm/mjit/compilerとして再実装された
  • IRBが強化された
  • WASIベースのWebAssemblyサポート(#5407
  • 引数の受け渡しや定数の評価順序などでバグ修正や改修が行われた
  • パターンマッチングのfindパターンが正式になった(18585
  • Bundlerの依存解決ライブラリがMolinilloからPubGrabに変更された
    • 今後RubyGemsもPubGrabに移行する計画があるとのこと

jhawthorn/pub_grub - GitHub

  • FixnumBignumなどいくつかの非推奨定数が削除された
  • Dir.exists?File.exists?などいくつかの非推奨メソッドが削除された

これらの削除は、古いgemやコードで影響が生じる可能性があるかもしれません。

参考: 関連読み物

関連リポジトリ

rbenvのruby-buildは早々にRuby 3.2.0に対応しました。

参考: Release ruby-build 20221225 · rbenv/ruby-build · GitHub

rbenv/ruby-build - GitHub


Docker Hubでは翌日にRuby 3.2.0イメージがリリースされました。

参考: ruby - Official Image | Docker Hub

docker-library/ruby - GitHub

なお、Docker HubのRubyでRust版YJITの対応をどうするかは現在審議中です↓。

参考: Add YJIT support to debian 3.2+ by paihu · Pull Request #400 · docker-library/ruby · GitHub


HerokuでRuby 3.2.0のYJITを有効にする方法は以下のschneemsさんの書き込みで紹介されていました。

参考: Ruby 3.2.0 Released : ruby

# Ruby 3.2.0のYJITを有効にするコマンド
heroku config:set RUBYOPT=’--enable-yjit’

関連記事

Ruby 3.2.0-devをM1 Macbook Pro(Ventura)でビルドする

Ruby 3.1.0がリリースされました


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。