Ruby 3.3.0-preview1 リリース
Posted by naruse on 12 May 2023
Ruby 3.3.0-preview1 が公開されました。Ruby 3.3ではRJITという新たなJITの仕組みを追加するとともに、YJITの高速化など様々な改善が行われています。
RJIT
- Introduced a pure-Ruby JIT compiler RJIT and replaced MJIT.
- RJIT supports only x86_64 architecture on Unix platforms.
- Unlike MJIT, it doesn’t require a C compiler at runtime.
- RJIT exists only for experimental purposes.
- You should keep using YJIT in production.
- If you are interested in developing JIT for Ruby, please check out k0kubun’s presentation on Day 3 of RubyKaigi.
Use Lrama instead of Bison
- Replace Bison with Lrama LALR parser generator [Feature #19637]
- If you have interest, please see The future vision of Ruby Parser
- See also: Ruby Parser開発日誌 (5) - Lrama LALR (1) parser generatorを実装した
YJIT
- Significant performance improvements over 3.2
- Splat and rest arguments support has been improved.
- Registers are allocated for stack operations of the virtual machine.
- More calls with optional arguments are compiled.
Integer#!=,String#!=,Kernel#block_given?,Kernel#is_a?,Kernel#instance_of?,Module#===are specially optimized.- Instance variables no longer exit to the interpreter with megamorphic Object Shapes.
- Metadata for compiled code uses a lot less memory.
- Improved code generation on ARM64
- Option to start YJIT in paused mode and then later enable it manually
--yjit-pauseandRubyVM::YJIT.resume- This can be used to enable YJIT only once your application is done booting
- Exit tracing option now supports sampling
--trace-exits-sample-rate=N
- Multiple bug fixes
*
その他の主要な新機能
言語機能
パフォーマンスの改善
その他の注目すべき 3.2 からの変更点
互換性に関する変更
定数の削除
以下の非推奨定数は削除されました
メソッドの削除
以下の非推奨のメソッドは削除されました
標準添付ライブラリの互換性に関する変更
ext/readline の削除
- 今後は Ruby で書かれた GNU Readline の互換ライブラリである
relineをすべての環境で標準で利用し、ext/readlineは削除されました。以前のext/readlineが必要なユーザーはgem install readline-extでインストールすることができます。 - この変更により、Ruby のインストール時に
libreadlineやlibeditなどのライブラリのインストールは不要となります。
C API の変更
C API の更新
以下の API が更新されました
C API の削除
以下の非推奨の API は削除されました
標準添付ライブラリのアップデート
-
以下の default gems のバージョンがアップデートされました。
- RubyGems 3.5.0.dev
- bigdecimal 3.1.4
- bundler 2.5.0.dev
- csv 3.2.7
- fiddle 1.1.2
- fileutils 1.7.1
- irb 1.6.4
- optparse 0.4.0.pre.1
- psych 5.1.0
- reline 0.3.3
- stringio 3.0.7
- strscan 3.0.7
- syntax_suggest 1.0.4
- time 0.2.2
- timeout 0.3.2
-
uri 0.12.1
-
以下の bundled gems のバージョンがアップデートされました。
- minitest 5.18.0
- rbs 3.1.0
- typeprof 0.21.7
- debug 1.8.0
default gems と bundled gems の詳細については Logger の GitHub Releases のような GitHub releases または changelog ファイルを参照してください。
その他詳細については、NEWS ファイルまたはコミットログを参照してください。
なお、こうした変更により、Ruby 3.2.0 以降では 1922 個のファイルに変更が加えられ、75283 行の追加と 44896 行の削除が行われました !
メリークリスマス、Ruby 3.3 とともによいお年をお迎えください!
ダウンロード
-
https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.tar.gz
SIZE: 20428213 SHA1: 5445eec1cd9ddb44e03e74568cac94209c91b42d SHA256: c3454a911779b8d747ab0ea87041030d002d533edacb2485fe558b7084da25ed SHA512: 0f891f140ddc6372aa7c4459f8784126e0c341db7b80e72c51e441c5153c43c2d7b965f7807c076862ac84b9b8b0c6a66bbf66fc341746016151397bb21c782a -
https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.tar.xz
SIZE: 15074600 SHA1: 4c22ebca287c87811e1050bf4d59b7d32255b212 SHA256: ae300b49e06c13087dd163b97eddd38db895dc8e0c9904284119795d75303fbb SHA512: 46c1134dba5810847f7f6b4298900a91f5225679d7873548b271f4ef2ad1dc168722562a2e468a2ccf136314176ee613d8c7792fd4411a3f7a44c80b93b417ee -
https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.zip
SIZE: 24846962 SHA1: 31774fa653c54107b6afc30adda3a0350d8f41d2 SHA256: 6ecafecf83f2cacf446b2326012f2b6ee1a0614d8dd29bb1fb3f105c27e2c553 SHA512: 794bef847fefbbdbbdced85975a00c9289ef6464810408af3f0f2055052d6b5ef5576dbd41e0d87bb73f1ad276d8e27c36018610f8e2b9936828c0e692f611f0
Ruby とは
Rubyはまつもとゆきひろ (Matz) によって1993年に開発が始められ、今もオープンソースソフトウェアとして開発が続けられています。Rubyは様々なプラットフォームで動き、世界中で、特にWebアプリケーション開発のために使われています。
最近のニュース
Ruby 4.0.0 リリース
Ruby 4.0.0 が公開されました。 Ruby 4.0 には “Ruby Box”、”ZJIT” ほか多数の改善が含まれています。
Posted by naruse on 25 Dec 2025
サイトのアイデンティティの再設計
サイトの包括的なデザインのアップデートを発表できることを嬉しく思います。今回の更新ではTaeko Akatsukaさんにデザインを担当していただきました。
Posted by Hiroshi SHIBATA on 22 Dec 2025
Ruby 4.0.0 preview3 リリース
Ruby 4.0.0-preview3 が公開されました。
Posted by naruse on 18 Dec 2025
Ruby 4.0.0 preview2 リリース
Ruby 4.0.0-preview2 が公開されました。Ruby 4.0では、Unicodeバージョンの17.0.0へのアップデートなど様々な改善が行われています。
Posted by naruse on 17 Nov 2025