ruby-trunk-changes 2022-06-25

今日は io/wait から IO#wait や IO#wait_{readable,writable} の実装を ruby 本体に移植する変更や ISeq のバイナリフォーマットへの dump の不具合修正などがありました。

[87e2e3f383] Aaron Patterson 2022-06-24 21:08:36 UTC

RubyVM::InstructionSequence.load_from_binary でバイナリフォーマットから ISeq を load する時にインラインキャッシュなどの情報を格納するバッファを正確に復元できないようになっていたという不具合を修正しているようです。どっちかというと主に dump する時に必要な情報を追加しているという修正ですね。

[362d6d9ac8] git 2022-06-24 22:04:17 UTC

version.h の日付更新

[d7cc380666] Jean Boussier 2022-06-24 09:30:59 UTC

ISeq の mark 処理でインラインキャシュのオフセットを得るために bitmap を走査する時の実装に ntz_intptr() を使うように高速化しています。

[2b4a1ad584] Shannon Skipper 2022-06-24 19:12:22 UTC

IO::Buffer#copy の rdoc 用コメントのサンプルコード内で変数名の typo を修正しています。

[f9c8d80883] Samuel Williams 2022-06-25 07:21:37 UTC

拡張ライブラリ io/wait で RUBY_IO_WAIT_METHODS というマクロが定義されていた時に IO#wait, #wait_{readable,writable} メソッド定義をしないようにしています。ruby 3.2 では既に IO#wait_{readable,writable} が本体で定義されているのでということなので、古い ruby で gem としてインストールした時のための修正だと思います。

[7e68762446] git 2022-06-25 07:22:07 UTC

test/io/wait/test_io_wait.rb の行末の空白を除去しています。

[d281347abb] Samuel Williams 2022-06-25 08:12:21 UTC

拡張ライブラリ io/wait のテストで assert_raises のかわりに assert_raise を使うように修正しています。

[8c1d3c2dce] Nobuyoshi Nakada 2022-06-25 09:05:52 UTC

拡張ライブラリ io/wait で C99 の機能の一行コメントや for 文内での変数宣言などを使ってたのをやめています。gem なので古い環境でもビルドできるようにするためかな。

[50e13870bf] Nobuyoshi Nakada 2022-06-25 09:10:38 UTC

拡張ライブラリ io/wait の gemspec ファイルでバージョンを 0.3.0.pre に更新しています。

[c0b5124043] git 2022-06-25 09:11:16 UTC

50e13870bffa3561be13faa31c3fcba6b6d1aceb に追随して NEWS の default gems のバージョン一覧でも io-wait のバージョンを更新しています。

[d2166c09b0] Samuel Williams 2022-06-18 06:03:51 UTC

IO#wait, #wait_{readable,writable} の実装を ruby 本体に移植しています。 f9c8d8088378981385f6acd18d2fe9fedcd7ab85 の変更時にもう存在してると思ったけどここで移植された後のソースコードをみてたんですね。

[f159bbd17d] Nobuyoshi Nakada 2022-06-25 10:05:36 UTC

テスト用の assert_raises メソッドの定義を tool/lib/test/unit/assertions.rb から tool/lib/core_assertions.rb に移動して標準添付ライブラリで使われないようにしています。これって minitest との互換性? のためとかでわざと使えるようにしてたんじゃないのかな……。