ruby-trunk-changes 2021-11-11

今日は標準添付ライブラリ net/http の HEAD リクエストにも Accept-Encoding ヘッダを付けるようにする変更や rb_str_new_cstr() などの C の文字列を受け取る文字列関係の関数に NULL を受け取らないということを指示する attribute を追加していたのを revert する変更などがありました。

[8d5f38a8a4] Benoit Daloze 2021-11-10 18:50:38 UTC

Time の ruby 実装のための timev.rb で __builtin を使っていたところを Primitive を使うように変更しています。他の .rb フファイルでは Primitive を使っていたのでそれにあわせるため。

[98cc6d158b] git 2021-11-10 18:52:47 UTC

version.h の日付更新

[d5dd87d0db] Peter Zhu 2021-11-10 22:13:20 UTC

test/ruby/test_settracefunc.rb のテストメソッドの名前の typo 修正。

[51c67ee61a] Samuel Williams 2021-11-10 12:20:46 UTC

IO::Buffer 対応で変更した IO まわりの処理で nogvl_wait_for() で引数の rb_io_t の fd が -1 だった時のエラー処理を追加しています。

[414b5565f7] Nobuyoshi Nakada 2021-11-05 00:45:41 UTC

標準添付ライブラリ tmpdir の Dir.mktmpdir の rdoc 用コメントのサンプルで任意のブロックを表すところを "..." としていたのを適当な文にしています。 "..." に委譲用引数として文法上の意味ができちゃったからですかね。

[db316e627f] Burdette Lamar 2021-10-26 11:20:19 UTC

標準添付ライブラリ getlongopt のテスト test/test_getoptlong.rb を追加しています。おお、テストなかったんだ……。

[1370b0876f] 卜部昌平 2021-11-11 00:49:55 UTC

include/ruby/io/buffer.h の export する関数を囲む RUBY_SYMBOL_EXPORT_BEGIN/RUBY_SYMBOL_EXPORT_END を RBIMPL_SYMBOL_EXPORT_BEGIN()/RBIMPL_SYMBOL_EXPORT_END() に変更しています。 C++ で書かれた拡張ライブラリ対応のため。

[a4a6e5cd2e] 卜部昌平 2021-11-11 02:18:44 UTC

include/ruby/internal/encoding/encoding.h の Doxygen 用のコメントで定数名をまちがっていたところを修正。

[4b3830127f] 卜部昌平 2021-11-11 02:29:45 UTC

include/ruby/internal/encoding/encoding.h の RB_ENCODING_SET_INLINED() の Doxygen 用コメントの引数名の間違いを修正。

[ad84c5d1b0] 卜部昌平 2021-11-11 02:33:29 UTC

include/ruby/internal/encoding/encoding.h の rb_enc_code_to_mbclen() の Doxygen 用コメントの引数名を修正しています。

[f5dcecf345] 卜部昌平 2021-11-11 02:34:09 UTC

include/ruby/internal/intern/file.h の rb_file_size() のための Doxygen 用コメントを追加しています。

[6ecd30b402] Nobuyoshi Nakada 2021-11-11 02:07:26 UTC

db316e627f32cf73e3cc8f8d67b67894f36c17f3 で追加した getoptlong が ARGV を破壊的に変更してしまっていたので復旧用にコピーする時に dup しておくようにしています。

[155bc42727] Hiroshi SHIBATA 2021-11-11 04:55:30 UTC

6ecd30b402d02a51aef1ec48072ff4d103b7ef8f に追加して getoptlong の ARGV の復旧前にも ARGV を dup したものをチェック用に作っておくようにしています。これチェックしてから復旧させればいいのではないかという気もしますがだめなのかな。

[33533fabd5] 卜部昌平 2021-11-02 01:38:14 UTC

rb_str_new_cstr()、rb_tainted_str_new_cstr()、rb_usascii_str_new_cstr()、rb_utf8_str_new_cstr()、rb_str_cat_cstr() などなど C の文字列バッファを渡して String を作ったり操作したりする関数群の宣言に RBIMPL_ATTR_NONNULL(()) をつけて、NULL を渡すのをエラーにするようにしていたのをやめて、Doxygegn 用コメントに発生する例外として rb_eArgError を追記しています。チケットをみると NULL を渡して SEGV することがあったみたいですが、コンパイラがこの attribute をみて NULL チェックを消す最適化をしたためみたいです。 で NULL を渡すのが OK かどうかというのは議論の余地がある気がしますが、NULL を渡せないように宣言されてるのは非互換だということでの revert のようです。 [ruby-core:105882] [Feature #18280]

[52ab9bbee9] Shohei Maeda 2021-06-06 09:49:51 UTC

標準添付ライブラリ net/http でリクエストヘッダの Accept-Encoding をレスポンスに body がないリクエスト(HEAD リクエスト)の時に設定しないようになっていたのを修正しています。

[cd51bf61a2] Kazuki Yamaguchi 2021-11-11 08:59:22 UTC

標準添付ライブラリ openssl のテストでテスト用の証明書の作成をする時に not_before と not_after に現在時刻より 100 秒と 10秒前を使ってたのをそれぞれ 2時間、1時間前にずらしています。短いと OpenSSL が使ってる時刻がずれてる? ことがあってエラーになることがあったみたいです。本当かな? CI でたまにエラーになってるということなのでとりあえずこれで様子をみるという感じでしょうか。

[b5531adf41] Koichi Sasada 2021-11-11 09:01:10 UTC

52ab9bbee918c63faad32e3851b162691b984d40 の net/http の変更で net/http のテストが失敗しているところがあったので、とりあえずヘッダから追加された Accept-Encoding ヘッダを削除して比較するようにしています。expected に追加するのでもいいのではと思いましたが。