トップ «前の日記(2022/12/26 (月) ) 最新 次の日記(2022/12/28 (水) )» 編集 RSS feed

HsbtDiary


2022/12/27 (火) [長年日記]

hsbt.org と bugs と Ruby CI を Ruby 3.2.0+YJIT にした

3.2.0 と YJIT を有効にしたらパフォーマンスが向上した!という報告が相次いでいるので、じゃあアップデートしておくかと手頃なアプリケーションを Ruby 3.2.0 にアップデートして YJIT を有効にしておいた。

dep: add ruby 3.2 support by flavorjones · Pull Request #2732 · sparklemotion/nokogiri

なお、Rails アプリケーションというか nokogiri の pre-compiled バイナリは Ruby 3.2.0 の macOS ではまだ動くものがリリースされてないので従来の ruby platform を bundler で追加してソースコードからビルドするように設定する必要がある。やることとしては heroku の場合、Gemfile の中の Ruby バージョンを 3.2.0 などに書き換えてから、以下のような手順になる。

$ bundle up --bundler
$ bundle lock --add-platform ruby
$ bundle i # または bundle up

とりあえず hsbt.org で動かしている tDiary や、https://bugs.ruby-lang.org/https://rubyci.org/ を Ruby 3.2.0 と YJIT 有効にした限りは動いているっぽい。

RubyGems 3.4 では C 拡張をインストール後にビルドディレクトリを make clean するようになった

タイトルが全部シリーズです。C 拡張な gem は ext ディレクトリの下に .c などを配置してその下でビルドしたのち lib にコピー(=インストール)という手続きを踏んでいます。今回 RubyGems 3.4 ではこの処理のうち、インストールが終わったあとは ext の下を make clean して不要なファイルを消すようになったんですが、この影響でいくつかの gem で動かないよ〜という報告が来たのであれこれ直していた。

https://github.com/rubygems/rubygems/issues/6205

要は ext の下を直接参照するようなコードがあって、そういう行儀が悪いコードは落ちますというものだった。最初はこれは revert した方がいいかなあとも思ったけど、数次第なら gem の方を直せばいいか、という気持ちになってきた。

ひとまず様子見しつつ、行儀悪い方を直しまくっていく。

Ruby 3.2 リリースパーティー presented by アンドパッド を開催してきた

Ruby 3.2 がリリースされたので毎年恒例となっていたリリースパーティーを2年ぶりにオフライン会場で開催してきた。

https://andpad.connpass.com/event/268447/

アンドパッドにはいい感じのスペースがあるので、ここで例年のパーティーをやればいいのでは?と思いつきで関係各所に話をしつつ、社内でも運営メンバーを編成してくれてハイブリッドでいい感じに開催することができた。

https://docs.google.com/presentation/d/1TmY23yVkrnHV3FuWleEXTY-x7LP18bobjOCzp5ZpyGU/edit?usp=sharing

今回は Ruby 3.2 でこれはすごいな〜という改善をしてくれたヤングメンバー()に事前に声をかけて成果を自慢して欲しい〜というプランである程度台本を用意しておいて、そのあとは成瀬さんやあれこれの人に雑に話を振っては雑に話してもらうという形にできたけどなかなか良かった気がする。

自分が何かを作るのはもちろんだけど、こういう感じで Ruby に関わる人のテンションを上げていく活動も来年は頑張りたい。