⛳
【Ruby 3.4 Advent Calender】トップレベルに ::Ruby が予約される【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
を予約しておく』というような対応がされました。
具体的にどういう形で追加していくのかはこれから議論していくことになると思います。
Discussion