ruby-trunk-changes 2021-04-29

今日は MJIT の clang 対応がありました。

[9f8a50723f] Takashi Kokubun 2021-04-28 18:49:55 UTC

MJIT で利用するコンパイラが clang の場合に precompiled header を作成する時のコンパイラオプションに -c オプションを追加しています。 https://github.com/ruby/ruby/pull/4423 [ruby-core:103629] [Bug #17836]

[b0b5a4e86e] git 2021-04-28 18:50:15 UTC

version.h の日付更新

ruby-trunk-changes 2021-04-28

今日は標準添付ライブラリ net/http, net/imap, net/smtp, ostruct などの更新と、標準添付ライブラリ monitor の Monitor が Fiber 単位で排他するようにする仕様変更などがありました。

[c752a35816] Matt Valentine-House 2021-04-27 11:13:29 UTC

misc/lldb_cruby.py の dump_page コマンドで表示する情報の slot の free list 上でのインデックスも表示させるようにしています。

[f64bb9fc84] Matt Valentine-House 2021-04-27 11:17:55 UTC

c752a35816c64c0eef3324a860ad4a535fb8ff2b の続き。misc/lldb_cruby.py に dump_page_rvalue というコマンドを追加してオブジェクトの VALUE 値を指定してそれが含まれてる page の内容をダンプできるようにしています。

[1c1c91535c] Matt Valentine-House 2021-04-27 11:21:24 UTC

misc/lldb_cruby.py の dump_page_rvalue コマンドで引数で渡したオブジェクトの slot が目立つように印をつけて表示するようにしています。

[3a3b19b2bb] Benoit Daloze 2021-04-27 16:42:50 UTC

