ruby-trunk-changes 2022-11-28

今日は MJIT の実装の大きな方針変更や cgiCookie の domain に許容する文字列の修正などを含むたくさんの変更がありました。

[1b67c58f41] Nobuyoshi Nakada 2021-12-08 14:48:12 UTC

標準添付ライブラリ rdoc の C と ruby のパーサーのタブの処理する部分を共通化してメソッドに切り出しています。

[511864d1a7] Nobuyoshi Nakada 2021-12-08 15:10:33 UTC

標準添付ライブラリ rdoc のマークアップをパースするための正規表現を変更しています。よく読めてませんが中間オブジェクトを抑制して効率良くするためみたいです。

[ae3817bc61] nick evans 2022-11-16 19:07:18 UTC

標準添付ライブラリ rdoc の生成する HTML のテンプレートを変更してサイドバーのツリーの HTML 構造を変更しているようです。

[29862ce273] nick evans 2022-11-16 19:11:08 UTC

標準添付ライブラリ rdoc の HTML テンプレートでメソッド一覧のリストの HTML 構造をひとつネストさせています。

[21977b95e2] Nobuyoshi Nakada 2022-10-05 11:07:02 UTC

標準添付ライブラリ rdoc のマークアップの parser をリファクタリングしていますが、エラーになってたので次で revert されています。

[5b1db79129] Nobuyoshi Nakada 2022-11-27 19:19:01 UTC

21977b95e238da08ee2dc50fe5a908f11feb130c の rdoc の変更でビルド時のドキュメント生成でエラーになってたので revert しています。

[03b96319b4] Takashi Kokubun 2022-11-27 21:02:42 UTC

標準添付ライブラリ rdoc のテストで ae3817bc61cb320524f153e82eb5eee752188a12 によって CI でエラーになっているものがあったので一時的に skip するようにしています。

[62476dd268] Takashi Kokubun 2022-11-27 21:12:29 UTC

GitHub Actions の MJIT のテストのための workflow でコマンドラインオプションに --mjit と --mjit-wait とどちらかを付けたテストを流していたのを --mjit-wait のほうだけ流すようにしています。

[f93ae96b0e] Takashi Kokubun 2022-11-27 21:32:39 UTC

GitHub Actions の MJIT のテストのための workflow で make test-all の実行するアクションをコメントアウトしています。

[2a6dfb1cbb] Takashi Kokubun 2022-11-27 21:43:43 UTC

MJIT で fork で子プロセスを起動してそこからコンパイラ起動するようにしていたのを実装のシンプルさのために直接起動するようにしているみたいです。

[e3de723043] Takashi Kokubun 2022-11-27 22:50:10 UTC

lib/mjit/compiler.rb のコメントの削除や Module#private の呼び出し位置の変更など。

[595f3063f0] StepSecurity Bot 2022-11-25 11:14:05 UTC

StepSecurity という bot により GitHub Actions の workflow に permissions という設定が追加されています。

[0096d99eff] git 2022-11-28 02:57:48 UTC

gems/bundled_gems と NEWS の rbs のバージョンが 2.8.1 に更新されています。

[1a744417f2] Soutaro Matsumoto 2022-11-28 03:31:17 UTC

コミットログから察するに 0096d99effc4b0a9c2209d6c1312aadab8a5a79c と同じ gems/bundled_gems の rbs のバージョン更新みたいですが空のコミットになっています。

[98074a57ca] Hiroshi SHIBATA 2022-11-28 03:34:34 UTC

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

[1612d57691] git 2022-11-28 03:35:19 UTC

98074a57ca9f3169fe9da9af6c49b636d37db16f に追随して NEWS の default gems のバージョンリストの cgi のバージョンも更新しています。

[745dcf5326] Xenor Chang 2022-11-28 04:34:06 UTC

