ruby-trunk-changes 2023-09-20

今日は主に rubygems で独自に Marshal.load を限定的なクラスと Symbol のみ扱うようにして再実装する変更などがありました。

[901d0b4125] Peter Zhu 2023-09-19 18:24:06 UTC

vm_method.c の Init_Method() という関数は空になっていたので削除しています。

[7d306d55ce] Jemma Issroff 2023-09-19 19:40:59 UTC

yarp の更新。また誤って追加された test_code.rb を削除しています。 https://github.com/ruby/ruby/pull/8480

[5b00314868] Takashi Kokubun 2023-09-19 21:09:01 UTC

tool/sync_default_gems.rb で default gems 同期時に ext/ 配下の拡張子 .java のファイルを無視するようにしています。

[4c1e367039] Peter Zhu 2023-09-19 23:33:48 UTC

7fc73ab5f6fbe46655855079954b26dcc14576b3 で誤って .gitignore が削除されてしまったので復帰させています。

[38e98cbb6a] Peter Zhu 2023-09-19 23:34:50 UTC

vm_method.c の callable_method_entry_refeinements0() という static 関数の関数名が typo してたので callable_method_entry_refinements0() に改名しています。

[d182d83ce9] Samuel Giddins 2023-08-18 20:35:23 UTC

rubygems に Gem::SafeMarshal というモジュールを追加して独自に安全な Marshal.load を実装しようとしているようです。まじか。細かい仕様を再現しようと思ったらかなり大変そう。

[c80a4d453a] Samuel Giddins 2023-08-18 22:26:47 UTC

d182d83ce929cd322f4a6fd134cd31be950eca77 からの続き。Gem::SafeMarshal での Time オブジェクトの load 時の zone の指定による offset の指定の修正をしているようです。

[cdcc760dc0] Samuel Giddins 2023-08-18 22:49:59 UTC

d182d83ce929cd322f4a6fd134cd31be950eca77 からの続き。 Gem::SafeMarshal のテストで古い ruby をサポートするよう新しい記法を避けるようにしています。

[1fff3e44ff] Samuel Giddins 2023-08-20 17:42:20 UTC

d182d83ce929cd322f4a6fd134cd31be950eca77 からの続き。 Gem::SafeMarshal の再修正。 JRuby や TruffleRuby サポートのため?

[7c6b500d8d] Samuel Giddins 2023-08-21 04:13:20 UTC

d182d83ce929cd322f4a6fd134cd31be950eca77 からの続き。 bundler での Marshal.load の仕様(挙動)変更への対応を呼び元のほうで吸収しているようです。

[fe90e83b48] Samuel Giddins 2023-08-21 05:44:43 UTC

d182d83ce929cd322f4a6fd134cd31be950eca77 からの続き。 bundler の Bundler.safe_load_marshal で可能なら Gem::SafeMarshal を利用するようにしています。

[f0d1b0cc4b] Samuel Giddins 2023-08-21 06:37:18 UTC

d182d83ce929cd322f4a6fd134cd31be950eca77 からの続き。 Gem::SafeMarshal で bundler 由来の Symbol などを許可リストに追加しています。

[e52f9bd41e] Samuel Giddins 2023-08-21 16:13:43 UTC

d182d83ce929cd322f4a6fd134cd31be950eca77 からの続き。 bundler で Gem::SafeMarshal.safe_load のエラーを捕捉して適切な例外を投げ直すようにしています。

[d3628e6ac4] Samuel Giddins 2023-08-24 01:58:25 UTC

d182d83ce929cd322f4a6fd134cd31be950eca77 からの続き。 Gem::SafeMarshal のテストの一部を JRuby や TruffleRuby で skip するようにしています。

[c65c88e65c] Samuel Giddins 2023-08-24 03:46:14 UTC

d182d83ce929cd322f4a6fd134cd31be950eca77 からの続き。Gem::SafeMarshal で TruffleRuby 向けにバージョンによる分岐をする対応を追加しています。

[cadca9f67e] Samuel Giddins 2023-08-24 16:23:02 UTC

d182d83ce929cd322f4a6fd134cd31be950eca77 からの続き。Gem::SafeMarshal で Time オブジェクトのロード時のタイムゾーンの扱いの実装(CRuby, JRuby, TruffleRuby)での違いに対応するための変更みたいです。

[f4a5fac0d2] Samuel Giddins 2023-08-24 16:57:16 UTC

d182d83ce929cd322f4a6fd134cd31be950eca77 からの続き。Gem::SafeMarshal のテストで Time.at のキーワード引数 in を利用しているところが 2.6 以前で動かないのでバージョンによる分岐に CRuby のバージョンによるチェックも追加しています。

[843c83ee5f] Samuel Giddins 2023-08-24 19:31:43 UTC

d182d83ce929cd322f4a6fd134cd31be950eca77 からの続き。 Gem::SafeMarshal で Time オブジェクトの load を独自実装するのはあきらめて Marshal.load に委譲するようにしています。

[12934b58c7] "dependabot[bot]" 2023-09-20 02:09:02 UTC

GitHub Actions の workflow で利用している ruby/setup-ruby アクションのバージョンを更新しています。

[afaa164a05] Nobuyoshi Nakada 2023-09-20 00:08:48 UTC

tool/sync_default_gems.rb のテストに正常終了時のテストケースを追加しています。

[3c11cdbcfe] Nobuyoshi Nakada 2023-09-20 01:32:44 UTC

7fc73ab5f6fbe46655855079954b26dcc14576b3 で yarp の同期時に .gitignore を誤って削除してしまったような事故を防ぐため、git checkout をファイルリストを列挙してまとめて実行するかわりに 1ファイルごとに git checkout を実行するようにしています。一度に実行できないのか。