ruby-trunk-changes 2021-06-15

今日は主に標準添付ライブラリ ostruct の OpenStruct#delete_field にブロックを渡せるようにする変更などがありました。

[b513fc2fe7] Nobuyoshi Nakada 2021-06-14 12:15:12 UTC

050a89543952a2c9e7c9bc938f4fdb538f6c9278 で追加された blocking fiber のための Scheduler に必要なメソッドが定義されているかのチェックで発生させる例外のメッセージのメソッド名に余計な "!" がついてたのを削っています。たぶんメソッド名のつもりじゃなくて強調のためだったんでしょうけど、メソッド名にも ! がつけられるのでまぎらわしかったので。

[90cad6e147] 卜部昌平 2021-06-14 00:34:25 UTC

configure で Solaris 上では利用するコンパイラの候補として clang を除外するようにしています。 [ruby-core:104244] [Bug #17949]

[931ea7cfbe] jfrazx 2021-06-14 13:53:20 UTC

標準添付ライブラリ ostruct の OpenStruct#delete_field にブロックを渡すと削除対象のフィールドがない時に例外を発生させるかわりにブロックを呼び出すようにしています。 https://github.com/ruby/ruby/pull/1409

[70833fab7f] Nobuyoshi Nakada 2021-06-14 04:49:10 UTC

f0f9e77b65990001bd2acb42e1c6b673f6324425 で入れて 25921fe1d67e4bdd2370e1e9c26f1ed4533af73e で revert された load.c の require_internal() で GCC 11 での "might be clobbered by 'longjmp' or 'vfork'" 警告抑制のリトライ。path 変数の内容を別の変数に退避しておくようにしています。

[5dde13e5ce] Nobuyoshi Nakada 2021-06-14 14:30:31 UTC

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

[57eaa07ba6] Nobuyoshi Nakada 2021-06-14 15:02:15 UTC

blocking fiber のテストで Scheduler の close 漏れを修正しています。

[edbe0e224c] Nobuyoshi Nakada 2021-06-14 15:03:05 UTC

Thread のテストで子 Thread 内の例外が標準出力に出ないように Thread#report_on_exception = false を設定しておくようにしています。

[fc98602ecc] git 2021-06-14 15:04:05 UTC

version.h の日付更新

[52369fc545] Marc-Andre Lafortune 2021-06-14 14:07:51 UTC

70833fab7fc2e912f5a405157b3afa101b482c17 の OpenStruct#delete_field でブロックが渡されてるかどうかの判定に block_given? を使ってましたが、これをフィールド名として使えるように blocks_given! に alias を作っておいてこっちを使うようにしています。

[a09ddfc420] Marc-Andre Lafortune 2021-06-14 14:15:11 UTC

標準添付ライブラリ ostruct のテストで YAML.unsafe_load を利用していたのを YAML.safe_load にキーワード引数 permitted_classes を渡すように変更しています。

[2088a45798] "Eileen M. Uchitelle" 2021-06-15 00:34:57 UTC

inline cache 操作のための VM 命令 opt_setinlinecache の attr 指定のコメントで leaf=false の指定を追加しています。この命令内の処理に追加された ractor_shareable_p() が Ruby メソッドを呼び出す可能性があったので leaf でなくなってしまって VM スタックを壊す可能性があったみたいです。テストの再現スクリプトみるとかなり条件が複雑そうですが https://github.com/ruby/ruby/pull/4565 [ruby-core:103971] [Bug #17880]

[f0818982e9] Marc-Andre Lafortune 2021-06-14 17:15:23 UTC

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

[b32e6c168a] Nobuyoshi Nakada 2021-06-15 06:55:52 UTC

Queue#initialize で Queue.new の引数に Queue のなかみの初期値を渡した時に Array オブジェクトに変換する処理をリストの初期化前に移動しています。例外発生時になにか問題が起きるからかな。けど結局 rb_ary_concat() した時に例外発生する可能性はありそうだけど。