ruby-trunk-changes 2024-04-11

今日は主に irb の組み込みコマンドの実装方法の変更などがありました。

[9f6deaa688] Kouhei Yanagita 2023-10-13 06:02:23 UTC

Range オブジェクトの要素の型が整数や文字列のような数え上げられるものではなくて each メソッドに TypeError を発生させる時にも Range#size が例外を発生させていなかったので同様に TypeError を発生させるようにしています。両端が Float の時にこれまでは整数として数えあげた時のサイズを返していたのに例外になるので注意が必要です。 [ruby-core:109773] [Misc #18984]

[6a505d1b59] tomoya ishida 2024-04-10 16:52:47 UTC

irb の組み込みコマンドの実行方法を大きく変更していて、メソッドとして定義して通常の文と同様に eval していたのをコマンドとして parse したら各コマンド用 Class の execute メソッドを明示的に呼ぶという少しかたい実装方針に変更しています。組み込みコマンドの時に独自の文法を使えるようにするなどの拡張の伏線かな? https://github.com/ruby/irb/pull/824

[d60b2caa95] Nobuyoshi Nakada 2024-04-10 17:10:20 UTC

bundler のテストに使う gem の turbo_tests のバージョンを 2.1.0 に固定しています。2.1.1 で依存関係の問題でテスト失敗していたようです。

[d75dc39880] Stan Lo 2024-04-10 17:33:40 UTC

6a505d1b59cf326a8e004fc06e02f30222b17f3firb の組み込みコマンドの実装方針変更で debug.gem 統合用の各コマンドの execute メソッド内で個別に rstrip を呼んでたのを親クラスで呼ぶように統合しています。 https://github.com/ruby/irb/pull/918

[f389a211b5] Peter Zhu 2024-04-10 20:32:49 UTC

gc.c のインデントの修正のみ。

[38e3819be6] Stan Lo 2024-04-10 23:16:27 UTC

6a505d1b59cf326a8e004fc06e02f30222b17f3firb の組み込みコマンドの実装方針変更で debug.gem との連係のコマンド実行時に環境変数 RUBY_DEBUG_TEST_UI=terminal が設定されていた時に標準出力への表示を追加しています。ちょっとよくわからないですが multi Thread 対応の関係で出力するタイミングが取れないテスト用のメッセージをここで出すようにしているみたいです。 https://github.com/ruby/irb/pull/919

[39be11a17a] yui-knk 2024-04-10 01:28:51 UTC

parse.y のかっこのないメソッド呼び出しの parse 時の ripper 用のコードで引数の指定を間違えていたため異常終了する可能性があったのを修正しています。

parse.y の AREF() マクロの定義を削除しています。

[87ad5ca3ca] yui-knk 2024-04-10 09:30:20 UTC

Universal Parser のための構造体 rb_parser_config_t のメンバー qundef を削除しています。 39be11a17a221387b7eedd455114d6e87088ac60 の修正により未使用になったようです。

[5d9fd674c9] Koichi Sasada 2024-04-10 05:57:14 UTC

inline 関数 rb_gc_force_recycle() を空の関数として復活させて、RBIMPL_ATTR_DEPRECATED() を使って deprecated 警告を出すようにしています。

[207788466e] Nobuyoshi Nakada 2024-04-10 13:44:33 UTC

RubyVM::AbstractSyntaxTree.parse がブロックパラメーターのうち ";" で区切られた block local variables に対して警告を出力してしまっていたのを修正しています。 [ruby-core:117477] [Bug #20417]

[e9fd34750f] Vivek Gupta 2024-03-26 07:35:02 UTC

NEWS の英文法の修正。

[501a32c630] yui-knk 2024-04-11 03:02:11 UTC

universal_parser.c の重複していた st_init_table_with_size マクロ定義を削除しています。

[ed303cd56c] Takashi Kokubun 2024-04-11 06:53:53 UTC

YJIT の Rust 実装のコメント内の typo 修正。

[1b830740ba] Jean Boussier 2024-04-10 08:50:18 UTC

ruby_parser.c の rb_str_new_parser_string() という関数で文字列オブジェクトを作る時に rb_enc_str_new() で新規オブジェクトを作るのではなく rb_enc_interned_str() で最初から fstring を返すようにして、作ったオブジェクトを呼び元ですぐ rb_fstring() に渡していたのをやめています。freeze されてない文字列が必要だった場合のためにかわりに rb_str_new_mutable_parser_string() という関数を追加しています。不要な中間オブジェクトの確保を減らすためと思われます。

[e7f8db9079] Nobuyoshi Nakada 2024-04-08 03:36:06 UTC

拡張ライブラリ pty で端末名を得るのにバッファを引数で指定する ptsname_r(3) というライブラリ関数が使えたら ptsname(3) のかわりに利用するようにし、存在しなければ代替実装を定義してこれを使うようにしています。

[b2f8de3d9d] Naoto Ono 2024-04-08 04:12:42 UTC

GitHub Actions の Ubuntu 環境の workflow で os の指定のデフォルト値に ubuntu-22.04 の指定を追加しています。