Ruby 3.2.0が出たので早速環境構築した(M1 mac対応もあり)
毎年のクリスマスの大事なイベントのRubyのリリースがされていた
今回の目玉はWASIベースのWebAssemblyサポートと実用段階になったYJITが大きそう
WASIはまあ一旦置いておいてインストール時に意識するのはYJITだ
Rust環境のセットアップ
環境を用意していなかったので公式にしたがって用意する
とは言ってもこれだけで済む。RubyとかPythonより楽だ
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Ruby 3.2.0のインストール
rustcが動いたら問題無しなので早速インストールする
CRuby を YJIT を有効としてビルドするためには、rustc >= 1.58.0 をインストールした上で、 ./configure を --enable-yjit オプションを付与して実行する必要があります
Linux
基本的にはいつもどおり、 .rbenv/plugins/ruby-build/ を更新して3.2.0が対応されているのを確認する
まずはYJITを無視してインストールしてみる。最低限の確認はしておいたほうが良い
rbenv install 3.2.0
問題は無いので、YJITを有効化する。configureに--enable-yjitを渡すだけなのでrbenvからだとCONFIGURE_OPTSを利用するので良いだろう
$ CONFIGURE_OPTS="--enable-yjit" rbenv install 3.2.0
こちらも問題が無い。インストールログを見てもyjit.cが含まれている
普通にrubyが起動したので良さそうだ
macOS
仕事用で会社から貸与されたmacOS M1にインストールをしていく
rustの環境が必要なのでインストールするがこっちは問題無し
次にRubyだが、YJIT無しだと普通にインストールが出来たが、問題はYJITを有効化するとエラーになる
Installing openssl-3.0.7...
どうもopensslを入れようとしてエラーになる。というかそもそもHomebrewでopensslが入っているがそれを使わずに自前で用意しようとしてエラーになっているようだ。具体的には追うつもりは無いのでエラーの理由は知らない...
まあこういう場合はopensslを指定してあげれば良いのでRUBY_CONFIGURE_OPTSで指定したら素直にインストールが完了した
$ CONFIGURE_OPTS="--enable-yjit" RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/homebrew/Cellar/openssl@3/3.0.7/lib/" rbenv install 3.2.0
ということで今回もRubyの新バージョンがインストール出来たので有り難いですね。開発者の方に感謝しつつ楽しみます
あ、自分用のprovisioningのレシピにRustを追加しないと... まあこれは急がないからそのうちにだな