標準添付ライブラリ monitor を Fiber 単位で排他するようにしています。うーむ、なるほど。 blocking fiber じゃないとこれまで動いてたものが動かなくなる可能性はありそうですね(まあ Fiber と Monitor を同時に使うというのが意図通りだったということはあんまりなさそうですが)。 [ruby-core:103591] [Bug #17827]

[72eacd739d] git 2021-04-27 16:47:16 UTC

version.h の日付更新

[99eebf8260] Yusuke Endoh 2021-04-27 17:11:32 UTC

Fiber 内での Kernel#fork のテストで繰り返し回数を OpenBSD で減らしていたのを Solaris でも減らすようにしています。 CI でのタイムアウトを避けるためみたいです。

[fe11031b67] Yusuke Endoh 2021-04-27 17:27:58 UTC

標準添付ライブラリ net/ftp のテストで未使用の変数があったので警告抑制のため削除。

[8e2ac2140d] Yusuke Endoh 2021-04-27 18:12:48 UTC

4ae27d8075b2d138d13cb2b112f0ee50934b3017 で追加した net/ftp のテストで時刻のところに巨大な文字列を渡すテストであまり大きすぎると CI が失敗することがあったので少し小さくしています。

[734557498f] Yusuke Endoh 2021-04-28 00:10:58 UTC

標準添付ライブラリ net/ftp のテストで MJIT が有効な時にタイムアウトを伸ばずために使っていたモジュールが古い名前 RubyVM::MJIT のままだったので RubyVM::JIT に変更しています。そういえば MJIT -> JIT になったんだっけ。

[4c8cce5b8a] Tom Freudenberg 2021-03-08 17:03:15 UTC

標準添付ライブラリ net/smtp の Net::SMTP.start, #start メソッドに ssl_context_params キーワード引数を追加して利用する OpenSSL::SSL::SSLContext を渡せるようにしています。

[ff931d0336] mohamed 2021-02-15 17:36:50 UTC

標準添付ライブラリ net/smtp で Socket.tcp の connect_timeout キーワード引数を利用して Timeout.timeout のかわりに接続時のタイムアウトを実現するようにしています。

[eebecdf1c4] Hiroshi SHIBATA 2020-12-28 03:32:21 UTC

標準添付ライブラリ net/smtp の gemspec ファイルの spec.files を git ls-files を使ってたのを直接配列リテラルを書くようにしています。

[e22626f08e] Tom Freudenberg 2021-03-10 06:35:43 UTC

標準添付ライブラリ net/smtp のバージョンを "0.2.1-patch-ssl-context" というのにしています。うーん、このままリリースするのかな。

[8a2b7b79ee] mohamed 2021-01-13 22:03:14 UTC

標準添付ライブラリ net/http でも接続タイムアウトに Timeout.timeout を使っていたところを Socket.tcp の connect_timeout キーワード引数を利用するようにしています。

[842f00f452] Lukas Eipert 2020-12-30 20:24:16 UTC

標準添付ライブラリ net/http で URL で http_proxy などの変数の指定による URL に埋め込まれている user/password を %-encode されているものとしてデコードして使うようにしています。 [ruby-core:102089] [Bug #17542]

[1229ad0528] Jean Boussier 2021-03-18 21:05:06 UTC

標準添付ライブラリ net/http の URL のホスト部から ":" 以降を削る時の正規表現のオプションに s を使ってたのを m を使って改行が含まれてた時に改行を超えて全て削るようにしています。

[0296a64450] Jeremy Evans 2020-10-27 21:48:25 UTC

標準添付ライブラリ net/http の Net::HTTP#connect で OpenSSL::SSL::SSLContext.new の呼び出しを接続前にしておくようにしています。使ってるわけではないのですが、拡張ライブラリ openssl が未使用でここで初回の利用だった場合に初期化のためちょっと時間がかかるので、ソケットをはってから時間をかけるよりその前にやっておく、という意図のようです。 [ruby-core:60202] [Feature #9459]

[908785ef6d] Ryuta Kamizono 2021-04-25 18:12:36 UTC

標準添付ライブラリ net/imap の rdoc 用コメントの typo 修正。

[2afbe7113a] Alexander Popov 2021-03-17 21:24:10 UTC

misc/rb_optparse.bash や misc/rb_optparse.zsh のインデント変更と test/optparse/test_acceptable.rb の空行削除。コミットログをみるとなんか意味がありそうだけど、たぶん upstream のリポジトリでは ruby 本体に同期されないファイルの部分で他に変更があったのを cherry-pick した結果だと思います。

[37b445eaeb] Marc-Andre Lafortune 2020-09-30 22:21:27 UTC

標準添付ライブラリ ostruct で String#end_with? を使ってたところを正規表現を使って String#match? を使うようにしています。しかし match? が使えるようになったらかということですが、パフォーマンス的には end_with? でいいならそのほうが高速そうな気がしますが……。

[7f1323c3bd] Marc-Andre Lafortune 2020-09-02 20:05:59 UTC

標準添付ライブラリ ostruct で Hash#to_h にブロックを受け付けるように機能がない古い ruby のために OpenStruct#to_h メソッド定義を分岐するようにしています。to_h のブロック受け付けってそんなに新しいんだっけ。

[f985dafee7] Hiroshi SHIBATA 2021-04-28 08:58:04 UTC

標準添付ライブラリ ostruct の Ractor を使ったテストを defined?(Ractor) で Ractor クラスがある時だけテストメソッド定義するようにしています。

[795fb51f80] Nobuyoshi Nakada 2021-04-28 09:40:45 UTC

標準添付ライブラリ diget/rmd160 の extconf.rb で -DNDEBUG オプションの追加は ruby のバージョンが 3.0 以前の時だけにするようにしています。

[96fd1e1f22] Nobuyoshi Nakada 2021-04-28 09:16:02 UTC

拡張ライブラリ digest/xxx の extconf.rb で -DHAVE_CONFIG_H のコンパイラオプション追加を削除しています。

ruby-trunk-changes 2021-04-27

今日は標準添付ライブラリ irb, matrix, net/ftp の更新や T_IMEMO 型オブジェクトの RGenGC 用 Write Barrier 漏れの修正などがありました。

[fc24b0736e] Ryuta Kamizono 2021-04-25 18:09:04 UTC

ir の rdoc 用コメントのサンプルコードの typo 修正。

[6ddaad606e] Nobuyoshi Nakada 2021-04-07 15:09:30 UTC

irb のテストで端末の出力をチェックするための専用の assertion メソッド assert_equal_with_term を追加してこれを利用するようにリファクタリングしています。

[75f1ad8cb3] Nobuyoshi Nakada 2021-04-07 16:00:41 UTC

同じく irb のテストで IRB::Color.colorize による端末の色付けのためのエスケープシーケンスの生成をチェックするテストを追加しています。

[687ab5dcad] Nobuyoshi Nakada 2021-04-07 15:20:10 UTC

6ddaad606e99aab254288ef14fffbd34a2e54e16リファクタリングした irb のテストに出力先の tty? が false の場合のテストを追加しています。

[8fdc45c894] Nobuyoshi Nakada 2021-04-07 16:01:16 UTC

IRB::Color.colorize にキーワード引数 colorable を追加して、出力先が端末かどうかにかかわらず色付けを有効/無効にできるようにしています。テストのためかな。

[5219b4ddb4] Nobuyoshi Nakada 2021-04-15 13:24:02 UTC

irb のテストで irbrc ファイルの存在に影響されないように環境変数 XDG_CONFIG_HOME、IRBRC などを削除して、環境変数 HOME に一時ディレクトリを指定してから実行するように setup/teardown を追加しています。

[2c7d3b3a72] Yusuke Endoh 2021-04-26 09:11:46 UTC

T_IMEMO 型オブジェクトの imemo_ast タイプの時に RGenGC 用の Write Barrier が適切にきいていなくて生きているオブジェクトが回収される可能性があったので WB-unprotected のフラグをつけて生成するようにしています。 53d153e42c90f48ac35316b9fd69b8819aa4e7d3 で lib/time.rb にマジックコメント shareable_constant_value: literal を追加したら FreeBSD の CI でエラーが起きてた問題はこれが関連していたようです。

[203eeeefdd] Yusuke Endoh 2021-04-26 11:00:20 UTC

203eeeefddb3ae6c0e129ad9cd99da804c2cbaba の修正で修正されたはずなので、調査のために lib/time.rb で部分的にマジックコメント shareable_constant_value を none に変更していた c647205c3eb1f17409a859149bb7d2ea38b43bed を revert しています。

[d585799d73] Jeremy Evans 2021-04-26 22:21:52 UTC

TracePoint#binding の rdoc 用コメントなどに c_call, c_return イベントの時には最も近い ruby 実装のメソッドの場所の Binding オブジェクトが返されることを追記しています。 [ruby-core:57792] [Bug #9009]

[6c1e965089] git 2021-04-26 22:25:43 UTC

version.h の日付更新

[4f88acc833] Peter Zhu 2021-04-26 19:14:57 UTC

拡張ライブラリ objspace の ObjectSpace._dump の実装でバッファに内容を追記する時の書き出しサイズのための変数を unsigned int と宣言するようにしています。警告抑制のため。

[ede2616990] ebrohman 2021-04-26 20:59:59 UTC

insns.def のコメントの typo 修正。

[e48109d86f] Yusuke Endoh 2021-04-27 06:31:19 UTC

2c7d3b3a722c4636ab1e9d289cbca47ddd168d3e で T_IMEMO 型オブジェクトの imemo_ast タイプを WB-unprotected にしたのを revert しています。あらためて Write Barrier を追加して WB-protected にするのでその準備のため。

[d405b1a878] Yusuke Endoh 2021-04-27 06:32:42 UTC

e48109d86fa06584a79610ecd5cb16f0bbd64e8c の続き。parse.y の const_decl_path() および shareable_literal_constant() で NEW_LIT() で NODE を作った時に p->ast への RB_OBJ_WRITTEN() 呼び出しによる Write Barrier を追加しています。

[ea88f49a76] Yusuke Endoh 2021-04-27 08:06:51 UTC

609de71f043e8ba34f22b9993e444e2e5bb05709 で追加したブロック内の rescue と ensure の利用時のテストで "statement not reached" という警告が出るということで、抑制のために return 文に後置 if true を追加して判定を回避するようにしています。

[ad3f4c07d9] Olle Jonsson 2021-04-22 10:09:52 UTC

拡張ライブラリ pathname の gemspec ファイルの spec.executables を空配列にしています。

[22d36c463f] Lars Kanis 2019-12-13 09:38:44 UTC

拡張ライブラリ gdbm の gemspec ファイルで spec.metadata["msys2_mingw_dependencies"] という項目に gdbm をセットしています。 RubyInstaller2 でインストール時に依存ライブラリの指定ができるみたいです。

[acf599e67c] Hiroshi SHIBATA 2021-02-15 09:53:06 UTC

標準添付ライブラリ matrix の gemspec ファイルから add_development_dependency を削除しています。Gemfile に書こうってことですね。

[c57ba9b957] Marc-Andre Lafortune 2021-01-16 03:29:35 UTC

標準添付ライブラリ matrix の 0.4.0 に更新しています。

[3af2e8927a] Marc-Andre Lafortune 2021-01-21 18:23:10 UTC

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

[ac739f42eb] Hiroshi SHIBATA 2021-04-27 12:06:08 UTC

標準添付ライブラリ matrix の Ractor を使うテストメソッドを defined?(Ractor) で Ractor がある時だけ定義するようにしています。

[fb819d9331] Hiroshi SHIBATA 2021-04-27 12:17:43 UTC

net/ftp のテストで MJIT が有効な時にタイムアウトをのばすために RubyVM::JIT.enabled? を呼ぶ前古い ruby のサポートのために defined? でモジュールがあるかどうかのチェックを追加しています。

[a86c6cb34d] mohamed 2021-02-15 18:25:59 UTC

標準添付ライブラリ net/ftp で Socket.tcp のキーワード引数 connect_timeout がサポートされていたら Timeout.timeout のかわりにこちらを利用するようにしています。

[990baec411] Jeremy Evans 2021-02-25 19:15:48 UTC

標準添付ライブラリ net/ftp の Net::FTP#transfercmd で例外発生時に socket の close 漏れがあったので修正しています。

[4ae27d8075] Shugo Maeda 2021-04-21 00:43:39 UTC

標準添付ライブラリ net/ftp の時刻を表す文字列を parse するための正規表現で秒未満の部分の桁数の上限を設けています。

[2670509ebb] Shugo Maeda 2021-04-21 01:10:51 UTC

4ae27d8075b2d138d13cb2b112f0ee50934b3017 で追加した net/ftp のテストに通常の時刻の文字列を parse した時のテストも追加しています。

[1b2abb6590] Gannon McGibbon 2021-01-21 01:09:33 UTC

標準添付ライブラリ net/ftp の Net::FTP#closed? の rdoc 用コメントの iff を "if and only if" に書きかえています。

ruby-trunk-changes 2021-04-26

今日は標準添付ライブラリ time を Ractor safe にするためのマジックコメント追加で FreeBSD の CI でエラーがおきたということで調査のための変更や全体的なコメントの typo 修正がありました。

[532c775e22] wonda-tea-coffee 2021-04-25 09:43:45 UTC

拡張ライブラリ nkf のヘッダファイル ext/nkf/nkf-utf8/config.h のコメントの typo 修正。

[04e6383f40] wonda-tea-coffee 2021-04-25 09:51:54 UTC

拡張ライブラリ nkf の ext/nkf/nkf-utf8/nkf.c のコメントの typo 修正。

[ca5816e275] wonda-tea-coffee 2021-04-25 10:16:19 UTC

拡張ライブラリ openssl の OpenSSL::OCSP モジュールの rdoc 用コメントの typo 修正。

[f9b62b5cc0] wonda-tea-coffee 2021-04-25 09:59:43 UTC

ext/nkf/nkf-utf8/nkf.c のコメントの typo 修正。

[33f2ff3bab] Ryuta Kamizono 2021-04-25 15:10:39 UTC

スペルチェッカーでコメントや rb_bug() のメッセージなどの typo をみつけたそうで一括で修正しています。

[fcc6f6de86] git 2021-04-26 01:07:58 UTC

version.h の日付更新

[2b487d36f0] Kazuhiro NISHIYAMA 2021-04-26 02:06:53 UTC

5512353d97250e85c13bf10b9b32e750478cf474VM 命令の reverse が削除されたので、MJIT で命令を網羅するためのテスト test/ruby/test_jit.rb の対応するテストメソッド test_compile_insn_reverse を削除しています。

[4ca271909d] Yusuke Endoh 2021-04-26 02:21:15 UTC

rubyspec でディレクトリのパスを指定してファイル操作(spec の書きかたがよくわからず具体的になんのメソッドを発行しているのかわからないのですが)した時に FreeBSD でエラーにならなかったのが最近 errno=EISDIR がかえってくるように挙動が変化したらしくテストの platform_is での分岐を変更しています。

[c647205c3e] Koichi Sasada 2021-04-26 02:31:58 UTC

53d153e42c90f48ac35316b9fd69b8819aa4e7d3 で lib/time.rb にマジックコメント shareable_constant_value: literal を追加して Ractor safe にしていたところ FreeBSD でなぜかエラーが起きるようになったとのことで Time::MonthValue という定数の定義部分で局所的にマジックコメントを shareable_constant_value: none にすりかえて、明示的に Ractor.make_shareable で共有化した値を定数に代入するようにしています。

ruby-trunk-changes 2021-04-25

今日はドキュメントの typo 修正だけでした。

[fc84e6679d] wonda-tea-coffee 2021-04-25 05:02:33 UTC

doc/syntax/methods.rdoc の typo 修正。

[4d5f15a556] git 2021-04-25 07:45:23 UTC

version.h の日付更新

[e71bc56efe] wonda-tea-coffee 2021-04-25 04:57:03 UTC

doc/irb/irb.rd.ja の内のサンプルの typo 修正。

[ad108e63e3] wonda-tea-coffee 2021-04-25 04:48:50 UTC

ccan/list/list.h のコメント内の typo 修正。

[cc5bab80e4] wonda-tea-coffee 2021-04-25 02:21:56 UTC

benchmark/README.md のヘルプメッセージの typo 修正。

ruby-trunk-changes 2021-04-24

今日は refinements と特異メソッドの可視性変更関連の追加不具合修正などがありました。

[71ee05c936] Yusuke Endoh 2021-04-23 13:11:01 UTC

50c54d40a81bb2a4794a6be5f1861152900b4fed で追加した多重代入のテストで未使用の変数の警告が出ていたので変数名に "_" の prefix をつけて警告を抑制しています。

[7de7d096e7] romainsalles 2021-04-23 12:25:42 UTC

Hash#fetch の rdoc 用コメントに要素がない時に第2引数を渡さない時に nil を返すというサンプルがあったけど実際には例外が発生するので記述を削除しています。

[cb78aaeded] git 2021-04-23 16:25:24 UTC

version.h の日付更新

[4b36a597f4] Jeremy Evans 2021-04-05 23:01:46 UTC

58660e943488778563b9e41005a601e9660ce21f の refinements とModule#public_class_method や private_class_method などのメソッドの可視性を変更するメソッドの組合せの不具合修正の追加修正。refine してる Module が複数あった時に修正しきれてなかったみたいです。 [ruby-core:101981] [Bug #17519]

[a224ce8150] Alan Wu 2021-04-23 23:37:03 UTC

メソッド呼び出し時の引数処理する vm_callee_setup_arg() で通常引数の最後の空 Hash を削る CALLER_REMOVE_EMPTY_KW_SPLAT() の呼び出しを削除しています。削った箇所は条件分岐で既に呼び元に keyword splat がない場合とわかっているので不要ということみたいです。
が、後で a224ce8150f2bc687cf79eb415c931d87a4cd247 で revert されています。

[1f2b5c6dfe] Jeremy Evans 2021-04-23 23:43:00 UTC

通常引数の最後の空 Hash を削る CALLER_REMOVE_EMPTY_KW_SPLAT() のコメントで 2.7 の時点で互換性のために空 Hash を戻す方法について書かれてる部分がもう古いということで削られています。

[dee58d7ae7] Alan Wu 2021-04-24 02:17:20 UTC

a224ce8150f2bc687cf79eb415c931d87a4cd247vm_callee_setup_arg() の CALLER_REMOVE_EMPTY_KW_SPLAT() の呼び出しを削ったのはやっぱりまずかったみたいで、テストを追加しつつ revert しています。メソッドを ruby2_keywords で修飾した時には必要だったとのこと。 https://github.com/ruby/ruby/pull/4405

ruby-trunk-changes 2021-04-23

今日はテストの警告抑制などがありました。

[3ea2a40713] Hiroshi SHIBATA 2021-04-23 01:35:29 UTC

fb04c69418ceee696a114fe31279cf3a5ea16d30 で追加した Array#zip の引数に Enumerator を渡すテストで assert_equal にメッセージ用の引数を渡し忘れてたので追加しています。用意した変数が使われず未使用変数の警告が出ていたようです。 [Bug #17814]

[5a4b3354f2] git 2021-04-23 01:35:53 UTC

version.h の日付更新

[cf7b33d5a2] S-H-GAMELINKS 2021-04-23 03:20:37 UTC

vm.c に余分な行コメントがあったのを削除しています。