ruby-trunk-changes 2023-12-13

今日は WeakMap/WeakKeyMap の compaction 時の不具合修正、添字つき演算子つき代入メソッド+キーワード引数のメソッド呼び出しの不具合修正、標準添付ライブラリのバージョン更新などなどたくさんの変更がありました。

[d1c25605f6] Martin Emde 2023-12-11 23:31:15 UTC

bundler で Gemfile の ruby version の指定を .ruby-version ファイルから読ませる指定の時の .ruby-version ファイルを Gemfile と同じディレクトリのものを使うようにしています。

[33cf8f640b] Peter Zhu 2023-12-08 20:17:51 UTC

ObjectSpace::WeakMap の compaction 時の処理で struct weakmap::table メンバーが NULL の時の対応を追加しています。完全に初期化されていない状態で呼ばれる可能性があったのでその時に異常終了しないようにするため。

[185b7e92a3] Peter Zhu 2023-12-08 20:18:07 UTC

33cf8f640bab35c463186ef0856689c22559fbeb と同様に ObjectSpace::WeakKeyMap も compaction の処理時に table が NULL の場合を考慮するようにしています。

[f671c5d179] Martin Emde 2023-12-12 00:40:07 UTC

bundler の Bundler::RubyDsl#ruby というメソッドのちょっとしたリファクタリング

[2f1d6da8c4] Jeremy Evans 2023-12-12 15:34:53 UTC

