ruby-trunk-changes 2020-06-23

今日は拡張ライブラリ psych に同梱されている libyaml の更新や GC.compact で移動したオブジェクトの跡地に置く T_MOVED 型オブジェクトの内部表現のリファクタリング、MJIT の一部の最適化命令のコードサイズ削減による最適化などがありました。

[ec9a9aaa51] Nobuyoshi Nakada 2020-06-22 15:14:39 UTC

template/exts.mk.tmpl で exts.mk に既に存在しない(削除された)拡張ライブラリをみつけたらコマンドラインオプションへのマクロ追加の処理をそこで止めるようにしています。これ next じゃなくて break でいいのかな? (よくわかってない)

[079ed74d69] git 2020-06-22 15:31:05 UTC

version.h の日付更新

[574a4f0217] Takashi Kokubun 2020-06-22 17:45:08 UTC

eed4aaa0bf8aa3109936c4276a71c0cdab4d54d67658a0f8fe9586b66f2a8f1efb652d2bcffad358 で MJIT 有効化時にタイムアウトを伸ばしてた標準添付ライブラリ net/http のテストですが10倍にしてもだめだったみたいでひとまず skip するようにしています。

[e2d94f61c8] Aaron Patterson 2020-06-22 22:22:48 UTC

GC.compact によるオブジェクトの移動で移動した slot を埋めておく T_MOVED 型オブジェクトの実際の構造体 struct RMoved は single linked list として管理できるようになってましたが、任意のノードをリストから外す操作を容易にするため struct list_node および stuct list_head を使って doubly linked list とするようにしています。両者を共用体として struct RMoved に埋め込んでますが、list head を struct RMoved じゃなくて直接 struct list_head で持てばいいんじゃないのかな。なおこの変更はこのリスト操作に read barrier を入れたくてその時にノードの削除がしたいからとのこと。

[61374839e4] Nobuyoshi Nakada 2020-06-22 22:59:07 UTC

file.c の fpath_check() というマクロ定義がもう不要になってたので削除。

[c3ba2db48b] Nobuyoshi Nakada 2020-06-23 00:32:59 UTC

file.c の fpath_check_0() の第2引数 execpath は常にTRUE になってる(唯一 FALSE を渡す可能性があった fpath_check() マクロも 61374839e4132aec92e00eb8d2fdb0619a0307cf で削除された)ので引数を削除し判定条件からも消しています。

[9ce2066209] Nobuyoshi Nakada 2020-06-23 00:34:18 UTC

コマンドラインオプションの --jit 関係のものを処理する setup_mjit_options() のリファクタリングと --jit-vervose のオプションに引数がなかった時に空文字列を atoi() に渡してたのでデフォルト値を 1 にする変更。

[e9adc2f420] Nobuyoshi Nakada 2020-06-23 05:51:28 UTC

C++ の拡張ライブラリのビルドのテストのための拡張ライブラリのサンプルの依存関係ファイル ext/-test-/cxxanyargs/depend でビルド失敗するファイルをビルドした時のエラーメッセージ比較のところで Encoding がらみのエラーを回避するため String#b で ASCII-8BIT に変換してから正規表現での検索するようにしています。

[666c077691] Jean Boussier 2020-06-08 15:52:41 UTC

拡張ライブラリ psych で YAML のタグ(anchor というらしい)参照の展開で symbolize_names: true オプションが指定されてた時の不具合修正。

[70a4599869] Hiroshi SHIBATA 2020-06-23 04:40:15 UTC

拡張ライブラリ psych に同梱している libyaml のバージョンを 0.2.5 に更新しています。

[7cdfc2b5fc] Hiroshi SHIBATA 2020-06-23 04:48:01 UTC

ext/psych/yaml/config.h に記述されてる同梱 libmayml のバージョン番号を 0.2.5 に更新。

[078e94106d] Hiroshi SHIBATA 2020-06-23 04:55:17 UTC

a3cc9b3c8e8e55660e434015654dfc4e11e3a3ab で拡張ライブラリ psych の gemspec ファイルでバージョンを得るために無名モジュールを導入したのに spec.requirements への格納が追随していなかったので修正しています。

[6aa3aaac05] Nobuyoshi Nakada 2020-06-23 06:52:37 UTC

misc/lldb_cruby.py の lldb_inspect コマンドで T_BIGNUM 型のオブジェクトの表示に正負の符号についての情報表示を追加しています。

[37a2e48d76] Takashi Kokubun 2020-06-23 06:30:37 UTC

MJIT で opt_nil や opt_not などの最適化命令は callcache にキャッシュが乗ってたら fallback 用の send 命令の生成を抑制するようにしているようです。よけいなコード生成を抑えてサイズを小さくするのが目的かな。昨日の 78352fb52ed2c15fe0d74c02ea29b7e5a28b18c0 での has_valid_method_type() の引数追加を revert して別途 has_cache_for_send() という関数を追加して opt_send_without_block 命令の処理を入れる箇所の条件に追加しています。

ruby-trunk-changes 2020-06-22

今日は MJIT の inline 展開の条件の変更や標準添付ライブラリ webrick や fileutils のファイルパスの Encoding まわりの修正の続きなどがありました。

[aec8e6d379] Yusuke Endoh 2020-06-21 14:14:30 UTC

538276aa777e4abfb6eaf55466043a3752fbb8ec で MJIT のテストで RHEL で SEGV するものを skip するようにしたやつは正確には s390x アーキテクチャ上の RHEL だったそうで s390x であることのほうを条件に変更しています。

[d9f608b686] Takashi Kokubun 2020-06-21 17:27:04 UTC

7561db8c009bb79a75024fa4ed0350bfb3d0626c で導入した Primitive.attr! での inline 指定により MJIT 時のメソッド inline 化に CHECK_CANARY() による VM stack の消費量チェックを対応させるための変更のようです。 https://github.com/ruby/ruby/pull/3244

[0e3ead344c] git 2020-06-21 17:27:23 UTC

version.h の日付更新

[54ad2bd6d0] Nobuyoshi Nakada 2020-06-21 21:17:12 UTC

VM_CHECK_MODE が 0 の時(通常ビルド)時のマクロ SETUP_CANARY() および CHECK_CANARY() の定義を空っぽでなくなにもしない if 文として定義して引数が未参照になる警告を抑制しようとしています。

[eed4aaa0bf] Takashi Kokubun 2020-06-21 23:16:10 UTC

標準添付ライブラリ net/http のテストでも MJIT 有効化時に読み込みのタイムアウトを伸ばすようにしています。