標準添付ライブラリ cgic05f85f373ed48594d9bf08e11ae0c84c06062f7 で domain の内容のチェックが厳しくなった時に先頭が "." の domain も拒否されるようになっていましたが、古い RFC (2109) ではこれは許容されていた(新しい RFC-6265 でも先頭が "." の時は無視することという特記事項があったので許容されていた)ので通すように変更しています。 [ruby-core:111022] [Bug #19153]
https://github.com/ruby/cgi/pull/29

[e0901f46b7] Sven Riedel 2022-11-28 04:36:26 UTC

標準添付ライブラリ rdoc のコマンドラインオプションに --no-skipping-tests というのを追加しています。テストのファイルからもドキュメントを作れるようにしているみたいです。そんなことあるのかな。

[b335d899ff] Hiroshi SHIBATA 2022-11-28 04:39:16 UTC

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

[529e58d610] git 2022-11-28 04:41:36 UTC

b335d899fff3cc22b022c9ee2ceb636d714bf1a7 の変更に追随して NEWS の default gems のバージョンリストの cgi のバージョンも更新しています。

[833545a211] Kazuhiro NISHIYAMA 2022-11-28 04:57:50 UTC

NEWS のチケット参照をリンクにするための footnote の順番をチケット番号で並べかえています。

[6d26f78f68] Takashi Kokubun 2022-11-27 23:42:18 UTC

tool/mjit/bindgen.rb で最初に .cache/clangd というディレクトリがあれば削除しておくようにしています。

[6844bcc6b4] Takashi Kokubun 2022-11-27 23:15:52 UTC

YJIT および MJIT の生成する C コードで JIT コンパイル用の C コードを fprintf() で書き出すようにしてたのを String オブジェクトを渡してに文字列として追加するようにしています。これよくわかってないですけど YJIT の Rust 実装にも binding 部分のみ変更がありますけど YJIT でも C のコード生成を使ってるのかな?

[a22c684c59] Takashi Kokubun 2022-11-28 05:41:53 UTC

MJIT の invokebuiltin、opt_invokebuiltin_delegate、opt_invokebuiltin_delegate_leave 命令の実装で共通部分を括り出すリファクタリング

[880e8fd1f9] Takashi Kokubun 2022-11-28 05:48:13 UTC

Regexp#initialize の timeout のテストで CI で失敗することがあるのでタイムアウトをのばしています。

[87e7b640eb] Takashi Kokubun 2022-11-28 06:14:48 UTC

mjit.rb の警告抑制のためメソッド呼び出しの最初が rest 引数の時に明示的にかっこでくくるようにしています。

[2c1c0d3df0] Takashi Kokubun 2022-11-28 06:23:35 UTC

6844bcc6b4cdc50def1c0d30d4e8b5045fb43443 と同様に MJIT の C のソースコード生成時にファイルポインタに対して fprintf() で書き出していたところを文字列オブジェクトに追加していく方式に変更しています。

[168b0e1f02] Takashi Kokubun 2022-11-28 06:48:18 UTC

Process.waitpid で子プロセスが SIGPIPE を受け取った時のテストのタイムアウトをのばしています。

[1d1200555f] Takashi Kokubun 2022-11-28 07:05:56 UTC

MJIT の mjit_wait() で待つべきプロセスの pid が 0 だった時に処理が止まってしまわないように警告を出してスキップするようにしています。

[fb599523cd] Takashi Kokubun 2022-11-28 07:29:43 UTC

lib/mjit/compiler.rb の rdoc 用コメント? の修正。

[5a171ee4c0] Nobuyoshi Nakada 2022-11-28 05:49:40 UTC

tool/sync_default_gems.rb の全体をモジュールとして定義して tool/test/test_sync_default_gems.rb にこのツールのコミットログの変換まわりのテストを追加しています。

[93e87c0217] Nobuyoshi Nakada 2022-11-28 05:50:20 UTC

tool/sync_default_gems.rb のコミットログの変換で Co-Authored-By ヘッダが複数あった時の対応を追加しています。

[ccd8dd6ad3] Takashi Kokubun 2022-11-28 07:40:41 UTC

MJIT の ruby 実装部分の RubyVM::MJIT::Compiler を Module から Class にしています。 Solargraph という ruby の Language Server Protocol の実装でうまく認識されるようにするためだそうです。

[b033775ed9] Takashi Kokubun 2022-11-28 07:58:04 UTC

MJIT の C binding の mjit_c.rb で RubyVM::MJIT::C が既に定義済みの時だけモジュール定義するようにしています。しかしこのファイル内で RubyVM::MJIT::C は代入しているみたいなので、常に入らなくなる(または C は再代入される)ようにみえますがいいのかな?

[8e18761da1] Takashi Kokubun 2022-11-28 08:13:09 UTC

ccd8dd6ad395bbd9f5290e0fcb7929e5e5d36767b033775ed9d9226ba73c1d4a197e55ba89575142 の MJIT 関係の変更をテストが失敗したとのことで revert しています。

[906a2f067d] Nobuyoshi Nakada 2022-11-28 08:13:39 UTC

tool/sync_default_gems.rb で 5a171ee4c05c0ed20ac4b4632e54b23717d5fe16 で Module 化したので FileUtils の extend も追加しています。

[8bac8772df] Hiroshi SHIBATA 2022-11-28 07:50:41 UTC

GitHub Actions の workflow に permissions の設定を追加しています。 595f3063f01ce25122b6d1ae452720b0ec58e86d で StepSecurity がしたのと同様の変更ですが一部の workflow しか変更してくれなかったようなので残りも手動で追加したみたいです。

[d72f6749cb] Nobuyoshi Nakada 2022-11-28 08:24:49 UTC

tool/sync_default_gems.rb の module 文を追加した時にインデントはさせていなかったのでインデント追加しています。

[6559ba3b5c] Nobuyoshi Nakada 2022-11-28 10:28:50 UTC

tool/sync_default_gems.rb のコミットログの変換のための正規表現で文字クラスに \s と \t を書いてるところがありましたが \s はスペースだけでなくタブも含む空白文字類を意味するため重複していたのでスペースに変更しています。

[ee11090b28] Nobuyoshi Nakada 2022-11-28 10:37:59 UTC

tool/sync_default_gems.rb で upstream のリポジトリのデフォルトブランチ名の指定に対応するようにしています。