ruby-trunk-changes 2024-04-18

今日は主に YJIT の最適化や標準添付ライブラリ reline, irb の更新、ipaddr の IPAddr#cidr メソッド追加などがありました。

[2470565993] Matt Valentine-House 2024-04-17 11:51:27 UTC

gc.c の gc_rest() という関数で 1度しか参照されないローカル変数を廃止して直接代入元を参照するようにしています。なんか最適化されやすいとかあるのかな。

[209e2f277e] Peter Zhu 2024-04-16 18:06:36 UTC

gc.c の gc_is_moveable_obj() で即値である T_NIL 型オブジェクトというか VALUE の値を受付けないようにしています。

[8c8068c06f] Kevin Newton 2024-04-17 14:02:05 UTC

common.mk の prism の依存関係から f72436f8355dd19298b3f7d25d6c23cb75b3a02a で削除したヘッダのぶんを削除しています。

[15b659ca93] tomoya ishida 2024-04-17 16:12:14 UTC

標準添付ライブラリ reline の複数行編集まわりの処理のための分岐を Reline::LineEditor 内に取り込むリファクタリングhttps://github.com/ruby/reline/pull/653

[ee6e591b6a] Peter Zhu 2024-04-16 20:08:27 UTC

object_id の通し番号を管理する rb_objspace_t::next_object_id メンバーの型を VALUE から unsigned long long に変更して各所で Integer との変換をしていたのをやめています。 最低でもおよそ 10**17 もあるからオーバーフローしないやろ、とのこと。

[51485e63fc] Kevin Newton 2024-04-17 15:42:52 UTC

common.mk に lib/prism/reflection.rb のためのターゲットを追加しています。

[814dedcee2] Peter Zhu 2024-04-17 15:26:16 UTC

gc.c から既に未使用になってた sighandler_t マクロの定義を削除しています。

[98c84ef42c] Mike Dalessio 2024-04-15 17:17:54 UTC

bundler の Gemfile.lock に記述する platform から local platform というのは除くようにしています。bundle を実行する環境の arch が追加されちゃうのがなくなるのかな?

[ca764062b0] tomoya ishida 2024-04-17 18:36:25 UTC

標準添付ライブラリ irbIRB::Command::Base から一部のメソッドを別の IRB::Command::RubyArgsExtractor というモジュールに分離して利用する組み込みコマンド実装のクラスで include するようにリファクタリングしています。 https://github.com/ruby/irb/pull/922

[4cc58ea0b8] Takashi Kokubun 2024-04-17 19:00:03 UTC

YJIT のローカル変数を共有するためにコードブロック(YJIT の生成する命令のほうの Block のことだと思われる)を共通化するような最適化をしているようです。 39b13e581835d29f03da08c5df1a6f5d8d5a7957 はこのための準備だったのかな。 https://github.com/ruby/ruby/pull/10487

[3a4035a790] Matt Valentine-House 2024-04-17 12:30:39 UTC

gc.c に rb_objspace_t::rgengc.need_major_gc へのアクセスのショートカットをするマクロ gc_needs_major_flags というのを追加しています。

[8b81301536] Alan Wu 2024-04-17 21:48:38 UTC

YJIT の arm64 アーキテクチャ向けに生成するの機械語の細かな最適化を行なっているようです。

[0727d32b56] Matt Valentine-House 2024-04-17 21:05:52 UTC

gc.c の gc_enter() で RGenGC のデバッグ用ビルド時の gc_verify_internal_consistency() の呼び出しの条件に dont_gc フラグが立ってないことを追加しています。finalizer の処理中に一時的に GC を無効にしているために GC 無効状態でこの関数が呼ばれるパスがありえたとのこと。

[41456eb005] Kazuhiro NISHIYAMA 2024-04-17 23:09:55 UTC

NEWS のチケットの参照のための footnote の生成のための tool/update-NEWS-refs.rb で bugs.ruby-lang.org のチケットの種別の Misc にも対応するようにしています。

[9e0c6311e1] Kazuhiro NISHIYAMA 2024-04-17 23:10:34 UTC

NEWS のチケット参照のための footnote の追加と、チケット参照のマークアップを修正しています。

[ac62c7379d] Hiroshi SHIBATA 2024-04-18 00:41:32 UTC

