ruby-trunk-changes 2022-01-15

今日は定数の代入文での評価順の変更(JIS 規格にあわせた修正)や Method/UnboundMethod の public?/private?/protected? などのメソッドの不具合修正、標準添付ライブラリ drb でリモートメソッドの戻り値を次のメソッド呼び出しまでのあいだは回収されないように参照を保持しておく変更などがありました。

[da0f67c038] Benoit Daloze 2022-01-14 13:17:59 UTC

rubygems のテストで定数 RubyVM::MJIT の存在チェックを defined? でしている条件が冗長だったので整理しています。

[810516ca31] David Rodríguez 2019-10-02 21:46:40 UTC

rubygems の rdoc 用コメントの英文法修正。

[3006451f65] David Rodríguez 2019-10-21 17:10:49 UTC

rubygems のテストでヘルパーメソッドを private にしています。

[044b0ae8e0] David Rodríguez 2019-10-23 15:45:31 UTC

rubygems の RbConfig::CONFIG['ruby_install_name'] を参照するところをメソッドに切り出すリファクタリング

[7d42b442bb] David Rodríguez 2019-10-21 17:26:51 UTC

rubygems の gem install 時に ruby が configure に --enable-load-relative を指定してビルドされてた時の対応を追加しています。

[d5d958a9e6] git 2022-01-14 15:00:28 UTC

version.h の日付更新

[c54eac6613] Nobuyoshi Nakada 2022-01-14 06:48:27 UTC

GitHub Actions の MinGW 環境向けの workflow で gcc や make, bison などのビルドに利用するツールのバージョン表示を追加しています。

[f75e871e4f] Nobuyoshi Nakada 2022-01-14 06:50:33 UTC

GitHub Actions の MinGW 環境向け workflow のアクションで MSP-Greg/ruby-setup-ruby の win-ucrt-1 というブランチを指定していたのが変更により openssl のテストが失敗する原因になってたみたいなので一時的に? コミットハッシュを直接指定するようにしています。

[82539a3d13] Jean Boussier 2022-01-14 15:22:57 UTC

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

[64e19ad7e9] Masatoshi SEKI 2022-01-14 15:58:21 UTC

標準添付ライブラリ drb の DRb::DRbServer#main_loop でループ内の InvokeMethod をひとつ前のぶんまで保持し続けるようにしています。 53a4e101465a4d2ae38ea3bfd3cb7dd3c9f12f61 で修正しようとした drb のテストでリモートのメソッドの戻り値に対してさらにメソッドを呼ぼうとした時に GC で回収されてたというのを対策するためだと思います。最後のリモートメソッド呼び出しの結果は次のリクエストが同じ DRbServer にくるまでは回収されなくなるので、巨大なオブジェクトツリーの参照が含まれてたりするとそれが解放されなくて、ってなりそうですが DRbServer をプロセス内でどんどん作って放置するようなことはあんまりないような気がするのでそんなに問題じゃないかな?

[3cc82ff93c] Peter Zhu 2022-01-14 15:33:42 UTC

dln.c の macOS の 10.3 以前のサポートのためのマクロ定義を削除しています。

[ca3d405242] Jeremy Evans 2021-04-30 23:01:27 UTC

名前空間の指定つきの定数への代入文で評価順が右辺→名前空間の式の順序になっていた(foo::C = bar が bar -> foo の順になってた)のが JIS の規格と違っているということで修正しています。結構大掛かりな修正ですね。 [ruby-core:93184] [Bug #15928]

[6b7eff9086] Peter Zhu 2022-01-14 18:59:38 UTC

Variable Width Allocation が有効な時に rb_serial_t を別途メモリ確保して構造体 struct RClass にポインタを持たせるようにしています。 32bit 環境では struct rb_classext_t に埋め込まれたぶんがメモリアライメントが取れてなくて Solaris などアライメントに厳しい環境でエラーになるようです。

[a93cc3e23b] Jeremy Evans 2021-12-27 22:41:43 UTC

Hash#shift がデフォルト値が与えられている Hash に対して呼ばれた時にデフォルト値を返していたのを nil を返すようにしています。 [ruby-core:98486] [Bug #16908]

[58dc8bf8f1] Jeremy Evans 2022-01-14 19:21:41 UTC

Method や UnboundMethod の public?/private?/protected? などのメソッドが継承先の子クラスで可視性のみ変更されてた時に正しい結果(上書きされた結果)を返していなかったのを修正しています。 [ruby-core:106828] [Bug #18435]

[49cc7709cb] MSP-Greg 2022-01-14 15:00:56 UTC

f75e871e4f7b004d5a7c73086e46a3ad6e0432a0GitHub Actions の MinGW 向け workflow の MSP-Greg/ruby-setup-ruby アクションの固定をしてたのを ruby/setup-ruby@v1 を利用するようにしています。

[8d378fd28b] manga_osyo 2021-02-25 08:20:50 UTC

doc/NEWS-2.7.0 に Enumerable::Lazy#with_index メソッドの追加について追記しています。 [Bug #7877]

[2dc365db79] Kazuhiro NISHIYAMA 2022-01-15 04:30:20 UTC

Module#const_added の追加についての rubyspec のバージョンによる分岐の間違いを修正しています。

[7c70151aed] loadkpi 2022-01-14 06:07:39 UTC

rubygems の gem update --system で rubygems 自身を更新する時に既に最新版がインストールされてた時に処理をスキップするようにしています

[d853a7886e] Nobuyoshi Nakada 2022-01-12 08:53:52 UTC

コマンドラインオプションで --enable などのオプションで jit とだけ指定した時にビルド時の条件によって mjit か yjit かを自動で決めてその別名として? 扱うようにしているようです。

[670f3e6cd7] David CARLIER 2022-01-15 05:25:35 UTC

拡張ライブラリ fcntl に FreeBSD に存在する定数に対応した Fcntl::F_DUP2FD と Fcntl::F_DUP2FD_CLOEXEC という定数を追加しています。

[c1bcfeec38] Nobuyoshi Nakada 2022-01-10 14:38:16 UTC

コマンドラインオプションの MJIT 用のオプションの処理を ruby.c から mjit.c に移動しています。

[f29d7745a2] git 2022-01-15 11:10:30 UTC

c1bcfeec38cdc04858ba607eb6f6aaa64dc731c9 で新規追加されたヘッダファイル internal/cmdlineopt.h のタブを空白に展開しています。