obj[kw: 1] += 1 のように添字つき代入にさらに演算子つきの代入を組み合わせたメソッド呼び出しにキーワード引数や keyword rest 引数を組み合わせた時に異常終了したり例外発生させたりしていた不具合を修正。すごい特殊な呼び方だ。 [ruby-core:115653] [Bug #20051]

[67940b135c] David Rodríguez 2023-12-12 15:43:24 UTC

bundler のテストで使う gemfile での rake の依存バージョンを更新しています。

[06e2fbb826] Kouhei Yanagita 2023-11-22 09:12:23 UTC

TracePoint#enable を重複して呼ぶとイベントフックも重複して呼ばれるようになってた不具合(?)を修正しています。 [ruby-core:110669] [Bug #19114]

[d1cf793adc] Stan Lo 2023-12-12 18:46:03 UTC

irb の rdoc 用コメントの手直しで追加されたもののうち deprecated なものやまだ作成中のものについての部分を削除。 https://github.com/ruby/irb/pull/811

[fd7decbf04] Takashi Kokubun 2023-12-12 19:19:00 UTC

tool/sync_default_gems.rb で upstream からの同期の時に無視する一般的なファイルパターンに tool/ があったけど tool/bundler/ は例外として無視しないようにしています。

[0366c424e5] Takashi Kokubun 2023-12-12 19:45:47 UTC

GitHub Actions の Ubuntu 環境の workflow で configure に cppflags=-DUNIVERSAL_PARSER の指定を追加したビルドは別の workflow でカバーされていて冗長だったので削除しています。

[1572322e17] David Rodríguez 2023-12-12 19:49:25 UTC

bundler で古い rubygems の対応? で Gem::Requirement を再定義していたのを削っています。 https://github.com/ruby/ruby/pull/9206

[6e491cae5d] Takashi Kokubun 2023-12-12 21:01:09 UTC

GitHub Actions の workflows で TESTS=--repeat-count=2 を渡して make test-all するジョブを Ubuntu 環境から macOS 環境の workflow へ移動しています。 https://github.com/ruby/ruby/pull/9208

[d4bbee7475] Alan Wu 2023-12-12 22:10:14 UTC

YJIT のメソッド呼び出しの引数処理で VM スタック上の型チェックの不具合を修正。 https://github.com/ruby/ruby/pull/9212

[9f77eb1f5a] Alan Wu 2023-12-12 22:24:17 UTC

proc.c の未使用になっていたマクロ NO_CLOBBERED() や UPDATE_TYPED_REFERENCE()、UPDATE_REFERENCE() を削除。

[18a5b6b7e9] BurdetteLamar 2023-12-12 21:05:19 UTC

Complex#-@、Complex#+、Complex#- など四則演算系メソッドの rdoc 用コメントの手直し。

[2350c79462] Peter Zhu 2023-12-11 18:23:26 UTC

IO::Buffer オブジェクトの解放処理時に構造体のメモリ領域の解放に直接 free(3) を呼んでいたので xfree() を利用するよう修正しています。

[626daa73ec] KJ Tsanaktsidis 2023-12-11 03:52:47 UTC

新規追加された C API rb_postponed_job_register() や rb_postponed_job_trigger() の Doxygen 用コメントの修正。

[4eefab592a] KJ Tsanaktsidis 2023-12-11 04:00:43 UTC

同じく新規追加された C API rb_postponed_job_register() や rb_postponed_job_trigger() の実装の定数マクロやローカル変数名の改名。

[15d14e2f39] KJ Tsanaktsidis 2023-12-11 04:09:05 UTC

TracePoint の C API のテストのための拡張ライブラリのリファクタアリング。

[a8d2d93aff] KJ Tsanaktsidis 2023-12-11 04:22:42 UTC

新規追加された C API rb_postponed_job_register() や rb_postponed_job_trigger() のテストをさらに追加しています。

[a2994c300b] KJ Tsanaktsidis 2023-12-11 23:57:26 UTC

NEWS に新規追加された C API rb_postponed_job_register() や rb_postponed_job_trigger() への postponed job の仕様変更について追記しています。 [ruby-core:115684] [Feature #20057]

[8d1a203664] David Rodríguez 2023-01-29 20:28:11 UTC

bundler で require "rubygems/request" の呼び出しを必要になるまで遅延させるようにしています。

[7d5d2eef78] David Rodríguez 2023-11-10 18:39:48 UTC

bundler のテストのヘルバーで support/hax.rb というヘルバーのファイルを環境変数 BUNDLER_IGNORE_DEFAULT_GEM が設定されていたらまず最初に require させるように順番を制御しています。

[6cefad7704] David Rodríguez 2023-11-10 20:48:25 UTC

bundler のテストで bundle コマンド実行時のオプションに artifice: nil というのを 2箇所ほど追加しています。なんだろうこれ。

[ce924ce1fb] David Rodríguez 2023-01-29 20:24:11 UTC

rubygems の中に net-http と net-protocol を vendoring するようにしています。すごいな。しかし net-http とか比較的よく security fix の出る gem だけど大丈夫かな。

[90317472e8] David Rodríguez 2023-01-29 20:28:29 UTC

bundler でも rubygems に vendoring した net-http を(あれば)利用するようにしています。

[a7c9163b5d] David Rodríguez 2023-06-30 19:22:32 UTC

さらに rubygems に default gems の timeout も vendoring するようにしています。

[f188a41afe] David Rodríguez 2023-07-04 16:34:01 UTC

さらに bundler でも rubygems に vendoring した timeout を(あれば)利用するようにしています。

[20d99a2f5f] David Rodríguez 2023-07-04 16:49:04 UTC

さらに rubygems に default gems の resolv も vendoring するようにしています。

[5323935f57] David Rodríguez 2023-12-12 16:13:30 UTC

bundler のテストで timeout.gem のインストールが不要になったので依存関係から削除しています。

[844759ccdb] David Rodríguez 2023-12-12 16:13:47 UTC

bundler のテストに Gemfile に timeout が記述されている時に rubygems に vendoring されている timeout を読み込んでしまってないかのテストを追加しているみたいです。

[402fd96ddc] Vít Ondruch 2023-12-12 13:38:45 UTC

rubygems の gem install の --no-user-install オプションの挙動の修正みたいです。

[1fa5dd883e] Vít Ondruch 2023-12-12 13:37:30 UTC

402fd96ddc401cf35bced8d394c44df98d6fc466 で追加した rubygems のテストのチェックを追加しています。

[befbcfd90c] Vít Ondruch 2023-12-12 13:47:15 UTC

rubygems の --user-install オプションに関係する options の項目の取り得る値についてコメントを追加しています。

[5015481e53] Hiroshi SHIBATA 2023-12-13 02:28:02 UTC

rubygems に vendoring された net-http の lib/rubygems/net-http/LICENSE.txt ファイルを削除しています。

[866b6fcd69] Hiroshi SHIBATA 2023-12-13 02:51:59 UTC

rubyspc で rubygems が vendoring した net-http を利用するようになったために例外クラスが変化したのに対応するようにしています。

[6b3c9cebe9] David Rodríguez 2023-12-07 22:59:36 UTC

bundler の gemspec ファイルで spec.bindir を libexec から exec に変更しています。

[70428247c6] David Rodríguez 2023-12-11 11:41:58 UTC

bundler の未使用のメソッド削除。

[1a7aa5560f] David Rodríguez 2023-12-11 12:05:42 UTC

bundler の bundle info サブコマンドの実装の処理を Bundler::CLI::Common に一部移動するリファクタリング

[ac939d9ca3] David Rodríguez 2023-12-11 12:19:45 UTC

bundler の default gems が Gemfile に記述されていた時に標準添付ライブラリとしての default gems を利用しないようにしているようです。

[12c775c942] Hiroshi SHIBATA 2023-12-13 04:58:24 UTC

拡張ライブラリ etc のバージョンを 1.4.3 に更新しています。

[8a8fd32e13] git 2023-12-13 05:02:01 UTC

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

[5cabe1e9cc] Hiroshi SHIBATA 2023-12-13 05:05:21 UTC

拡張ライブラリ io/wait のバージョンを 0.3.1 に更新しています。

[02f0aa6137] git 2023-12-13 05:11:39 UTC

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

[06edde22f4] Hiroshi SHIBATA 2023-12-13 05:42:37 UTC

拡張ライブラリ io/nonblock のバージョンを 0.3.0 に更新しています。

[caef4e98cb] git 2023-12-13 05:43:52 UTC

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

[39023792db] Hiroshi SHIBATA 2023-12-13 05:55:10 UTC

拡張ライブラリ io/console のバージョンを 0.7.0 に更新しています。

[a66d083bbf] git 2023-12-13 05:59:13 UTC

NEWS の default gems のバージョンリストの io-console のバージョンも更新しています。

[5f5f8dbbb6] Hiroshi SHIBATA 2023-12-13 06:04:13 UTC

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

[f49097c842] git 2023-12-13 06:12:18 UTC

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

[20a09387d1] Takashi Kokubun 2023-12-13 07:24:07 UTC

GC.stat_heap のテストを RJIT が有効な時に skip しています。たまに失敗するとのこと。

[75f4a687ed] Nobuyoshi Nakada 2023-12-13 07:28:22 UTC

configure で --enable=rjit オプションの処理時に誤って YJIT_TARGET_OK 変数を参照していたのを RJIT_TARGET_OK に修正しています。 https://github.com/ruby/ruby/pull/8222

[e282d7b880] Takashi Kokubun 2023-12-13 08:05:11 UTC

コマンドラインオプション --jit が指定された時の処理が RJIT が有効化してビルドされていないと機能しなくなってたので YJIT のみ有効にしたビルドでも動くようにしています。

[a7ad9f3836] Hiroshi SHIBATA 2023-12-13 07:18:35 UTC

default gems の require に対する警告のための lib/bundled_gems.rb で caller_locations から require 元の gem を特定する時のバックトレースの取得数が不要に大きかったので修正しています。

[745ab3e4c7] tomoya ishida 2023-12-13 11:06:21 UTC

irb の組み込みコマンド measure にブロックを受け付けていたのをやめて警告を出力するようにしています。 https://github.com/ruby/irb/pull/813