.gitignore に d186eb36a4abbbefa026ea5630a1b59bb668ef0f および 51485e63fc72fd8bbecb3f5b3a794361efd94f28 で自動生成されるようになった lib/prism/reflection.rb を追加しています。

[07771c7657] Takashi Kokubun 2024-04-18 00:54:08 UTC

GitHub Actions の YJIT を有効にした Ubuntu 環境の workflow でテスト全体のタイムアウトを 60分から 90分に伸ばしています。

[6ac8f6a10e] Ben Fritsch 2020-04-03 14:48:15 UTC

標準添付ライブラリ ipaddr に x.x.x.x/y (IPv4 の場合)のような mask 範囲つきの表示を返す IPAddr#cidr メソッドを新規追加しています。

[88a88b56c7] Nobuyoshi Nakada 2024-04-15 05:24:19 UTC

標準添付ライブラリ optparse の gemspec ファイルの spec.files の指定に .document ファイル群を含めるようにしています。コミットログに [DOC] がついてますがこの変更自体はドキュメントの変更ではないですね。

[0f1ef19fcd] Nobuyoshi Nakada 2024-04-15 05:25:48 UTC

88a88b56c7094bca3db42f01d672622527dcad14 の optparse.gemspec の変更に余計なクオート記号が含まれてしまっていたのを修正。

[a3b7a7bc21] Kenichi Kamiya 2024-04-17 04:10:48 UTC

標準添付ライブラリ reline の未使用のローカル変数の削除。 https://github.com/ruby/reline/pull/684

[bc652d7568] David Rodriguez 2024-04-05 15:33:30 UTC

コミットログをみると bundler の source が rubygems.org 以外の時に user, password を URL に埋め込んだものを Gemfile.lock に書いてしまわないようにするための変更が主体のようです。しかし bundler の man ページの更新が混じってしまっているようです。

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

bundled gems のテストのための tool/bundler/dev_gems.rb の turbo_tests の依存バージョンを 2.2.0 に更新しています。

[b3c59370ca] "dependabot[bot]" 2024-04-18 02:50:24 UTC

GitHub Actions の workflows で利用している github/codeql-action アクションのバージョンを更新しています。

[3a7846b1aa] Jean Boussier 2024-02-19 12:35:48 UTC

