トップ «前の日記(2026/03/05 (木) ) 最新 編集 RSS feed

HsbtDiary


2026/03/06 (金) [長年日記]

RubyGems の Psych を Ruby で書き換えてみた

Claude で問題を解いてみようシリーズで前からやりたいことリストにあった RubyGems が依存している Psych を専用の YAML パーサーで処理できるようにしてみようというのを Claude にやらせたらまともに動くものができた。

https://github.com/ruby/rubygems/pull/9352

前から Gemini とか GitHub Copilot 経由で使えるやつでちまちまやってたけど、どうしても bundle install など現実に存在する gem のインストールで死ぬということが多かったのだけど、Claude Opus 4.6 を問い詰めていたらサクッと動くものができて、お前やるな、となった。基本的な進め方は

  • テストは変えないでひたすらテストを通すように雑に作成させる
  • テストを全部通したら(これが Actions でだけ落ちる、とかがあり大変だった)コミットを整頓させる
  • 作業の途中で落ちた箇所については全て回帰テストを追加
  • dump/load しかない if 乱立の実装をパーサーの原則に基づいて構造化しろ、と雑に命令して Parser/Builder/Emitter に分割させていい感じにさせる
  • さらにテストを追加
  • パフォーマンス計測させて Psych から置き換えても現実的なレベルにちまちまチューニング

って感じでいいんじゃね?ってレベルのものができた気がする。いきなりこれに置き換えると流石にやばい気はするのでどっちをデフォルトにするかはともかく、オプションで切り替えられるようにするって感じかなあ。

機動戦士ムーンガンダム 15 を読んだ

しばらく積読のままだったムーンガンダムの15を読んだ。いつの間にか精神世界バトルといういかにもガンダムらしい展開になっていたけど、相変わらず前回はどこまで話が進んだんだっけ...となってしまった。

本当に同じようなことを繰り返していて良くない、というかもう漫画というメディアは読むべきではないのかなあ。


https://www.amazon.co.jp/dp/4041169240