[7658a0f8fe] Takashi Kokubun 2020-06-22 06:21:47 UTC

eed4aaa0bf8aa3109936c4276a71c0cdab4d54d6 の net/http のテストでの MJIT 有効化時のタイムアウト延長を 5倍からさらに 10倍にまで増やしてみています。

[8838600c1e] Takashi Kokubun 2020-06-22 07:17:09 UTC

benchmark/ サブディレクトリ内の YAML ファイル形式のベンチマークで type の指定にサブディレクトリ benchmark/lib が $LOAD_PATH に追加されてる前提で runner が指定されてたのをやめています。 make benchmark ターゲット利用時に -I オプションで指定されてるのですが、このターゲットなしで benchmark-driver のコマンドを直接指定したい時もあるので、ということのようです。

[faf93e4545] Takashi Kokubun 2020-06-22 07:20:30 UTC

8838600c1e7bcf913cbdc43caee50baa1c65cd4a に追随して benchmark/ の YAML 形式のベンチマークスクリプトのコメントに書かれてる Usage に RUBYOPT=-Ibenchmark/lib を指定するように書かれてたのを削っています。

[4c5780e51e] Takashi Kokubun 2020-06-22 07:54:27 UTC

benchmark/ の MJIT 関係のベンチマークから warmup 用の処理を benchmark/lib/benchmark_driver/runner/mjit.rb という runner を追加してここに追加しています。

[48d7ebe6fc] Kazuhiro NISHIYAMA 2020-06-22 08:05:33 UTC

fileutils のテストで File.symlink が使える環境かどうかの判定に src にも dest にも空文字列を指定して File.symlink を呼んでみていたのを一時ディレクトリを作成してそこでちゃんと名前のある symlink を作る方法に修正しています。空文字列で File.symlink ってどうなるんじゃろ、と思ったら手元の環境では Errno::ENOENT でした。

[d231b8f95b] Kazuhiro NISHIYAMA 2020-06-22 08:07:49 UTC

標準添付ライブラリ fileutils で Windows 環境ではファイル名の Encoding を UTF-8 固定にしていたのを、パス名の Encoding が UTF-8 と互換でなかった場合は path 名の Encoding をそのまま使うように修正しています。

[61743f0c83] Kazuhiro NISHIYAMA 2020-06-22 08:31:07 UTC

標準添付ライブラリ webrickWEBrick::HTTPServlet::DefaultFileHandler のテストでファイル名がマルチバイト文字だった時のテストで、DocumentRoot だけでなく DirectoryIndex にもマルチバイト文字を含むファイルパスを渡した場合もテストするようにしています。

[3238641750] Kazuhiro NISHIYAMA 2020-06-22 08:37:37 UTC

標準添付ライブラリ webrickWEBrick::HTTPServlet::DefaultFileHandler の変更なんですが、基本的にはリファクタリングのようにみえます。req.path_info をディレクトリごとに分けた後の set_filesystem_encoding を一括でせずに while ループで順次行なうようにしているので途中で break した時に余計な set_filesystem_encoding が呼ばれないというのがあるけど。

[78352fb52e] Takashi Kokubun 2020-06-22 08:44:11 UTC

MJIT でのメソッドの inline 化の条件を判定する関数のひとつ has_valid_method_type() で callcache に乗ってるメソッド定義タイプの引数を追加して VM 命令の opt_xxx のうち opt_send_without_block 以外の命令のコンパイル時にメソッド定義が VM_METHOD_TYPE_ISEQ の時のみ callcache が不正になってた時に inline 化をキャンセルする fallback を使うようにしています。よくわからなかったのですが opt_nil, opt_not, opt_eq などの命令が callcache を埋めてしまうけど無視してもいいから、ということかな?

[7ac6c967e4] Kazuhiro NISHIYAMA 2020-06-22 09:15:21 UTC

d231b8f95b35d8a344cec4f62d7bbdf360a70e1c の標準添付ライブラリ fileutils でのファイル名の Encoding 関連の変更を revert して、テストのエラー時のデバッグ用出力を追加しています。

[6adbdb56ed] Kazuhiro NISHIYAMA 2020-06-22 09:34:24 UTC

7ac6c967e49d1e3ad46be20aca98e8f1df2c2d5bデバッグ出力を revert して d231b8f95b35d8a344cec4f62d7bbdf360a70e1c の標準添付ライブラリ fileutils の Encoding まわりの修正のリトライ? FileUtils::Entry_#join メソッドで File.join で EncodingError が発生した時に Windows 環境ではそれぞれの文字列を UTF-8 に encode してからリトライするというコードを追加しています。

ruby-trunk-changes 2020-06-21

今日は Integer#zero? メソッドを定義(Numeric#zero? を上書き定義)して MJIT で inline 化できるようにする高速化などがありました。

[95b0fed371] Takashi Kokubun 2020-06-20 21:55:09 UTC