Encoding の変換や暗黙の変換のエラー時に ASCII-8BIT という名前だとよくわからないとのことで特別に "BINARY (ASCII-8BIT)" という表示をするようにしています。ASCII-8BIT を BINARY にしたいっていう要望根強いものがあるけどなぜそこまで……という気はしますが例外メッセージの表示だけ変更ということで手を打ったようです。 [ruby-core:107514] [Feature #18576]

[2e978c2cb3] Lorenzo Zabot 2024-04-18 10:33:19 UTC

標準添付ライブラリ irb のプロンプト表示で使える指示子についての rdoc 用コメントの %NNi と %NNn の説明をより詳細にしています。 https://github.com/ruby/irb/pull/926

[57a262e325] tomoya ishida 2024-04-18 11:48:10 UTC

irb の出力の色付けのテストで TAB (\t)が空白 2つ? に escape されるケースのための対応を追加しています。 https://github.com/ruby/irb/pull/924

ruby-trunk-changes 2024-04-17

今日は主に make all で docs の生成をしないようにするビルドプロセスの変更や Thread.each_caller_location の引数追加、Fiber#raise の仕様変更などがありました。

[8e341d81c9] Mari Imaizumi 2024-04-16 12:42:53 UTC

標準添付ライブラリ reline のバージョンを 0.5.2 に更新しています。 https://github.com/ruby/reline/pull/682

[e8f3ea3f87] git 2024-04-16 12:44:04 UTC

NEWS の default gems のバージョンリストの reline のバージョンを更新しています。

[39b13e5818] Takashi Kokubun 2024-04-16 14:41:21 UTC

YJIT の send 命令のコンパイル時に send 系関数の呼び出しが成功した後に次の VM 命令のコンパイル結果への明示的な jump 命令を生成するようにしているみたいです。 pull request をみるとローカル変数の共有についての最適化の下準備っぽいです。 https://github.com/ruby/ruby/pull/10539

[7380e3d30f] Jean Boussier 2024-04-16 12:23:45 UTC

オブジェクトを freeze する RB_OBJ_FREEZE_RAW() の実装を rb_obj_freeze_inline() に委譲するようにして RB_OBJ_FREEZE_RAW() でやっていた Chilled String 用の対応を rb_obj_freeze_inline() に移動しています。 rb_obj_freeze_inline() で行なっていた Object Shapes のための shape の再設定が必要だったのでその不具合修正も含めて同じ処理を使いまわすようにしたようです。

[f06670c5a2] Jean Boussier 2024-04-16 13:30:00 UTC

RB_OBJ_FREEZE_RAW() およびその wrapper macro の OBJ_FREEZE_RAW() の利用している箇所をそれぞれ RB_OBJ_FREEZE()/OBJ_FREEZE() を利用するように変更しています。 Object Shapes の対応のための処理が _RAW 版では抜けているので潜在的な不具合がありそうなので予防的修正をしているそうです。

[e5df8897fe] Peter Zhu 2024-04-16 15:16:19 UTC

gc.c の gc_sweep_page() で GET_THREAD() が NULL かどうかチェックして finalizer の登録処理を読んでたのを分岐を消しています。

[d6debba817] Peter Zhu 2024-04-16 17:25:23 UTC

gc.c の gc_is_moveable_obj() でここに渡される T_SYMBOL 型のオブジェクトは全て dynamic symbol のはずなので DYNAMIC_SYM_P() でのチェックは冗長ということで削除しています。

[75154dec73] Jean byroot Boussier 2024-04-17 01:29:09 UTC

拡張ライブラリ stringio の StringIO#read に読み込み先のバッファを引数で渡した場合にその文字列の Encoding が ASCII-8BIT に変更されてしまうという不具合? を修正しています。しかしこれは不具合なのかな? https://github.com/ruby/stringio/pull/95 [ruby-core:117478] [Bug #20418]

[0b630d6441] "dependabot[bot]" 2024-04-17 02:08:14 UTC

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

[f9f3018001] Koichi Sasada 2024-04-17 07:30:47 UTC

RubyVM::InstructionSequence#to_a で 9180e33ca3a5886fec3f9e0a2f48072b55914e65 でブロックを使わないメソッドへのブロック渡しの警告のために導入したメソッドの use_block フラグを結果に含めるようにしています。

[d31eda8eb6] Jean Boussier 2024-04-16 06:29:25 UTC

NEWS に d019b3baec4485909e6727db2507f943e78f38ec のYJIT の最適化が行なわれるいくつかの組み込みメソッドの再定義に対して performance カテゴリの警告を出力するようにした変更について追記しています。 [ruby-core:117523] [Feature #20429]

[eac3dee9cd] Jean Boussier 2024-04-17 07:59:50 UTC

ここ数日デバッグしていた String#@- のテストで "bar" という文字列がどこか別のところで既に使われているために失敗することがあった? みたいでもっとユニークな文字列をテストに使うように変更しています。

[7bc66a366d] Koichi Sasada 2024-04-17 08:40:20 UTC

f9f301800199e7b5b9a6e92cf726cd0214d417a4 で追加した RubyVM::InstructionSequence#to_a のテストを prism 利用時にはまだ ISeq がフラグに対応していないので? skip するようにしています。

[09638741ba] Nobuyoshi Nakada 2024-04-17 07:03:05 UTC

ブロックを受け取る Thread.each_caller_location メソッドに Kernel#caller_locations などと同様に取得するフレームの範囲を指示する引数を受付けるようにしています。 [ruby-core:117147] [Feature #20335]

[55b68d6cdc] Nobuyoshi Nakada 2024-04-17 10:16:00 UTC

09638741ba4d9547a0e48af8c767744fb1d7f68d の Thread.each_caller_location の変更で意図せず rubyspec の変更が入ってしまっていた部分を revert しています。

[e7493df7ac] Jean Boussier 2024-04-17 09:46:01 UTC

ブロックを呼び出さないメソッドにブロックを渡して呼び出した時の警告メッセージの英文を修正しています。

[cc37c89c2f] Hiroshi SHIBATA 2024-03-19 06:03:11 UTC

make all の依存関係から docs を削除して通常の make 時に docs の生成を抑制するようにしています。make install 時には生成される模様。 [ruby-core:117225] [Feature #20347]

[945a0334c7] Hiroshi SHIBATA 2024-04-17 10:13:51 UTC

cc37c89c2f4253a6f39a36ad610d0ba89c4257e8 で make 時には docs を生成せず make install 時にするようにしたので doc/contributing/building_ruby.md でインストール時のステップとして make と make install を分離するようにしています。

[6ade36c06b] Samuel Williams 2024-04-17 11:08:47 UTC

Fiber#raise が Fiber#resume の呼び元の Fiber にも例外を伝播させるようにしているようです。ふーむ? それでいいのかなと思ったけどチケットもあって Matz の approval を得ているのでそういうもののようです。 https://github.com/ruby/ruby/pull/10482 [ruby-core:117458] [Bug #20414]

[e9d7478ded] Koichi Sasada 2024-04-17 10:46:48 UTC

ブロックを使わないメソッドへのブロックつき呼び出しの警告について、同じ呼び出し元で場合によってブロックの呼び出しの有無が異なるようなメソッドの呼び出し時に実際にはブロックを呼ばないバージョンのメソッドにブロックを渡しても警告されないようにチェックの条件を緩める変更をしています。初回しか警告しないようにしているので一貫性がなくなるからかな?

ruby-trunk-changes 2024-04-16

今日は主に GC の実装を環境変数で指定した共有ライブラリで上書きできるという新機能の追加などがありました。

[9b1e97b211] HASUMI Hitoshi 2024-03-28 01:26:42 UTC

struct parser_params の debug_lines や ISeq から VALUE の値を削るための変更のようです。

[07ff4aa19b] Jean Boussier 2024-04-15 11:44:48 UTC

bb1c3418d0fd3235c678ad68f7b45d32f8183a3f で修正していた String#@- のテストで assert のメッセージにデバッグ用に ObjectSpace.dump によるダンブを追加しています。

[43f4da3ebf] tomoya ishida 2024-04-15 13:15:52 UTC

標準添付ライブラリ reline の vi mode でのカーソル移動の不具合修正のようです。 https://github.com/ruby/reline/pull/679

[0a4e3f23e6] Mari Imaizumi 2024-04-15 13:31:33 UTC

標準添付ライブラリ reline の emacs モードでの未実装の key binding の削除。 https://github.com/ruby/reline/pull/680

[2eafed0f3b] Alan Wu 2024-04-15 15:59:45 UTC

YJIT の arm64 アーキテクチャ向けの命令生成で VM の最適化命令 opt_and, opt_or などで不要なレジスタ利用を抑制する最適化。 https://github.com/ruby/ruby/pull/10509

[d019b3baec] Jean Boussier 2024-04-15 11:03:26 UTC

YJIT による最適化が行なわれているようないくつかの組み込みメソッドは再定義が行なわれているのを検出したら performance カテゴリの警告を出力するようにしています。

[66bfcba587] Nobuyoshi Nakada 2024-04-15 15:46:25 UTC

configure で nm コマンドが --no-llvm-bc オプションを受付けるかチェックするためにコマンド実行する時に標準エラー出力もチェック対象にするようにしています。

[733d50f0a5] Peter Zhu 2024-04-10 19:56:43 UTC

darray.h から internal/gc.h の #include を削除していくつかメモリ管理用の関数を xcalloc()/xfree()/xrealloc() で代用するようにしています。

[1984f9aedc] Gannon McGibbon 2024-04-15 17:55:14 UTC

Kernel#autoload? の rdoc 用コメントに呼び元の cref の継承関係に影響されることを明記しています。

[f86fb1eda2] Aaron Patterson 2024-04-15 18:01:01 UTC

benchmark/ のオブジェクト生成のベンチマークにいろんな引数の initialize を定義したクラスのインスタンス生成のベンチマークを追加しています。

[a2ea4ec30c] Matt Valentine-House 2024-04-02 10:28:52 UTC

configure に --with-shared-gc というオプションを追加しています。CRuby 本体の GC の実装を共有ライブラリによって再定義できるようにする機構のためのフラグみたいです。このあとその実装が入るみたいです。 [ruby-core:117263] [Feature #20351]

[065710c0f5] Matt Valentine-House 2024-04-02 12:52:50 UTC

a2ea4ec30c409ebe8ae7952f092e0bd8c1912a17 で configure によるマクロ定義だけ追加していた GC の実装を共有ライブラリで上書きする実装の追加をしているようです。 rb_objspace_alloc() で ruby_external_gc_init() という関数を呼び出して直接環境変数 RUBY_GC_LIBRARY_PATH で指定された共有ライブラリを dlopen(3) で開いて Init_GC() という関数を差し替えるだけで、これだけでいいのかな。まああとはその先の実装が頑張るということなんでしょうけど内容に対してちょっと肩すかしという感じですね。あとこれほどの変更なら NEWS への追記は必要そう。あとチケットへの参照も欲しいところ。 [ruby-core:117263] [Feature #20351]

[f5d89267c4] Matt Valentine-House 2024-04-04 18:48:41 UTC

GitHub Actions の Ubuntu 環境の workflow に --with-shared-gc つきでビルドしてテストするジョブを追加しています。 [ruby-core:117263] [Feature #20351]

[ebaa87f626] yui-knk 2024-04-15 12:26:38 UTC

Universal Parser 用の構造体 rb_parser_config_t の未使用になった関数ポインタのメンバー ary_modify、default_rs、enc_associate_index、obj_write、gc_mark_and_move などを削除しています。

[0118f5425e] "dependabot[bot]" 2024-04-15 15:24:03 UTC

rubygems の Rust 製拡張ライブラリを含む gem のビルドのためのプロジェクトで rb-sys パッケージのバージョンを更新しています。

[fc8099aea9] "dependabot[bot]" 2024-04-15 15:39:29 UTC

rubygems の Rust 製拡張ライブラリを含む gem のビルドのためのプロジェクトで rb-sys パッケージのバージョンを更新しています。

[4fcf007e85] Kouhei Yanagita 2024-04-12 06:18:10 UTC

NEWS に Range#size が #each が TypeError を返すような開始/終了の要素の時に TypeError を返すようにした変更について追記しています。 [Misc #18984]

[c49742739e] "dependabot[bot]" 2024-04-16 02:21:39 UTC

GitHub Actions の workflows で利用している github/codeql-action アクションのバージョンを更新しています。

[f8f542bd9b] Peter Zhu 2024-02-22 20:35:59 UTC

拡張ライブラリ pathname の extconf.rb で rb_file_s_birthtime() という C API の存在チェックをしていたのがもうサポート対象のバージョンでは全て存在するのでチェックをやめています。

[53a8ad151b] Nobuyoshi Nakada 2024-04-16 06:09:56 UTC

defs/gmake.mk で make commit 時の事前処理の依存関係の名前の ":" をエスケープするようにしています。

[29110fe18d] Nobuyoshi Nakada 2024-04-16 07:13:19 UTC

Enumerator.product が返す Enumerator が引数の一部の Enumerator が size=0 であるため 0 であることが自明な場合はすぐに 0 を返すようにしています。 [ruby-core:117056] [Bug #20325]

[54d472d91f] Nobuyoshi Nakada 2021-01-24 09:17:28 UTC

rubygems のテストの setup メソッドで一時ディレクトリを設定する際に終端のディレクトリの名前を環境変数 GEM_TEST_TMPDIR の指定があったらその名前を利用するようにしています。よくわかりませんが symbolic link がらみでテスト失敗するケースがあったとのこと。

[639449fe8d] Mari Imaizumi 2024-04-16 11:58:46 UTC

標準添付ライブラリ reline の Reline::LineEditor にキーバインディングのモードを変更するためのメソッド #emacs_editing_mode と #vi_editing_mode を追加しています。 https://github.com/ruby/reline/pull/681

ruby-trunk-changes 2024-04-15

今日は主にブロックを呼び出さない(yield しない)メソッドをブロックを渡して呼び出すと警告を出力するようにする変更などがありました。

[8d5d6ec6e7] Nobuyoshi Nakada 2024-04-14 11:35:34 UTC

3368913be3838d152e42bde02a94219102b61f71 の拡張ライブラリ pty の extconf.rb の変更で if 文の条件部に or を書き忘れてた不具合を修正しています。

[339128b190] Mari Imaizumi 2024-04-14 17:33:48 UTC

標準添付ライブラリ reline の vi mode, emacs mode のキーバインディングの不要なもの(重複しているもの)を削除しているようです。 https://github.com/ruby/reline/pull/678

[515e52a0b1] yui-knk 2024-04-07 01:59:51 UTC

拡張ライブラリ ripper でも Hash リテラルのキーに重複したリテラルが使われていた時の警告をイベントフックとして検出できるようにしています。parse.y 内では警告の出力に専用のマクロを使うようにしないと ripper でサポートされないみたいですね。

[9180e33ca3] Koichi Sasada 2024-03-26 22:29:38 UTC

ブロックをまったく利用しないメソッドにブロックを渡して呼び出した時に初回のみ警告を出力するようにしています。また ruby 実装のメソッドでブロック利用の有無を知らせるために Primitive.attr! に :use_block という引数の対応を追加しています。ISeq へのコンパイル時にブロックの有無は判定しているので、実際に呼ぶかどうかはともかくブロックを yield するような命令が存在したらブロック受付けているという判定になるようです。def m(...); n(...); end みたいなのはどこで use_block フラグを立ててるんだろう? [ruby-core:91214] [Feature #15554]

[fc363944b4] Nobuyoshi Nakada 2024-04-15 05:05:43 UTC

標準添付ライブラリ optparse のバージョンを 0.5.0 に更新しています。

[b6a10a1518] git 2024-04-15 05:07:51 UTC

NEWS の default gems のバージョンリストに optparse の項目を追加しています。

[145cced9bc] Koichi Sasada 2024-04-15 05:22:40 UTC

9180e33ca3a5886fec3f9e0a2f48072b55914e65 の使われないブロック渡しについての修正でかっこありの super() で誤って警告が出てたので修正しています。 [ruby-core:91214] [Feature #15554]

[9a57b04703] Koichi Sasada 2024-04-15 08:06:03 UTC

9180e33ca3a5886fec3f9e0a2f48072b55914e65 の修正の 145cced9bcb6a52fccfa0c669121bd07d3b3ff74 のさらに再修正。 super() や ZSUPER そのものにブロックを渡してるのを警告を抑制してたのはやっぱり勘違いだったので警告するようにしています。 [ruby-core:91214] [Feature #15554]

[bb1c3418d0] Jean Boussier 2024-04-15 07:04:51 UTC

String#@- メソッドのテストが 1b830740ba8371c4bcfdfc6eb2cb7e0ae81a84e0 の影響で失敗することがあったそうで、テストのほうを修正して String#@- をメソッドチェインするようにしています。これはなにが変わるんだろう。

ruby-trunk-changes 2024-04-14

今日は irb のコマンドを独自実装して追加できるようにする変更などがありました。

[c479492a67] Zack Deveau 2024-01-19 20:01:46 UTC

Array#sort! をブロックつきで呼び出してそのブロックで元の Array を変更した時に capacity の変更が必要なケースの対応が漏れていたのを修正しています。

[5970386a2e] yui-knk 2024-04-13 04:22:18 UTC

parse.y の struct parser_params::delayed::token の型を VALUE から rb_parser_string_t* に変更して VALUE 依存を減らしています。

[924b928e35] yui-knk 2024-04-13 14:06:03 UTC

Universal Parser 用構造体 rb_parser_config_t の関数ポインタのメンバー str_buf_new、str_buf_cat、enc_str_buf_cat、str_buf_append などを削除しています。

[38b8bdb8ea] yui-knk 2024-04-14 00:22:10 UTC

拡張ライブラリ ripper の未使用の関数の prototype 宣言 ripper_get_value() と ripper_get_id() を削除しています。

[76b10f2ee1] "Michael J. Giarlo" 2024-04-14 09:13:06 UTC

標準添付ライブラリ reline の補完時の選択カーソル移動の修正のようです。 https://github.com/ruby/reline/pull/675 https://github.com/ruby/reline/pull/677

[04ba96e619] Stan Lo 2024-04-14 11:01:38 UTC

irb の組み込みコマンドの実装を IRB::Command._register_with_aliases でクラスを登録することで追加できるような実装にしています。これでコマンドを追加する公式な API が提供されて自前のコマンドを定義できるようになったようです。なるほどこれが一連の変更の目的だったようですね。 https://github.com/ruby/irb/pull/886

[3368913be3] Nobuyoshi Nakada 2024-04-14 10:43:21 UTC

拡張ライブラリ pty のビルドで ptsname_r(3) の存在チェックをより詳しくしています。

ruby-trunk-changes 2024-04-13

今日は主に prism の更新と bundler の bundle add のオプション追加がありました。

[c4b5f3f142] David Marshall 2024-04-04 17:33:03 UTC

bundler の bundle add サブコマンドにワイルドカードの展開による gemspec の探索を指定する --glob オプションを追加しています。

[a64a42ae38] David Marshall 2024-04-05 13:53:13 UTC

c4b5f3f1422b1c83bc4c7e03d32218881c0b6945 で追加した bundler の bundle add サブコマンドのオプション --glob のヘルプメッセージを追加しています。またテストでワイルドカードのシェルによる展開を抑制するためシングルクオートを追加しています。

[5f2bcbb6d4] Kevin Newton 2024-04-12 14:29:39 UTC

コマンドラインオプションのテストの prism 向けオプションのテストで警告抑制。

[edec690e03] Peter Zhu 2024-04-11 18:30:30 UTC

Object#_object_id の即値オブジェクトの時の値をの範囲を変更して実装をシンプルにしています。

[9bab179ca3] Peter Zhu 2024-04-11 18:35:19 UTC

edec690e0331b5aa851b3a7c9872b2bf92f3cb21 の続きで gc.c の rb_find_object_id() で flonum とそれ以外の即値オブジェクトで分岐後の処理が同じなので分岐をシンプルにしています。

ruby-trunk-changes 2024-04-12

今日は主に def m(...) のように委譲専用の引数表記のメソッド内で無名ブロック引数を使ったメソッド呼び出しを SyntaxError にする変更などがありました。

[9183101aa7] Jean Boussier 2024-04-11 10:24:05 UTC

prism の更新。バッククオートによるコマンド実行のための文字列は freeze した状態で ISeq に埋め込むようにしています。"`" メソッドを再定義した時にスクリプトに書かれた文字列を破壊的変更できてしまうため。

[c2622b5253] Alan Wu 2024-04-11 14:37:56 UTC

YJIT の x86_64 アーキテクチャで論理演算のための命令の生成で両オペランドレジスタの時の最適化を行い、VM 命令の opt_and, opt_or などの最適化命令でこれが利用されるように中間表現の命令を少し変更しているようです。 https://github.com/ruby/ruby/pull/10498

[2df4638538] Nobuyoshi Nakada 2024-04-11 12:47:44 UTC

template/Makefile.in で拡張ライブラリの clean 処理のターゲット .bundle/*clean.sub たちの依存関係から ext/*.mk を消しています。

[ca81f5a5de] Nobuyoshi Nakada 2024-04-11 12:53:58 UTC

template/Makefile.in にターゲット .bundle/realclean を追加して bundled gems のインストール時の lock ファイルを削除させるようにしています。

[f2369de2a4] Peter Zhu 2024-04-11 16:08:03 UTC

gc.c の冗長なキャストの削除。

[c5e661b1d7] Cody Cutrer 2024-04-11 16:21:01 UTC

よくわかりませんが bundler の plugin インストール時のディレクトリ探索のルールの修正をしているようです。

[e36988450e] Nobuyoshi Nakada 2024-04-12 07:07:49 UTC

メソッド定義に委譲専用の引数を受け取る def m(...) の記法を使ったメソッドの時にそのメソッド内で別のメソッドに無名ブロック引数(foo(&))でブロック引数のみ委譲する書きかたが許容されていたのを他の種類の無名引数と同様 SyntaxError にするようにしています。 [ruby-core:117496] [Bug #20423]

[69823b97b5] Nobuyoshi Nakada 2024-04-12 08:02:46 UTC

prism の更新。 e36988450e9e9ccccb41c72135f1e57790920668 の続きでエラーメッセージを変更しています。 [ruby-core:117496] [Bug #20423]

[91c457e091] Nobuyoshi Nakada 2024-02-28 08:46:39 UTC

.mailmap に svn 時代のアカウント名を弊機していたのを削っています。

[7b8b936f4a] Satoshi Tagomori 2024-04-12 09:31:22 UTC

class_search_class_ancestor() のコメントの typo? を修正しています。

[f1d9e895b9] Stan Lo 2024-04-12 12:00:58 UTC

6a505d1b59cf326a8e004fc06e02f30222b17f3firb の組み込みコマンドの実装方針変更で IRB::Context#evaluate の呼び元でやってたコマンドかどうかによる分岐を IRB::Context#evaluate 内に移動するリファクタリングhttps://github.com/ruby/irb/pull/920