Ruby 3.3 で警告をだして予告したように、default gems として同梱されていたライブラリをじわじわと bundled gems として卒業させて行っている。
事前にある程度調査して影響範囲は調べたので楽に行くだろうと思って進めてみたら意外と苦戦してしまった。具体的には以下のような感じ。
mutex_m
を使っていて、mutex_m
を外すと minitest が動かなくなってしまい、rake などのテストて fail してしまう。これは https://github.com/minitest/minitest/pull/973 として、昨年のうちから修正済みなので早くリリースしてくれ〜と祈っていたらリリースしてくれて解決した。base64
を外そうと思ったら bundler の中で mock server として動かしている rack が basic auth のために base64
を使っていてテストが落ちる。辛い。https://github.com/ruby/ruby/pull/9550/commits/4fb06e04ad9dd8f8335cd81aee7c960a2fce14d1 こんな感じで、bundler のテストのセットアップに差し込むことで解決した。bigdecimal
を外して、test-bundled-gems
という ruby/ruby
でビルドしたインタプリタで bundled gems のテストを実行するタスクで実行したら assert_in_out_err
というテストプロセスから新たにプロセスを切り出してまっさらな環境でテストする箇所が動かなくて fail。本当に辛い。これはビルド済みの C 拡張が存在するパスをWindows などすべてのプラットフォームでいい感じに動くように差し込むことで解決した。特に最後がきつくて、ruby/ruby
でテストが通ったと思ったら、ruby/bigdecimal
では動かない、ruby/bigdecimal
で動いたと思ったら、ruby/ruby
で(ry みたいな感じで大変だった...。
最終的には4つが無事に卒業したので、後はメンテナなりの都合のいい感じにメンテできる様になったと思う。すばらしい。まだまだ卒業候補生はたくさんいるので RubyKaigi までにはエイッとやってしまいたい。
少し前から Windows のマシンのファンが回りだす(=CPU または GPU が負荷高くなる)と、HDDのシーク音みたいな「ギギギギ」という音がなり始めて、最初は負荷が高くなるとデータ用の HDD に indexer などが回りまくるのかな?と思って無視していたんだけど、Samsung の NVMe を取り替えるときに HDD を外して検証しているときにもなりだして「は?」となって調べたり、SNS で嘆いたりしていたらコイル鳴きでは?というのを教えてもらった。
https://support.lenovo.com/jp/ja/solutions/HT511649
要は HDD とか NVMe に関係なく、CPU または GPU、またはマザーボードなどについているコイルが共鳴して異音がなっているということらしい。まじかー...。
割りとうるさいのでなんとか止めたいけど、これをやるには PC を買い替え、ってなってしまうのが辛い。どうしたものかなあ。