ruby-trunk-changes 2021-10-29

今日は RubyVM::InstructionSequence の mark 関数の mark 漏れの修正や rubygems と bundler に標準添付ライブラリの tsort を vendoring する変更などがありました。

[0a9cbe8562] Nobuyoshi Nakada 2021-10-28 15:02:07 UTC

GitHub Actions で doc/ や *.md, *.rdoc などドキュメントのファイルのみの変更の時にはビルドしないように条件を追加しています。

[3bf36979d8] git 2021-10-28 15:28:34 UTC

version.h の日付更新

[c75df796d8] Benoit Daloze 2021-10-28 16:54:01 UTC

rubyspec に最新版を upstream からマージしています。

[acb2f86caa] Yusuke Endoh 2021-10-28 16:57:29 UTC

struct RString の flags のビットフラグの内訳についてのコメントに STR_TMPLOCK、STR_NOFREE、STR_FAKESTR について説明を追記しています。

[cbf2078a25] Koichi Sasada 2021-10-28 16:10:32 UTC

RubyVM::InstructionSequence の GC mark 用関数で struct rb_iseq_constant_body::variable.script_lines の mark 処理を追加しています。最近追加された項目で mark が漏れていたようです。

[d8e97169ba] David Rodríguez 2021-10-27 20:15:31 UTC

bundler の Bundler.rubygems.spec_from_gem の呼び出しの例外を rescue しているところで広く StandardError を rescue していたのを Gem::Package::FormatError だけ rescue するようにしています。

[e53d07f583] Alan Wu 2021-10-27 20:10:25 UTC

YJIT モジュールを RubyVM::YJIT に移動しています。

[f8bbd608c9] Burdette Lamar 2021-10-28 20:11:11 UTC

Numeric のいくつかのメソッドの rdoc 用コメントの手直し。 https://github.com/ruby/ruby/pull/4994

[9b751db99c] Nobuyoshi Nakada 2021-10-28 16:03:29 UTC

RubyVM::InstructionSequence のバイナリフォーマットからのロード時に元のスクリプトの内容を保持する script_lines のクリアをするように修正しています。

[3e743d3147] Burdette Lamar 2021-10-28 22:01:49 UTC

String の rdoc の空行の追加や call-seq のちょっとした修正など。 https://github.com/ruby/ruby/pull/5050

[96648c5093] Nobuyoshi Nakada 2021-10-29 01:31:03 UTC

GitHub Actions の macOS, MinGW, ubuntu でのテスト実行のステップのタイムアウトを少し伸ばしています。

[92ad520ad0] Nobuyoshi Nakada 2021-10-28 09:18:43 UTC

GitHub Actions の YJIT 用の workflow のうち macos での実行については .github/workflows/macos.yml のステップの一部に取り込んでいます。 GitHub Actions の macOS 環境は並列実行の上限が厳しいみたいなので一緒にしたほうが全体として効率的になるみたいです。

[c1228f833c] Yusuke Endoh 2021-10-28 16:58:15 UTC

定数の inline cache の invalidation 用の通し番号 ic_serial を 32bit 環境でメモリアライメントを守ったアクセスになるように共用体を使って専用の関数を導入してこれを経由して操作するようにしています。

[ffd8592ebc] Kazuhiro NISHIYAMA 2021-10-29 01:58:37 UTC

NEWS の typeprof のバージョンを更新しています。

[27220b2fe4] Nobuyoshi Nakada 2021-10-29 02:04:39 UTC

.github/workflows/codeql-analysis.yml も 0a9cbe8562d9a58ec129b34a5bfda20cee3283df と同じくドキュメントのファイルのみの変更の時には実施しないようにしています。

[2a90ad7aa5] Frederik Dudzik 2021-10-22 17:28:30 UTC

bundler のテストからデバッグ用のコードが入ったままになってないかのチェックなどのテストを削っています。そういうのは rubocop とかでやれということみたいですね。

[79f9053599] David Rodríguez 2021-10-27 21:46:14 UTC

bundler のテストで 2.7.0 以前は skip するようにしていたテストを 2.6.0 以前を skip するようにして 2.7 をテスト対象にしています。よくわかりませんが最新版の 2.7 では大丈夫になったみたいです。

[a9be84db82] Josef Šimánek 2021-10-23 21:57:08 UTC

bundler のテストで default gems についてのテストに error_highlight と ruby2_keywords を対象に追加しています。

[f45af5f0a4] Frederik Dudzik 2021-10-19 19:35:35 UTC

bundler に tsort を標準添付ライブラリから bundler 内部に vendoring しています。 tsort の gem 化のために必要だったとのこと。

[17fb785d15] Frederik Dudzik 2021-10-21 19:23:08 UTC

f45af5f0a427a85fd157bbb1461a7dc33d30eb1b と同様に rubygems にも tsort を rubygems 内に vendoring するようにしています。こっちもかー。これも tsort の gem 化のために必要ということみたいです。

[fd17ae8205] Josef Šimánek 2021-10-23 21:15:14 UTC

bundler のテストで生成する gemspec ファイルに書かれる racc の依存バージョンを新しくしています。ruby に標準添付されている racc のバージョンが 1.6 になったのでって書いてあるけど、更新後は ~> 1.5.2 になっていて、これでいいんだろうか。

[b179166421] Josef Šimánek 2021-10-23 21:30:35 UTC

bundler のテストで例外メッセージを文字列で完全一致するかテストしていたのを正規表現で条件を緩めるようにしています。 error_highlight が有効な時にメッセージが追加されるのでそれを許容するためみたいです。

[0029e0948a] Josef Šimánek 2021-10-25 17:17:00 UTC

bundler のテストで default gems の扱いのテストの依存関係に stringio を追加しています。元は net/http 経由で依存してたので明示する必要がなかったけど必要になったとのこと。

[9b7afd3cff] Josef Šimánek 2021-10-25 19:00:23 UTC

budler のテストで接続エラーのメッセージをチェックしているところで少しチェックする範囲を狭くして許容するようにしています。ruby のバージョンによるメッセージ(例外)の差異を吸収するためのようです。

[71b370f6dd] Josef Šimánek 2021-10-25 23:20:12 UTC

bundler のテストで生成する Gemfile に ruby2_keywords を追加して環境変数 BUNDLE_FORCE_RUBY_PLATFORM を設定するようにしています。しかし、この BUNDLE_FORCE_RUBY_PLATFORM という環境変数、現在は検索してもドキュメントとこのテストにしか登場しないのでなにも効力はなさそう。

[0ad57158c7] Nobuyoshi Nakada 2021-10-29 08:30:46 UTC

Proc#isolate のテストで不正な変数参照してたら ArgumentError 例外を発生させるのを確認するテストで、不要なのに Proc#call もするようになってた(Proc#isolate を呼ぶ時点で例外になるはず)のを削除しています。

[ec2e04c90d] Nobuyoshi Nakada 2021-10-29 08:34:09 UTC

Proc オブジェクトにブロック外の変数の参照がないかチェックするコードが Ractor.make_shareable と Proc#isolate の実装の 2箇所に記述されてたので proc_shared_outer_variables() という関数に切り出して共有するようにリファクタリングしています。また変数名をエラーメッセージに埋め込む時にその Encoding 保持するようにしています。