絵にちょっと詳しい人による色彩の紹介の本。Kindle Unlimited の対象だったのでパラパラっと読んだ。
Amazon のレビューに引っ張られている部分はあるだろうけど、本当にパラパラと読んで終わりという感じで新しい発見はさほどなかったなあ...。
3.3.0 で入れた将来の bundled gems の警告機能にいくつか不具合があり、pull-request も来ていたのでいろいろ直した。
1つ目は zeitwerk で bundled gems として利用した gem の呼び出し元がおかしくなるという不具合。
これは、3.3 のリリース前に bootsnap が似たような症状として発生していて、ハードコードでスキップしていたんだけど、zeitwerk でも起きるということで fxn がパッチを投げてくれた。この呼び出し元を特定する処理は ruby の stack frame を見てヒューリスティックに特定しているんだけど、bootsnap や zeitwerk のように require をさらに alias しているような gem だとズレるというのが原因だった。
で、この不具合を fxn のパッチをあてて追いかけてみると、bootsnap で実行している require をフルパスにする処理も美味く回避できるようになって、すべて解決することができた。
https://github.com/ruby/ruby/pull/10351
その後、byroot が gem をハードコードしなくても、require を alias しているような gem では動くようにしてくれたので、より柔軟に動くようになったと思う。
2つ目は racc など、警告を出す対象のリポジトリで開発をすると、何故か warning が出てしまうというバグ。
https://github.com/ruby/racc/actions/runs/7552745987/job/20562204339#step:4:41
全く原因がわからないので binding.irb デバッグしたら原因はわかったので
https://github.com/ruby/ruby/pull/9609
こんな感じで直していた。もともと期待している挙動は壊してないのと、これに困るのは default gems の開発者だけなので、あまり深く考えないことにした。
この辺の修正は全部 3.3.1 向けにバックポートリクエストは出したので、merge されればお手元の変な挙動は直る、はず...。