@ledsun blog

Hのキーがhellで、Sのキーがslaveだ、と彼は思った。そしてYのキーがyouだ。

Ruby 3.1 Preview 1を試す

今年のクリスマスにリリースが予定されているRuby 3.1のPrview 1がリリースされました。 rbenv + ruby-buildを使って動かして見ます。

ruby-buildを更新します。

ledsun@MSI:~►cd .rbenv/plugins/ruby-build/
ledsun@MSI:~/.r/p/ruby-build►git pull
remote: Enumerating objects: 26, done.
remote: Counting objects: 100% (26/26), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 26 (delta 11), reused 22 (delta 10), pack-reused 0
Unpacking objects: 100% (26/26), 5.98 KiB | 266.00 KiB/s, done.
From https://github.com/rbenv/ruby-build
   30eb72f..d796c17  master     -> origin/master
 * [new tag]         v20211109  -> v20211109
Updating 30eb72f..d796c17
Fast-forward
 bin/ruby-build                  | 2 +-
 script/update-cruby             | 2 +-
 share/ruby-build/3.1.0-preview1 | 2 ++
 share/ruby-build/jruby-9.2.20.0 | 2 ++
 share/ruby-build/yjit-dev       | 2 --
 5 files changed, 6 insertions(+), 4 deletions(-)
 create mode 100644 share/ruby-build/3.1.0-preview1
 create mode 100644 share/ruby-build/jruby-9.2.20.0
 delete mode 100644 share/ruby-build/yjit-dev

3.1のプレビュー版来てます。 インストールします。

ledsun@MSI:~►rbenv install 3.1.0-preview1
Downloading ruby-3.1.0-preview1.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0-preview1.tar.gz
Installing ruby-3.1.0-preview1...
Installed ruby-3.1.0-preview1 to /home/ledsun/.rbenv/versions/3.1.0-preview1

グローバルのRubyは3.1プレビュー1にしておきます。

ledsun@MSI:~►rbenv global 3.1.0-preview1
ledsun@MSI:~►ruby --version
ruby 3.1.0preview1 (2021-11-09 master 5a3b2e6141) [x86_64-linux]

とりあえず Ruby 3.0のJITのすごさを体験する - @ledsun blog で動かしたRubyスクリプトを実行してみます。

ledsun@MSI:~/try_ruby_3.1time ruby hoge.rb 50000000
-0.169075164
-0.169059907

________________________________________________________
Executed in  200.72 secs    fish           external
   usr time  200.72 secs  108.00 micros  200.72 secs
   sys time    0.00 secs  217.00 micros    0.00 secs

ledsun@MSI:~/try_ruby_3.1time ruby --jit hoge.rb 50000000
-0.169075164
-0.169059907

________________________________________________________
Executed in  100.23 secs    fish           external
   usr time  101.63 secs  102.00 micros  101.63 secs
   sys time    0.10 secs  178.00 micros    0.10 secs

ledsun@MSI:~/try_ruby_3.1time ruby --yjit hoge.rb 50000000
-0.169075164
-0.169059907

________________________________________________________
Executed in  114.28 secs    fish           external
   usr time  114.18 secs  105.00 micros  114.18 secs
   sys time    0.10 secs  210.00 micros    0.10 secs

yjitが動くことが確認できました。