【Ruby 3.4 Advent Calender】トップレベルに ::Ruby が予約される【18日目】

2024/12/18に公開

Ruby 3.4 Advent Calender 18日目の記事です。

これはなに

今年 2024年12月25日にリリースされる予定の Ruby 3.4 の新機能や変更点などを1つずつ紹介していく Advent Calender になります。
基本的には NEWS に載っている機能を紹介すると思うんですがここにない機能についても書くかもしれません。
また、記事を書いてる時点ではまだ Ruby 3.4 はリリースされる前なので Ruby 3.4 がリリースされた時点で機能が変わっている 可能性があるかもしれないので注意してください。
記事のまとめは ここを参照 してください。

トップレベルに ::Ruby が予約される

Ruby 3.4 からトップレベルで ::Ruby という名前が予約されるようになります。
例えば次のようにトップレベルで ::Ruby が定義されている場合に Ruby 3.4 から警告が出るようになります。

module Ruby
end

この警告は -W / -W:deprecated が有効なときのみ出力されます。

背景

Ruby には以下のような定数が存在しています。

RUBY_VERSION
RUBY_RELEASE_DATE
RUBY_PLATFORM
RUBY_PATCHLEVEL
RUBY_REVISION
RUBY_COPYRIGHT
RUBY_ENGINE
RUBY_ENGINE_VERSION
RUBY_DESCRIPTION

これらはいまはトップレベルで定義されているんですが将来的に『 Ruby::VERSION のような形で参照できるようにしたい』という背景があります。
それを踏まえて Ruby 3.4 ではまず『 ::Ruby を予約しておく』というような対応がされました。
具体的にどういう形で追加していくのかはこれから議論していくことになると思います。

関連

GitHubで編集を提案

Discussion