ruby-trunk-changes 2024-11-27

今日は拡張ライブラリ strscan の新規メソッド StringScanner#scan_integer の追加(そういえば NEWS 追記が必要そう)や Array#include? の最適化命令の導入、拡張ライブラリ io/console の不具合修正などがありました。

[def684508c] tomoya ishida 2024-11-26 17:50:24 UTC

標準添付ライブラリ irb のバッククオート文字列リテラルを含む行のインデント計算がおかしくなる不具合の修正。 https://github.com/ruby/irb/pull/1038

[c1dcd1d496] tomoya ishida 2024-11-26 17:58:38 UTC

標準添付ライブラリ reline の Reline::KeyStroke でマルチバイト文字への対応を追加しています。 https://github.com/ruby/reline/pull/713

[1dd40ec18a] Randy Stauner 2024-11-26 19:31:08 UTC

Array#include? メソッドで receiver が配列リテラルの場合 ISeq に埋め込まれている配列から duparray 命令で複製を作ってからメソッドが呼ばれますが、Array#include? メソッドが再定義されていなければ ISeq 上で検出して dup を抑制するため opt_duparray_send という VM 命令を導入してこれを使って include? メソッド呼び出しをするようにしています。この新規の最適化用 VM 命令内でメソッド名に応じて適当な C の実装を呼ぶようにして、他のメソッドでも同様の最適化ができる余地を作っているようです。 https://github.com/ruby/ruby/pull/12123

[33f15ce80d] Matt Valentine-House 2024-11-26 14:51:21 UTC

tool/sync_default_gems.rb で GC の外部実装 mmtk を同期する時のメインブランチ名の指定を追加しています。

[8f9b9aecd0] Randy Stauner 2024-11-26 21:49:24 UTC

YJIT で VM 命令の opt_reverse という命令のコンパイル対応を追加しています。 https://github.com/ruby/ruby/pull/12175

[092a48de7e] Ellen Marie Dash 2024-10-31 23:56:55 UTC

rubygems の gem 名がみつからない時? の似た名前の提案に gem 名の前後に "ruby" というのがついているものも候補にするようにしています。

[a041a6c1b5] NAITOH Jun 2024-11-03 21:21:11 UTC

benchmark/ ディレクトリに拡張ライブラリ strscan のベンチマークを追加しています。これ benchmakr/strscan/ とかにネストしたほうがいいですかね。

[d5de1a5789] Jean Boussier 2024-11-26 08:22:16 UTC

拡張ライブラリ strscan に StringScanner#scan_integer というメソッドを新規追加して String#to_i で変換できるような文字列の先頭からの整数部分をスキャンする実装を追加しています。 Kernel#Integer() みたいに 10進数以外の表記のサポートはないので注意が必要です。ぱっとみた感じ "_" で桁を区切るのにも対応していないみたいですね(String#to_i はサポートしている)。 https://github.com/ruby/strscan/issues/113 https://github.com/ruby/strscan/pull/115

[42b1eaf234] Nobuyoshi Nakada 2024-11-26 11:48:04 UTC

cont.c の fiber_entry() という関数に NORETURN() で処理が戻らない関数であることをコンパイラに教えるようにしています。

[3face42d8a] Yusuke Endoh 2024-11-27 02:43:02 UTC

5bd144c1bb20e22e4d9f5e5e0264820fd3ef8137 で拡張ライブラリ io/console のデバッグのためにエラー時の rb_bug() の呼び出しを追加したのを revert しています。

[c41af37ee6] Alan Wu 2024-11-26 23:35:34 UTC

拡張ライブラリ io/console で sys_fail() というマクロで errno を参照する前に rb_io_path() を呼び出していて、この中で errno がリセットされてしまう場合があって不正な errno で rb_syserr_fail_str() を呼んでしまい異常終了することがあったので、rb_io_path() の呼び出し前に errno の値をローカル変数に退避して直接 rb_syserr_fail_str() を呼ぶように修正しています。

[24889e44f7] Hiroshi SHIBATA 2024-11-27 02:52:41 UTC

lib/bundled_gems.rb でテスト時の実行を検出するための環境変数名をもう少し独自のものに変更しています。

[9349e98be2] Hiroshi SHIBATA 2024-11-27 03:40:10 UTC

make test-bundled-gems でテストを実行する gem を環境変数 BUNDLED_GEMS で指定する時にカンマ区切りで複数指定できるようにしています。

[671e6eb644] Hiroshi SHIBATA 2024-11-27 04:33:38 UTC

make test-bundled-gems-spec でも環境変数 BUNDLED_GEMS でテストする gem 名の指定ができるようにしています。

[26aebdb6d6] Hiroshi SHIBATA 2024-11-27 05:22:40 UTC

make test-bundled-gems-spec で mspec を実行する時に環境変数 BUNDLED_GEMS を --env オプションを使って渡すようにしています。

[ac7b63e353] Hiroshi SHIBATA 2024-11-27 07:17:13 UTC

671e6eb6447575e6acfd0b52e6ac9034c6611c0c の bundled gems の mspec によるテストの時の環境変数 BUNDLED_GEMS のチェックで変数が指定されていない時と空文字列が指定されている時の両方を無指定として対応するようにしています。

[87fc9f4a70] Nobuyoshi Nakada 2024-11-26 10:34:14 UTC

doc/maintainers.md の GitHub アカウント名のリンク化に keiju さん kanemoto さんも追加しています。