今日は主に例外にバックトレースを指定する時に Thread::Backtrace::Location の配列を受け付けるようにする変更や Dir.chdir のブロック内でさらに Dir.chdir を呼んだ時の警告に元の chdir の呼び元を表示するメッセージの強化などがありました。
NEWOBJ_OF() マクロの定義のリファクタリング。 NEWOBJ_OF_0() や NEWOBJ_OF_ec() といったマクロ定義をしてこれを用いて定義していたのをやめて展開しています。
拡張ライブラリ stringio に StringIO::MAX_LENGTH という定数を追加してバッファに使える最長のサイズを返すようにしています。
久々に Object Shapes 関係の変更で slot のサイズごとの object space の heap のサイズ? の管理テーブルの構造を変更しているようです。shape id と Variable Width Allocation の heap に関係があるんだっけ。
6ad347a1055902abfd5a7f5233dd8d18e1f1360b からの続きで Object Shapes の rb_shape_t を Variable Width Allocation の slot サイズごとに作らないようにしているようです。やはり Object Shapes で Variable Width Allocation の slot サイズについて関係があったみたいですね。
Object Shapes の実装で rb_shape_alloc_new_child() という関数に T_OBJECT 型の rb_shape_t に対して rb_bug() で異常終了させるようにしています。
拡張ライブラリ openssl のテストから OpenSSL のバージョンによって失敗する assertion を削除しています。
拡張ライブラリ openssl の OpenSSL::Provider のテストで legacy provider というのが提供されていない環境の対応を追加しています。
コマンドラインオプション --help で出力するメッセージから行末の "." や ";"、":" などを削るようにしているようです。
shape.c の size_pool_edge_names という static 変数が用途がなくなっていたので削除しています。
拡張ライブラリ fcntl の rdoc 用コメントから不要な Document-const: タグの指定を削除しています。
拡張ライブラリ fcntl で O_ACCMODE というマクロが未定義の時に自身の定義をして Fcntl::O_ACCMODE 定数の定義の preprocessor 分岐をシンプルにしています。
拡張ライブラリ fcntl の gemspec ファイルの spec.required_ruby_version を 2.5.0 以降に引き上げています。
拡張ライブラリ fcntl の rdoc 用コメント追加と Init_fnctl() の前のコメントには Document-module: タグを復活させています。
拡張ライブラリ fcntl の gemspec ファイルに spec.extra_rdoc_files という設定を追加して LICENSE.txt と README.md を指定しています。
拡張ライブラリ stringio のディレクトリに .document ファイルを追加して rdoc によるドキュメント化する対象のファイル拡張子を指定をしています。
拡張ライブラリ stringio に rdoc 用コメントの追加をしています。
拡張ライブラリ stringio の gemspec ファイルに spec.extra_rdoc_files の指定を追加しています。
gems/bundled_gems の minitest のバージョンを 5.22.3 に更新しています。
NEWS の bundled gems のバージョンリストの minitest のバージョンも更新しています。
gems/bundled_gems の minitest のテストに使う commit hash の指定を追加しています。
gems/bundled_gems の bigdecimal のバージョンを 3.1.7 に更新しています。
NEWS の bundled gems のバージョンリストの bigdecimal のバージョンも更新しています。
rubygems の再定義する require での default gems の require での警告のための lib/bundled_gems.rb で ostruct を対象に追加しています。
hash.c で RHASH_IDENTHASH_P() という ident hash かどうか判定するマクロを切り出すリファクタリング。
hash.c で RHASH_STRING_KEY_P() という RHASH_IDENTHASH_P() に加えて指定された key が文字列オブジェクトかどうか判定するマクロを切り出すリファクタリング。
Exception#set_backtrace で例外のバックトレースを設定するのに文字列の配列だけでなく Exception#backtrace_locations で取得できる Thread::Backtrace::Location の配列を設定することもできるようにしています。なるほど。 [ruby-core:81102] [Feature #13557]