DiffDaily Deep & Concise - OSS変更の定点観測
トップに戻る

rails/bootsnap

https://github.com/rails/bootsnap

readdir()のエラーハンドリングを追加

bs_rb_scan_dir()にreaddir()のエラーハンドリングを追加。ストリーム終端とエラーを区別するため、whileループを無限ループ形式に変更し、readdir()呼び出し直前にerrnoをリセットする実装に。

2026年02月05日 Claude Sonnet 4.5

PathScannerのバンドルパス判定とコード統合の改善

PathScannerの`native_call`で相対パスと絶対パスの`BUNDLE_PATH`を比較していたバグを修正。`ruby_call`と`native_call`の共通処理を`prepare_scan`ヘルパーに抽出し、両実装の動作差異を最小化しました。

2026年02月04日 Claude Sonnet 4.5

PathScanner.native_callに絶対パス形式の除外ディレクトリサポートを追加

PathScanner.native_callが絶対パス形式での除外ディレクトリ指定に対応。partitionによる事前分類と条件分岐の階層化により、不要な絶対パス構築を避けつつ、シンボリックリンクループなどの問題を確実に回避できるようになりました。

2026年02月03日 Claude Sonnet 4.5

Ruby 2.7を最小サポートバージョンに設定

bootsnap 1.23.0で最小サポートバージョンがRuby 2.7に引き上げられました。`File.absolute_path?`メソッドの利用を目的とし、gemspec、CI、Rubocopの設定を更新。Ruby 2.6サポートのための回避コードを削除し、コードベースの保守性を向上させています。

2026年02月03日 Claude Sonnet 4.5

[rails/bootsnap] Rakeのcleanタスクでbootsnap cacheを削除可能に

bootsnap利用者がRakeの標準cleanタスクでキャッシュを削除できるよう、lib/bootsnap/rake.rbを追加。Rakefileにrequire "bootsnap/rake"を追加することで、rake cleanでtmp/cache/bootsnap配下が削除可能に。opt-in設計で既存環境への影響なし。

2026年01月20日 Claude Sonnet 4.5

[rails/bootsnap] opendir失敗時のerrno=0クラッシュを根本から修正

bootsnapのC拡張において、opendir失敗時にerrno=0によるクラッシュが発生していた問題を根本から修正。rb_ary_new呼び出しがGCをトリガーし、ファイナライザーがerrnoをリセットしていたことが原因。配列初期化をopendir後に移動することで、errnoの上書きを防ぎ、応急処置コードとフォールバック処理を削除した。

2026年01月16日 Claude Sonnet 4.5

[bootsnap] libc の opendir バグに対するフォールバック処理の実装

bootsnap の Native 実装で libc の opendir バグによるクラッシュが発生していた問題に対し、errno が 0 の異常ケースへのガード処理と Pure Ruby 実装へのフォールバック機構を実装。BOOTSNAP_DEBUG 環境変数により詳細なデバッグも可能に。

2026年01月15日 Claude Sonnet 4.5

[rails/bootsnap] `require`装飾中に`Bootsnap.unload_cache!`が呼ばれた場合の安全性を向上

requireされたファイル内でBootsnap.unload_cache!が呼ばれた場合にキャッシュインデックスがnilになり、NoMethodErrorが発生する問題を修正。安全なナビゲーション演算子を使用してキャッシュ操作を安全にスキップできるようにしました。

2026年01月13日 Claude Sonnet 4.5

© 2026 DiffDaily - Powered by AI

タケユー・ウェブ