トップ «前の日記(2024/01/17 (水) ) 最新 次の日記(2024/01/19 (金) )» 編集 RSS feed

HsbtDiary


2024/01/18 (木) [長年日記]

Ruby 3.4 に向けて bundled gems 化を進めている

Ruby 3.3 で警告をだして予告したように、default gems として同梱されていたライブラリをじわじわと bundled gems として卒業させて行っている。

事前にある程度調査して影響範囲は調べたので楽に行くだろうと思って進めてみたら意外と苦戦してしまった。具体的には以下のような感じ。

  • minitest が 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 を買い替え、ってなってしまうのが辛い。どうしたものかなあ。