[Feature #15589] の Number#zero? が == 演算子メソッドで比較するより遅いという問題(問題?)を解決するための布石らしいですが、Integer#zero? を Numeric#zero? を再定義するかたちで定義追加しています。またこの定義は ruby 実装で追加され C 関数 int_zero_p() を Primitive.cexpr! を用いて呼び出すように定義されています。 https://github.com/ruby/ruby/pull/3226 [ruby-core:98796] [Misc #16961]

[cc14319b71] git 2020-06-20 21:55:30 UTC

version.h の日付更新

[d95249ade3] Nobuyoshi Nakada 2020-06-20 23:14:49 UTC

95b0fed3714b87dcb40a16f33d9e3160f9945e38 の Primitive.cexpr! に渡す文字列に ";" まで含まれていたのが不要だったので削っています。

[7561db8c00] Takashi Kokubun 2020-06-21 00:13:03 UTC

組み込みメソッドの ruby 実装で使える Primitive.attr! というメソッド(のようにみえるもの)で MJIT 時に C 関数呼び出しの inline 展開を指定できるようにしています。これを Integer#zero? の定義で使って(MJIT 下での)高速化を図っているようです。 https://github.com/ruby/ruby/pull/3242 [ruby-core:91420] [Feature #15589]

[838d695c16] Nobuyoshi Nakada 2020-06-21 01:34:07 UTC

tool/runruby.rb で起動する ruby のファイル名を ruby と決め打ちにしてた部分があったので RbConfig::CONFIG["RUBY_INSTALL_NAME"] を考慮するように修正しています。

[ccd2f99e71] Nobuyoshi Nakada 2020-06-21 02:31:48 UTC

test/pathname/test_pathname.rb で assert のかわりにヘルパーメソッドを使ってエラー時のメッセージがわかりやすくなるように修正しています。

[538276aa77] Takashi Kokubun 2020-06-21 06:23:28 UTC

95b0fed3714b87dcb40a16f33d9e3160f9945e387561db8c009bb79a75024fa4ed0350bfb3d0626c の Integer#zero? の高速化がらみの変更で MJIT のテストが RHEL での CI で SEGV するようになったそうで、ひとまず skip するようにしています。

[67e544cbe1] Nobuyoshi Nakada 2020-06-20 09:26:12 UTC

拡張ライブラリ date の Date._parse および Date.parse、DateTime.parse メソッドの rdoc 用コメントに入力が不正な場合にエラーにならずに変な結果を受け取るだけになる場合もある(フォーマットのチェックに使えるものではない)という注意書きを追記しています。

[956d187223] Nobuyoshi Nakada 2020-06-20 10:08:01 UTC

67e544cbe15abb852742236f9de1b3b9a9add676 にさらに追記して Date._strptime, Date.strptime, DateTime.strptime を使うことをすすめる一文も追加しています。

[995923b7f9] Nobuyoshi Nakada 2020-06-20 10:21:35 UTC

Time.parse の rdoc 用コメントにも 67e544cbe15abb852742236f9de1b3b9a9add676 と同様に不正な文字列をチェックできるものではないという注意書きを追記しています。

[426db4cd90] Takashi Kokubun 2020-06-21 07:34:31 UTC

vm_invoke_block() の switch 文に到達しないはずの default 節を追加して rb_bug() を呼び出すようにしています。コンパイラによる未初期化変数参照の警告避けのようです。

[ec07e2de1a] Takashi Kokubun 2020-06-21 09:14:32 UTC

標準添付ライブラリ net/ftp のテストでソケットからの読み込みのタイムアウトを MJIT 有効時にさらに延ばしています。

ruby-trunk-changes 2020-06-20

今日は標準添付ライブラリ webrick の再修正や拡張ライブラリ date の Marshal.load 時の不具合修正などがありました。

[78d4eace02] Kazuhiro NISHIYAMA 2020-06-19 13:08:19 UTC

標準添付ライブラリ webrickWEBrick::HTTPServlet::DefaultFileHandler の 750203c514e0e9a49f7d53fb54084e6844fca42a93e6fa1d319d19ce7fba37e4b9924862447b9f38 の修正を revert。

[97c1782db6] Kazuhiro NISHIYAMA 2020-06-19 13:47:08 UTC

標準添付ライブラリ webrick のテストで 6fe1919486111bcdd5ef41fea15b0e82f7f50d82 の @root の encoding にあわせる変更を revert して、やっぱり req.path_info を filesystem encoding に force_encoding するようにしています。ただし filesystem encoding が US-ASCII だったら ASCII-8BIT に変換しています。

[32e2440a66] Kazuhiro NISHIYAMA 2020-06-19 14:06:38 UTC

97c1782db634ab0344fbc829477897d5de034475 の再修正。req.path_info を丸ごと変換してから String#scan にかけてたのを、先に scan で分解してから Encoding の変換するようにしています。 force_encoding した結果不正なバイト列になってた場合に String#scan でエラーになるのを防ぐためみたいです。

[640e6c9be6] Kazuhiro NISHIYAMA 2020-06-19 15:17:07 UTC

標準添付ライブラリ webrick の非ASCII 文字のファイルパスのテストでひらがなの "あ" を含むファイル名を使っていたのを、日本語環境じゃない Windows でのテストを考慮して "\u00a7" ("§" という文字)を使うようにしています。

[b3aff6a11c] git 2020-06-19 15:20:43 UTC

version.h の日付更新

[878af5147d] Jeremy Evans 2020-06-01 19:28:05 UTC

2.5 で入ったブロック引数の Proc オブジェクト生成を遅延させる変更の影響で、同じブロックの実体を使った Proc オブジェクトが同一と判定されなくなっていた不具合(?)を修正しています。むしろ、同じブロックだと同値と判定されてたのを知らなかった。 [ruby-core:84583] [Feature #14267]

[37cd877dbd] Yusuke Endoh 2020-06-19 03:43:58 UTC

branch coverage の測定用の trace 命令を生成するマクロ DECL_BRANCH_BASE() と ADD_TRACE_BRANCH_COVERAGE() を削除して、かわりに static 関数 decl_branch_base() と add_trace_branch_coverage() に書きかえています。

[4b523e79a0] Yusuke Endoh 2020-06-19 03:48:30 UTC

37cd877dbd70745c05aab7e1e155beb5ae6ad772 で関数に変更した decl_branch_base() と add_trace_branch_coverage() から冒頭の共通部分を branch_coverage_valid_p() に切り出すリファクタリング

[bc0aea0804] Yusuke Endoh 2020-06-19 03:59:47 UTC

decl_branch_base() と add_trace_branch_coverage() の引数 first_line、first_column、last_line、last_column のかわりに、それを格納した NODE を渡して中で取り出させるようにリファクタリングしています。

[50efa18c6c] Yusuke Endoh 2020-06-19 05:52:35 UTC

拡張ライブラリ coverage の branch coverage 機能による測定が ensure 節において重複する? という不具合の修正。 coverage counter の登録を compile 時の AST を辿る処理で行なわせてたのが、ensure 節の中身は 2度 traverse されるので重複していたみたいです。 ISeq 内で分岐している命令ごとに通し番号を対応させてその id で branch counter の管理をするようにしているみたいです。 [ruby-core:98844] [Bug #16967]

[a3c8ade1b3] Yusuke Endoh 2020-06-19 06:10:29 UTC

50efa18c6cf102e070ba0f95edc01c72516495a3 の branch coverage の不具合修正に対応するテストを追加しています。 [ruby-core:98844] [Bug #16967]

[e8b2578d31] Kazuki Tsujimoto 2020-06-20 02:11:50 UTC

878af5147def7fed089d3cc388742f0111db58ae で追加された proc_eq() の未使用のローカル変数の削除。

[ad156f7e2c] Jeremy Evans 2020-06-11 18:40:45 UTC

拡張ライブラリ date の Date.allocate の定義を d_lite_s_alloc_simple() から d_lite_s_alloc_complex() に変更しています。また Date#initialize の定義は削除してかわりに Date.new メソッドを直接 date_s_civil() という関数で再定義するようにしています。コミットログによると Date を Marshal.dump したものをロードしようとした時に、その Date オブジェクトの内部表現が complex タイプだとうまく再構築する方法がないということに対応するためみたいです。Date は(条件はよく知らないのですが)内部表現に struct SimpleDateData と struct ComplexDateData と二種類あって、Date.allocate が simple のほうになってると complex タイプにする方法がないからとのこと。 https://github.com/ruby/date/issues/20

[97e8b7d098] Nobuyoshi Nakada 2020-06-12 06:32:09 UTC

ad156f7e2caa28f429a9f05f3b9b184118b85432 の再修正。ad156f7e2caa28f429a9f05f3b9b184118b85432 は revert してかわりに Marshal.load 時の実装 d_lite_marshal_load() で dump されたデータが simple タイプのはずなのに表現できない情報を含んでた時に自動的に complex タイプ用の処理に移行するように修正しています。 https://github.com/ruby/date/issues/20

[b68ddcf30c] Hiroshi SHIBATA 2020-06-19 21:06:26 UTC

拡張ライブラリ date の gemspec ファイルでバージョンを 3.0.1 に更新しています。

ruby-trunk-changes 2020-06-19

今日は Hash#except メソッドの新規追加、Module に Module#prepend を使った時にその Module を既に include しているところにも影響するようにする変更、メソッド引数処理の非互換性修正、ruby 実装での組み込みメソッド実装から C 関数を呼び出すときの builtin 関数呼び出しの記法の変更/追加、拡張ライブラリ sdbm の削除など多くの修正/変更がありました。

[82ca8c7303] Timo Schilling 2019-05-04 13:37:38 UTC

Hash#except というメソッドを新規追加しています。 self から引数に渡された(複数可)キーを削除した新しい Hash オブジェクトを返すようです。無引数で呼べば dup と同様ということですね。 [ruby-core:92538] [Feature #15822]

[50c13eb718] Nobuyoshi Nakada 2020-06-18 14:00:59 UTC

50c13eb718d961c333ac832e734dae21ca7a8330 で追加した Hash#except について NEWS に追記。ついでに ENV.except も自動的に追加されるのでそれも NEWS にエントリを追加しています。 [ruby-core:92538] [Feature #15822]

[750203c514] Yusuke Endoh 2020-06-18 14:42:02 UTC

e698bf1a7f06452c9509f33e865cc9797dde15b9 の修正以降の標準添付ライブラリ webrick のファイル名の Encoding まわりの修正やテストの対応の続きで、WEBrick::HTTPServlet::DefaultFileHandler でファイルパスを force_encoding で UTF-8 にして保持しておくようにしています。うーんなるほど? (あまりうまく納得できてない)

[41582d5866] Jeremy Evans 2020-06-03 19:14:49 UTC

ある Module を include した後でその Module に別の Module を prepend した時に、その前に include しておいた Class/Module の ancestors に後から prepend した Module は反映されない、というのを修正しています。このチケット見覚えがありますね。長らく諦めてた(忘れられてた?)ようですが Module#prepend の実装に prepend 先が Module だったら対応する全 IClass にも prepend 処理を伝播させるようにして修正(?) しています。 Module#include のほうは 3556a834a2847e52162d1d3302d4c64390df1694 で修正してたのでその修正漏れという形のようですね。 [ruby-core:61117] [Bug #9573]

[6439c939db] git 2020-06-18 15:18:51 UTC

version.h の日付更新

[aae8223c70] Jeremy Evans 2020-05-28 21:59:11 UTC

キーワード引数の分離にからんで rest 引数に渡す受け取った配列ブロック引数があったら dup するようにしています。ブロック引数を渡すところでその配列を pop した場合、実際に渡される配列はその pop される前のものになってたのが、2.7 の不要な dup を抑制する変更で(そっちのほうが自然ではあるような気もしますが) pop 後のものが渡されるように変化してたのを、元の挙動に戻すためのようです。うーむ。 [ruby-core:96769] [Bug #16500] [ruby-core:96798] [Bug #16504]

[95dc9c07f3] Jeremy Evans 2020-06-11 01:53:25 UTC

900e83b50115afda3f79712310e4cb95e4508972 でクラス変数の子クラスでの上書きを警告からエラーに変更したのですが、この時警告を出す処理と同じ箇所で例外発生させるようにしてたので、$VERBOSE=true じゃないと例外が発生しないようになっちゃってたようです。なので常に例外を発生させるようにしています。 [ruby-core:85749] [Bug #14541]

[b6d6b89615] Jeremy Evans 2020-06-01 22:54:47 UTC

Refinements で freeze した Class/Module のメソッドを上書きしようとした時に FrozenError が発生するのを修正しています。 [ruby-core:71391] [Bug #11669]

[c0591b8477] Jeremy Evans 2020-06-18 15:47:02 UTC

NEWS にメソッドの引数委譲のための "..." の前後に通常引数が追加できるようになったことや $SAFE 関係の C API の削除、クラス変数の上書きがエラーになったこと、Kernel#clone の freeze キーワード引数追加、Kernel#lambda がブロック引数を受けると警告するようにしたこと、41582d5866ae34c57094f70f95c3d31f4a1fa4ff の Module#prepend も prepend 先の Module を既に include しているところにも影響するようにした修正などについて追記しています。

[26c1cf6a60] Yusuke Endoh 2020-06-18 15:53:33 UTC

標準添付ライブラリ webrick のヘッダへの改行コード混入による攻撃への耐性のテストで対象の文字列が短かすぎて偶然失敗することがあった(ホスト名に含まれてしまった)ようなので、もっと長くて偶然一致しないような文字列を使うようにしています。

[42b4234ba4] Kazuhiro NISHIYAMA 2020-06-18 15:58:50 UTC

c0591b8477edfa59bba566acbb8e0550fa31caff の NEWS.md への追記に対応するチケットへのリンクを追加。

[adbdf11f94] Jean Boussier 2020-06-18 14:01:36 UTC

標準添付ライブラリ open3 の 5429deb075beb9a2b67adae269bbac16325876d1 の修正でブロックが渡されない時にも pipe を close してしまう regression があったのを修正しています。

[343ad9eff5] Hiroshi SHIBATA 2020-06-18 12:06:20 UTC

拡張ライブラリ sdbm を削除しています。おお、ついに。

[16854c95c2] Hiroshi SHIBATA 2020-06-18 12:08:11 UTC

343ad9eff5b8e4c776c1bf193fc125f9ba1cd612 の拡張ライブラリ sdbm の削除に追随してテストやツール類のエントリも削除しています。

[70b8bdbc90] Hiroshi SHIBATA 2020-06-18 12:09:07 UTC

343ad9eff5b8e4c776c1bf193fc125f9ba1cd612 の拡張ライブラリ sdbm の削除に追随して LEGAL やドキュメント類からの言及も削除しています。

[e92a9399cc] Hiroshi SHIBATA 2020-06-18 12:11:19 UTC

NEWS に 343ad9eff5b8e4c776c1bf193fc125f9ba1cd612 の拡張ライブラリ sdbm 削除について追記しています。

[d76296d8bb] Hiroshi SHIBATA 2020-06-18 22:40:44 UTC

70b8bdbc90cb39938e1b5bae9f1abc2af91ba58b で意図せず LEGAL の行末の空白を削除していたのを戻しています。

[946fdeaddc] Yusuke Endoh 2020-06-19 01:45:13 UTC

b6d6b896159390014020caac69fa465029af5460 で追加したテストでの警告抑制のため一時的に $VERBOSE に nil をセットするようにしています。

[0d38a51ec4] Nobuyoshi Nakada 2020-06-19 03:07:05 UTC

template/exts.mk.tmpl で生成する exts.mk の distclean, realclean のターゲットで exts.mk 自体の削除も追加しています。

[1e7c0ccb0d] Nobuyoshi Nakada 2020-06-19 05:02:46 UTC

template/configure-ext.mk.tmpl および template/exts.mk.tmpl で bundled gems の展開場所が gems から .bundled/gems に移動してたのに追随しています。

[aa21a775a6] Nobuyoshi Nakada 2020-06-19 05:42:26 UTC

template/configure-ext.mk.tmpl で make configure 実行するのを extconf.rb が存在するかどうかで判定するようにしています。

[f3e081c6b6] Nobuyoshi Nakada 2020-06-19 06:35:14 UTC

拡張ライブラリのビルドプロセスまわりの変更で ext/configure-ext.mk に含まれてない拡張ライブラリをビルドしないようにしています。 sdbm の削除で判明したのを修正してるっていう感じかな。

[c8703a17ce] Nobuyoshi Nakada 2020-05-18 01:09:28 UTC

組み込みメソッドの ruby 実装から呼び出す builtin 関数の呼びかたとして receiver を __builtin として __builtin.func のように呼び出すことで関数 func の呼び出しにする記法のサポートを追加しています。なるほどー。 [ruby-core:95344] [Feature #16254]

[d863f4bccd] Nobuyoshi Nakada 2020-05-18 01:43:26 UTC

c8703a17ceedae4a72f83c962a4d098731a85dda で追加した __builtin.func 記法を利用するように既存の ruby 実装メソッド定義を書き換えています。

[49f0fd21e4] Nobuyoshi Nakada 2020-05-31 06:51:40 UTC

さらに __builtin.func ではなく Primitive.func という定数を receiver にしたかのような記法でも C 関数呼び出しにマッピングするようにしています。 [ruby-core:95344] [Feature #16254]

[63aadc237f] Nobuyoshi Nakada 2020-05-31 06:52:32 UTC

49f0fd21e468e567dc122547d516eef42c0ce0d3 で導入した Primitive.func を使うように d863f4bccdd1b5566fbdbe87af766e54b995f8af で __builtin.func に変更した ruby 実装を再度変更しています。__builtin_func と Primitive.func と __builtin.func の使い分けはどういう感じなんだろう。というか今は全て Primitive.func に統一されたみたいだけど。 [ruby-core:95344] [Feature #16254]

[daa9dcd57e] Kazuhiro NISHIYAMA 2020-06-19 11:12:49 UTC

標準添付ライブラリ webrickWEBrick::HTTPServlet::DefaultFileHandler で指定されたファイルパスが存在しない時の例外メッセージの末尾にピリオドを追加しています。

[6fe1919486] Kazuhiro NISHIYAMA 2020-06-19 11:06:26 UTC

標準添付ライブラリ webrickWEBrick::HTTPServlet::DefaultFileHandler でファイルパスを filesystem encoding ではなく root ディレクトリを指定するのに使った文字列の Encoding にそろえるように encode するように変更しています。

ruby-trunk-changes 2020-06-18

今日は主に bundler のテストの整理や opt_call_c_function という VM 命令のデフォルトのビルドでの削除などがありました。

[dd1bfbc061] David Rodríguez 2020-06-15 10:26:52 UTC

標準添付ライブラリ rdoc の不要な gem "rdoc" を削除しています。

[97819759de] David Rodríguez 2020-06-11 10:10:55 UTC

20971d0df41368e0f946683823bc786514e16fefrubygems のテストで一時ディレクトリを指定する環境変数 TMPDIR に作業ディレクトリ内の tmp を指定してたのを revert したのを再度 revert しています。つまり作業ディレクトリ直下の tmp/ を TMPDIR に設定するようにしています。

[f5459acd79] David Rodríguez 2020-06-11 15:30:45 UTC

97819759de9a3a62bb7a4c137d8aa3eb75138e04 の続きで TMPDIR 環境変数にセットする一時ディレクトリを事前に作成しておくようにしています。

[106d616cc8] David Rodríguez 2020-06-16 14:26:31 UTC

rubygems のテスト用 Gem::TestCase でバックアップしておいた $LOADED_FEATURES を戻す時に消すパスを一時ディレクトリ配下であるかどうかで判定するようにしています。

[66b0677bcf] David Rodríguez 2020-06-16 15:40:24 UTC

f5459acd79c30dbea3062e48fb2b12d510c5b868ディレクトリ作成する際に Dir.mkdir で作成してましたが、親ディレクトリがない時を考慮して FileUtils.mkdir_p に戻したり変更したりしています。

[7b5a779576] David Rodríguez 2020-06-16 11:13:47 UTC

rubygems のテストで不要な gem "rake", gem "rake/packagetask", gem "rdoc" などを削除しています。

[e0337ce597] David Rodríguez 2020-06-16 11:14:10 UTC

lib/rubygems/package_task.rb からも不要な gem "rake" を削除しています。

[967dba157c] David Rodríguez 2020-06-16 11:14:32 UTC

rubygems のテストでダミーサーバーのために使う webrick を require する時の LoadError 時の条件に openssl の require が失敗した場合は無視するようにしてたところで LoadError#path の存在チェックしてたのはもう不要なので削除しています。LoadError#path の追加は 2.0.0 からかな。

[3d8e0d8e50] David Rodríguez 2020-06-16 11:15:22 UTC

rubygems のテストで require 'rubygems/package_task' が LoadError を発生させた時に "rake/packagetask" の require で失敗してた時はエラーにせず警告を表示した上でテストクラス全体の定義をやめるようにしています。

[b1d74afd3a] David Rodríguez 2020-06-16 17:40:12 UTC

rubygems のテストでテストの高速化のため :document オプションを空配列にセットするようにしています。

[e30ff63fd4] Yusuke Endoh 2020-06-17 14:28:51 UTC

97819759de9a3a62bb7a4c137d8aa3eb75138e04 あたりからの変更で rubygems のテストで TMPDIR にローカルのパスを入れるようにした結果一時ファイルパスが長すぎてテストが失敗することがあるので、そのような時は skip するように対象のテストを修正しています。

[e544a3a23c] Takashi Kokubun 2020-06-17 16:16:01 UTC

VM 命令 opt_call_c_function という命令は現在使用されていないので OPT_SUPPORT_CALL_C_FUNCTION というマクロを定義しないとコードが有効にならないようにしています。 https://github.com/ruby/ruby/pull/3232

[41a4c80d28] git 2020-06-17 16:16:21 UTC

version.h の日付更新

[cc46d514dc] Nobuyoshi Nakada 2020-06-17 14:22:37 UTC

common.mk の ext/extinit.c の作成に miniruby が必要なので、関連するターゲット $(PREP) を依存関係に追加しています。

[e14cba354c] Nobuyoshi Nakada 2020-06-17 23:59:47 UTC

Exception#exception メソッドの rdoc 用コメントの call-seq で引数は省略可能なのでそのように表記を修正しています。

[957825639c] Nobuyoshi Nakada 2020-06-18 00:00:34 UTC

特異メソッドのほうの Exception.exception を、Exception の特異クラス内で new への alias として定義するように変更しています。が、後に revert されています。

[2d817e0564] Yusuke Endoh 2020-06-18 00:11:02 UTC

93e6fa1d319d19ce7fba37e4b9924862447b9f38 で追加した webrick のテストではマルチバイト文字を含むファイル名がうまくリクエストのパスにエンコードできてなかったようで UTF-8 の文字列から String#encode で変換して %-encoding したものを使ってみるようにしています。

[35a6741816] Yusuke Endoh 2020-06-18 00:19:43 UTC

957825639c1422777c09578d4a03adf571eac55d を revert しています。ドキュメントのみの変更じゃないのに [ci skip] を使うな、とのこと。

[bed17974a1] Yusuke Endoh 2020-06-18 00:37:54 UTC

2d817e05649d4cc7f3be7185be4bc016ee836e07webrick のテスト修正の追加修正。 filesystem encoding が US-ASCII または ASCII-8BIT の場合は変換に失敗するので、UTF-8 の文字列をそのまま渡すようにしてみています。

[82354afbf9] Yusuke Endoh 2020-06-18 00:40:44 UTC

bed17974a1563852c3d1d2b7b24033ed0beaa33e の再修正。不要なローカル変数が導入されてしまっていたので削除しています。

[5755397064] Yusuke Endoh 2020-06-18 01:18:32 UTC

bed17974a1563852c3d1d2b7b24033ed0beaa33e の再再修正。 String#encode が Encoding::UndefinedConversionError を発生させた時に無視するようにしています。 "\u3042" って "あ" だと思うけど、CI 環境の filesystem encoding が Windows-1252 で Latin 系の文字エンコーディングなので変換できないのか。

[cf1ee151b1] Nobuyoshi Nakada 2020-06-18 02:29:56 UTC

別の webrick のテストで Windows での short filename でのアクセスのテストのために dir コマンドの出力を読み取るところで開く pipe のモードを binary モードにしています。

[a447563cf8] Nobuyoshi Nakada 2020-06-18 00:00:34 UTC

957825639c1422777c09578d4a03adf571eac55d で Exception.exception を alias にした時に Exception.new の rdoc 用コメントに Exception.exception も call-seq に追加してましたが、今度はこのドキュメントの変更のみ入れてます。

[f8f3f11ed5] David Rodríguez 2020-06-07 11:07:27 UTC

bundler の依存関係解決のコードで nil を考慮していなかった不具合の修正。

[94fc709dd1] David Rodríguez 2020-06-07 11:23:10 UTC

bundler のテストで使うダミーの gem 名を変更しています。

[8c686475c8] David Rodríguez 2020-06-06 16:27:42 UTC

bundler のテストで bundle install の --path オプションの指定のかわりに bundle config で設定する方法を使うようにしています。

[b0f07aff0b] David Rodríguez 2020-06-06 16:34:34 UTC

bundler のテストでバージョンによる実行有無の指定を間違えてたのを修正しています。

[acd82bd923] David Rodríguez 2020-06-06 16:41:41 UTC

bundler のテストで cache ディレクトリの再構成のチェックを、削除される操作の前に存在することもチェックするようにして、漏れてた build_lib の実行を追加しています。

[a8f9a97d49] David Rodríguez 2020-06-06 20:29:56 UTC

bundler のテストケースを1つ削除しています。無意味なテストだったらしい。

[6aafea2d99] David Rodríguez 2020-06-07 12:00:59 UTC

bundler のテストで無意味な gemspec ファイルの生成を削除。

[cceb77f57b] David Rodríguez 2020-06-07 12:16:42 UTC

bundler のテストでダミーの gemspec ファイルの内容を install_gemfile に渡して bundle install させてたのを gemfile に渡して冗長な? コマンド実行を削っています。

[66b327af56] David Rodríguez 2020-06-07 12:23:45 UTC

bundler のテストで冗長なサブコマンド実行を削除。

[8d7ed194cb] David Rodríguez 2020-06-07 12:54:36 UTC

bundler のテストで install_gemfile を使ってたところが冗長だったので gemfile を使うように更新。また冗長な bundle update --ruby の実行を削っています。

[9939f4ad43] David Rodríguez 2020-06-07 13:05:28 UTC

他にも bundler のテストで install_gemfile のかわりに gemfile メソッドを使って余計な bundle install を削るようにしています。

[5454415750] David Rodríguez 2020-06-07 13:28:16 UTC

bundler のテストでも余計な bundle install が走らないように(たぶん) build_gem のオプションを変更しています。

[974c40c842] David Rodríguez 2020-06-07 13:54:38 UTC

bundler のテストで .bundle/ が書き込み不可能だった時のテストで bundle config set で .bundle をインストール先として指定しておくようにしています。

[5d78fb1c9a] David Rodríguez 2020-06-07 14:18:01 UTC

bundler のテストで bundler 3 でなくなるらしい bundle install の --deployment フラグを使ってるところを bundle config set に置き換えています。なくなるのかー。

[529a9e8a1f] David Rodríguez 2020-06-07 15:58:40 UTC

bundler のテストで子プロセスで bundler を require する時のパスが間違ってたものを修正。インストール先のものを require してしまってたってことかな?

[61b6f53337] David Rodríguez 2020-06-03 16:43:17 UTC

bundler のテストで使ってた bundle コマンドを実行するヘルパーメソッド bundle のキーワード引数 :raise_on_error のデフォルト値を true に変更してエラー時に例外が発生するようにしています。それで困る箇所には明示的に raise_on_error: false を渡すようにしています。

[9be1baedbc] David Rodríguez 2020-06-07 12:59:32 UTC

もう一箇所 bundler のテストで install_gemfile のかわりに gemfile を使って余計な bundle install を抑制しています。

[cc059b16b2] Hiroshi SHIBATA 2020-06-11 12:54:04 UTC

bundler の bundle gem による自動生成ファイルテンプレートに Cicle CI でのテスト用の設定ファイルや GitLab CI 用の設定ファイルなどを追加しています。

[6f9faa66fa] Colby Swandale 2020-02-09 02:13:01 UTC

bundler の gem 生成時のメッセージの修正。

[3a2016b994] Andre Arko 2020-03-08 03:41:42 UTC

bundler の bundle gem サブコマンドでの CI 設定の反映のリファクタリング

[b46895aa93] Frank Lam 2020-05-28 07:21:04 UTC

bundler のテストに CI 設定関係のテスト用の shared_example を追加。

[25ac5b3606] Frank Lam 2020-05-28 07:25:01 UTC

bundler のテストで bundle gem 結果に .travis.yml が存在しないことを確認してたコードを削除しています。

[0d3c185b59] Frank Lam 2020-05-28 07:32:00 UTC

bundler のテストで bundle gem の結果に .travis.yml が存在しないことを確認する shared_example とその利用箇所を削除しています。

[e6479ac3f6] Frank Lam 2020-05-28 07:37:05 UTC

bundle gem の CI の選択についてのテストを test framework 選択のテストの中にネストさせるように移動しています。

[52a900773e] Frank Lam 2020-05-28 09:48:15 UTC

bundler の CI 関係のメッセージやテストの説明文の typo 修正。

[760edb3743] Frank Lam 2020-05-29 14:37:45 UTC

bundler のテストの context の説明文の typo 修正。

[27e07cd34f] Frank Lam 2020-05-29 14:40:16 UTC

bundler のテストで追加された CI 関係の設定の設定ファイルでのデフォルト値を追加しています。

[a80a5706b1] Frank Lam 2020-05-30 03:30:01 UTC

lib/bundler/cli.rb の余計な空白除去。

[8e3136a03b] Frank Lam 2020-05-30 09:06:57 UTC

bundler の bundle gem での test framework と CI の設定のヘルプメッセージに選択肢を全て表示するように変更。

[a476d67f35] Frank Lam 2020-05-30 09:22:34 UTC

bundler の man ページに CI 用の設定について追記。

[fedd3201f3] Frank Lam 2020-05-31 06:07:24 UTC

a476d67f3503978e6f265ed921401d3625cd2372 の bundler の man ページへの追記のオプション名間違い修正。

[091daaa715] Frank Lam 2020-05-31 06:58:16 UTC

bundle gem のメッセージを少し短くしています。

[0ba2f3e8a9] Frank Lam 2020-06-02 00:59:53 UTC

bundler で bundle gem で CI 関係の設定が設定ファイル経由で指定された時のメッセージの出力タイミングを実際に生成する時までずらしています。実際には出力されなくて結果的に出力されないというケースがあるみたい。

[f6c8ca0359] Frank Lam 2020-06-02 20:09:47 UTC

同じく bundle gem で test framework についてのメッセージを実際に生成するタイミングまで遅延しています。

[1a9a4f962e] Frank Lam 2020-06-03 14:00:17 UTC

bundler のテストで bundler のバージョンを参照するのに使ってた定数名が間違ってたのを修正。

[a1a5973daa] Frank Lam 2020-06-03 14:06:03 UTC

bundler のテストでヘルパーメソッド bundle のかわりに bundle! を使うようにしています。さっき 61b6f53337cb71b35c56d480ec6044ba7e85cb71 で bundle でエラー時に例外発生するようにしてたけど、bundle! というのもあったのでそっちを使うようにしてもよかったっぽい?

[90f3591744] Frank Lam 2020-05-30 03:29:31 UTC

bundler の bundle gem で生成する CI 用の設定ファイルで bundle install の --jobs オプションを削除(Bundler 3 で自動で job 数を決めるようになるらしい)。

[9292313e0c] Frank Lam 2020-06-02 01:08:09 UTC

bundler の bundle gem で生成する GitHub Actions 用設定で利用する setup-ruby プラグインruby/setup-ruby@v1 を使うように更新しています。

[1cb88eb2ba] Frank Lam 2020-06-02 20:02:48 UTC

bundler の bundle gem で生成する CI 用設定ファイルのテンプレートのファイル名を .travis.yml.tt に変更しています。古い travis.yml というファイルがまだ残ってますね。

[481840ff18] Frank Lam 2020-06-02 20:26:57 UTC

bundle gem で生成する CI 用設定ファイルのテンプレートでデフォルトで実行するタスクを bundle exec rake にしてタスクを明示しないようにしています。

[1436b5026c] David Rodríguez 2020-06-03 18:45:36 UTC

bundler のテストで使うヘルパーメソッド bundle で既にデフォルトでエラー時に例外発生するようにしちゃったので bundle! を使ってるところも bundle を使うように変更しています。

[696a50751b] David Rodríguez 2020-06-03 18:46:03 UTC

同じく install_gemfile! を使ってたところも既にデフォルトでエラー時に例外発生するようになってるので install_gemfile を利用するように変更しています。

[a572e78201] David Rodríguez 2020-06-03 18:46:54 UTC

同じく bundler のテストで gem_command! を使ってたところも gem_command を利用するようにしています。

[596588c697] David Rodríguez 2020-06-03 18:47:59 UTC

同じく bundler のテストのヘルパーメソッド ruby! を使ってるところも ruby を使うように変更しています。

[ea4824ee0f] David Rodríguez 2020-06-03 18:48:46 UTC

同じく bundler のテストのヘルパーメソッド run! を使ってるところも run を使うように変更しています。

[77df7ccc10] David Rodríguez 2020-06-03 18:50:27 UTC

1436b5026cd1b2ac4b428955aeadaac8e8b12b1b から ea4824ee0ffcea5fcfacfe40b4f399efe310455a までの変更で使わなくなった bundle! などの ! つきのbundler のテストのヘルパーメソッドの定義を消しています。

[9cc7847849] David Rodríguez 2020-06-03 18:46:35 UTC

先に定義を消しちゃってましたが同じく bundler のテストのヘルパーメソッド sys_exec! を使ってるところも sys_exec を使うように変更しています。

[be2dbfc5b5] Hiroshi SHIBATA 2020-06-11 13:36:58 UTC

1cb88eb2ba04a5e23f7e6827e81654e87af771ca で消し忘れてた lib/bundler/templates/newgem/travis.yml.tt を削除しています。あれー、でも今の master では存在してるな……と思ったらこのあとまた rename したみたいです。

[30f9fbdce8] David Rodríguez 2020-06-04 16:30:11 UTC

bundler の bundle install の --no-cache オプションが deprecated にされてたのを revert しています。

[f9de8ccf1e] David Rodríguez 2020-06-16 10:29:57 UTC

1cb88eb2ba04a5e23f7e6827e81654e87af771caf9de8ccf1e26c9774cd1ebdb587b8edbb08b4d7b で bundle gem で生成する .travis.yml のテンプレートファイル名変更していましたが、CI 用設定ファイルのテンプレートファイル名は先頭に "." がつかないファイル名を使うように全体的に改名しています。

[d9c888d394] Utkarsh Gupta 2020-06-16 13:37:21 UTC

bundle gem で rubocop 用の設定ファイルを生成するようにしています。

[ec98d56153] Utkarsh Gupta 2020-06-16 12:36:48 UTC

bundle gem で常に? .rubocop.yml を生成するようにしているようです。

[22ee047f73] Utkarsh Gupta 2020-06-16 13:37:21 UTC

という ec98d5615360c33fa2419b22cf2ac7d1834d9c18 (bundle gem で常に .rubocop を生成する)は revert しています。

[414b1485d6] David Rodríguez 2020-04-16 19:01:58 UTC

bundler のテストで環境変数 PATH にパスを追加するのに常に ":" で結合してたのを File::PATH_SEPARATOR を参照するようにして環境の差を吸収するようにしています。

[f217faf1da] David Rodríguez 2020-06-14 17:42:31 UTC

bundler のテストで Windows 環境で skip しているもののメッセージに説明を増やしています。

[5f8ee14b9b] David Rodríguez 2020-06-14 16:21:09 UTC

bundler のテストで Gemfile の gem の :git オプションに渡す URI としてローカルのパスを渡す時明示的に file scheme を使わせるようにしているようです。 Windows 環境ではファイルパスにドライブレターが含まれてそれを URI に渡すと scheme として解釈され得るので、ということみたいです。

[7aa6fec45f] David Rodríguez 2020-06-12 16:29:34 UTC

bundler で恒に true を返していて意味がなくなってたメソッド can_install_in_parallel? というのを削除しています。

[c5ee078c5f] David Rodríguez 2020-06-12 16:47:53 UTC

bundler で Windows 環境での bundle install の並行ジョブ実行を無効にするようにしています。

ruby-trunk-changes 2020-06-17

今日は標準添付ライブラリ shellwords の例外メッセージの修正や、Struct のメソッドの実装に invokebuiltin 命令を使うようにする変更(のリトライ)などがありました。

[68e4310344] Akinori MUSHA 2020-06-16 14:15:51 UTC

標準添付ライブラリ shellwords の rdoc 用コメント内のサンプルで cat コマンドを起動する時のコマンドラインにファイル名との間に "--" を入れるようにしています。オプションが終了したことを明示するための記法だと思います。また同じくサンプルで grep を起動してるところでパターンをオプション -e を使って指定するようにしています。Shellwords.escape しても外部からの入力をコマンドに渡すのは安全ではないよということも追記しています。そりゃそうだ。

[b877928ca5] Akinori MUSHA 2020-06-16 14:23:13 UTC

標準添付ライブラリ shellwords の Shellwords.split の rdoc 用コメントのサンプルで発生する ArgumentError のメッセージを修正しています。

[eaf76be087] "S.H" 2020-06-16 17:13:54 UTC

numeric.c の rb_int_odd_p() および int_even_p() で引き数が T_FIXNUM でない時は T_BIGNUM のはずということで else if の条件部を削ってかわりに assert() でチェックするようにして、どっちでもなかった時の rb_funcall() で "%" メソッド呼び出しに fallback するパスを消しています。ふーむ。 `Integer.instance_method(:odd?).bind(foo).call` みたいなので落とせないかなと思ったけど foo が Integer を継承したクラスのインスタンスじゃないといけないので普通だと T_FIXNUM/T_BIGNUM 以外のタイプのオブジェクトは作れなさそう。 https://github.com/ruby/ruby/pull/3220

[b50e74b4f8] git 2020-06-16 17:14:20 UTC

version.h の日付更新

[4dba8b4027] Alan Wu 2020-06-16 21:45:45 UTC

Moduel を include した時に作られる IClass を作成する rb_include_class_new() で引き数の module は T_ICLASS ではないはずということで、分岐してたところを RUBY_ASSERT() によるチェックに変更しています。

[b06d7c5521] Koichi Sasada 2020-06-16 22:18:35 UTC

iseq.c の rb_iseq_new_with_callback() で RubyVM::InstructionSequence.translate というメソッドが定義されてたらそれを通して ISeq の書き換えに対応するための iseq_translate() を通してから返してましたが、rb_iseq_new_with_callback() という関数ではこれは不要として削ってます。

[ccb7a4b9f2] Nobuyoshi Nakada 2020-06-15 01:00:12 UTC

318d52e820c9ed1bc4c12aa97af49a89953649bc で revert した 19cabe8b09d92d033c244f32ff622b8e513375f1 の Struct のメソッド実装に invokebuiltin を使うようにした変更のリトライ。内容は全く同じみたいですね。

[af6e63a9df] 卜部昌平 2020-06-17 00:58:35 UTC

proc.c の rb_method_name_error() で T_MODULE/T_CLASS の時の s への代入がその後 goto で移動した先ですぐ再代入されるので無意味だったので削っています。

[7325bed2b4] Kazuhiro NISHIYAMA 2020-06-17 03:08:34 UTC

標準添付ライブラリ webrickWEBrick::HTTPServer のテストでエラー時に Encoding.find("filesystem") の値をエラーメッセージに埋め込むようにしています。 e698bf1a7f06452c9509f33e865cc9797dde15b9 の修正時に追加したテストがうまくいなかったみたいで CI でのデバッグのため。