ruby-trunk-changes 2022-10-18

今日は拡張ライブラリ openssl, fiddle の更新、bundler と rubygems の更新、YJIT の修正などがありました。

[e037731c9f] Ben Toews 2022-10-17 13:30:30 UTC

拡張ライブラリ openssl の ossl_bn_mod_inverse() という関数の定義を BIGNUM_2cr() というマクロで ossl_bn_xxxx() と suffix の部分を変更して関数定義できるマクロを定義してこれを使うリファクタリング。たぶんこの後 ossl_bn_xxx() という関数群が追加されるのでしょう。

[149cb049f1] Ben Toews 2022-10-17 13:31:40 UTC

ということで拡張ライブラリ openssl で e037731c9f840b0c74eb68a808a109fdef3c6d5e で追加した BIGNUM_2cr() マクロを使って ossl_bn_mod_sqrt() という関数を定義して OpenSSL::BN#mod_sqrt メソッドを追加しています。うーんでもこれ rdoc がメソッド名とその実装している関数を関連付けることができないのでは、と思ったけど Document-method: タグを明示することでそれを防いでいます。

[7db29de008] Ben Toews 2022-10-17 13:58:04 UTC

ということで拡張ライブラリ openssl で e037731c9f840b0c74eb68a808a109fdef3c6d5e でマクロ経由の関数定義にした ossl_bn_mod_inverse() の rdoc 用コメントにも Document-method: タグを追加しています。

[60defe0a68] Jean Boussier 2022-10-06 13:53:16 UTC

Thread::Queue#pop などに最近追加されたキーワード引数 timeout に 0 を指定した時に要素がなかったらすぐに処理を戻すという挙動について追記しています。コミットログをみるに例外発生を抑制する exception キーワード引数の追加をしようかと思ったけど timeout: 0 で代替できるのでそれをドキュメンテーションしておこうということみたいです。 [ruby-core:109756] [Feature #18982]

[07a93b1e37] Tatsuya Kawano 2022-10-17 16:26:36 UTC

YJIT の C 側の実装で mprotect(2) を呼ぶ時にメモリ領域のサイズが 0 だとエラーになることがあるみたいなのでそのような時は呼ばないようにしています。 https://github.com/ruby/ruby/pull/6563

[e7c71c6c92] Takashi Kokubun 2022-10-17 16:27:59 UTC

MJIT 用に作ってあった JIT の Fiber 対応のための関数群を YJIT でも利用できるように関数や構造体の名前を mjit_cont -> jit_cont と改名して YJIT 用に export しています。 https://github.com/ruby/ruby/pull/6556

[64c52c4282] Takashi Kokubun 2022-10-17 17:45:59 UTC

YJIT の Rust 実装のコード生成のための実装をより簡便に書けるような仕組みを導入してリファクタングしているんじゃないかなと思いますが詳細は追っていません。 https://github.com/ruby/ruby/pull/6460

[f11765aef0] Takashi Kokubun 2022-10-17 17:47:22 UTC

YJIT 用のコマンドラインオプション --yjit-dump-disasm を追加して YJIT の生成するアセンブラの内容をファイルにダンプできるようにしているようです。 https://github.com/ruby/ruby/pull/6552

[1c83469fc6] st0012 2022-10-07 22:19:03 UTC

標準添付ライブラリ irb の色付けのテストで colorize_code_supported? で色付け可能かどうかチェックしていたのは不要とのことで削っています。端末かどうかとかじゃなくて RUBY_VERSION でのチェックみたいなので古い ruby はもうサポート切れてるので考慮しなくてよくなったということみたいですね。

[1865ed4ab9] Takashi Kokubun 2022-10-17 21:32:44 UTC

AppVeyor の設定ファイル .appveyor.yml の Visual Studio のバージョンについての記述を修正しています。コミットログによると slack 通知での表示のための修正のようです。

[b54c8ba8fc] Jemma Issroff 2022-10-17 18:31:24 UTC

インスタンス変数テーブルのコピーをする rb_obj_copy_ivar() という関数のリファクタリング。 Object Shapes になったことで簡単に書けるようになったということかなと思いましたがぱっとみた感じあんまりそういうのは関係なく純粋に冗長だった書きかたをシンプルにしているだけっぽいですね。

[995bdd69de] Takashi Kokubun 2022-10-17 22:37:56 UTC

AppVeyor の設定ファイル .appveyor.yml でサードパーティーライブラリを vcpkg でインストールする時に --x-use-aria2 というオプションを追加しています。エラー時のリトライについてのオプションみたいです。aria2c というのがそもそもダウンローダーのコマンド名? みたいですね。 https://github.com/ruby/ruby/pull/6574

[329d5424a4] Hiroshi Shirosaki 2022-10-18 00:18:03 UTC

Dir.glob にファイルパスのパターンとして "{}" で囲んだ選択の中に "/" を含む文字列があった時にそれより前の "**" の展開が誤動作を起こすことがあったという不具合を修正しています。 [ruby-core:110220] [Bug #19042]

[ab3b1b2381] Nobuyoshi Nakada 2022-10-18 02:30:56 UTC

tool/sync_default_gems.rb で default gems のコミットログを変換する時の issue や pull request の参照の記法の想定を少し緩めているようです。

[134acf98d8] Takashi Kokubun 2022-10-18 04:16:01 UTC

リポジトリのフックから使う想定の tool/gen-mailmap.rb でメールアドレスのリストを取ってくる URL を変更しています。フックをまとめているリポジトリ名を変更したためとのこと。

[344e6c915f] tomoya ishida 2022-10-18 05:30:29 UTC

標準添付ライブラリ irb のヒアドキュメントの parse の修正のようです。

[a09f764ce5] tomoya ishida 2022-10-18 05:44:04 UTC

標準添付ライブラリ irb で繰り返しメソッドを呼ばずに変数に結果を格納して使いまわすようなリファクタリング……かなぁと思ったけど色付けに関するメソッドで引数が追加されたりもうちょっといろいろ変更がありそうですが詳しくは読んでません。

[931bcd1b63] Takashi Kokubun 2022-10-18 06:00:23 UTC

標準添付ライブラリ irb の色付けでローカル変数の検出の不具合修正。

[4205190cb2] David Rodríguez 2022-09-29 05:16:32 UTC

bundler の未使用の条件分岐削除。

[da1981fca4] David Rodríguez 2022-09-29 05:30:43 UTC

bundler の内部的メソッドの未使用の引数削除。

[0b6f2af3ba] David Rodríguez 2022-07-06 11:47:11 UTC

bundler の依存関係解決の不必要な処理の削除。

[60670b163f] David Rodríguez 2022-07-04 12:47:53 UTC

同じく bundler の依存関係解決で不要な処理の削除。

[8c4bd1e58d] David Rodríguez 2022-07-06 20:21:32 UTC

引き続き bundler の依存関係解決で不要な処理の削除。

[cef7f6b224] David Rodríguez 2022-07-06 20:29:13 UTC

引き続き bundler の依存関係解決で不要な処理の削除。

[71dede387e] David Rodríguez 2022-08-23 06:36:30 UTC

引き続き bundler の依存関係解決で不要な処理の削除。

[67de00053a] David Rodríguez 2022-07-04 17:04:00 UTC

bundler で不要な処理を削っていった結果呼び元が 1つだけになったメソッドを削除して内容を呼び元に直接書くようにリファクタリング

[804ae4ea12] David Rodríguez 2022-09-12 16:38:33 UTC

bundler の依存関係解決のメソッドの不要な引数を削除。

[56ad79694b] David Rodríguez 2022-09-12 16:46:01 UTC

引き続き bunler の依存関係解決の不要な……じゃなくて同じ処理を何度も実行しないように結果の memo 化を実装しています。

[e956caea88] David Rodríguez 2022-10-05 12:16:57 UTC

bundler のテストで専用の matcher を追加しています。

[5fa18a7b0c] David Rodríguez 2022-10-05 13:40:03 UTC

bundler のテストの spec 名の変更。

[74dbb0d09a] David Rodríguez 2022-10-10 23:33:09 UTC

bundler の platform 名の対応で universal-java というものの対応を削っているようです。

[4d3dbbe77e] David Rodríguez 2022-10-10 23:34:12 UTC

bundler のメソッド呼び出しの不要な receiver を削っているのですが、これ削っても同じメソッド(クラスメソッド)呼び出しになるのかな? ちょっとどういう経路で最終的にどのメソッドが呼ばれるのかまでは追いませんでした。

[cb63a3f4c1] David Rodríguez 2022-10-10 23:36:04 UTC

bundler の platform 判定の書きかえ。

[cbddc913d9] Jarek Prokop 2022-09-09 13:18:25 UTC

rubygems のテストで証明書のチェックを変更しています。証明書の更新に伴なう変更みたいですが証明書ファイル自体は変更してないのかな?

[b7debaa801] Jarek Prokop 2022-09-09 13:22:31 UTC

rubygems のテストで証明書の署名アルゴリズムのチェックを変更しています。

[2ab7bb8969] Jarek Prokop 2022-09-09 13:25:09 UTC

rubygems のテストで署名結果のチェックを変更しています。

[f5df47d1f3] Hiroshi SHIBATA 2022-10-18 06:24:42 UTC

bundler と rubygems をまとめて最新版に更新しています。ここでテストに利用する証明書がまとめて更新されているようです。

[007946c27d] Takuya Noguchi 2022-10-18 03:55:59 UTC

bundler の man ページを更新しています。

[091e3522d7] Nobuyoshi Nakada 2022-10-18 01:49:47 UTC

拡張ライブラリ fiddle でも新しい C API rb_ary_hidden_new() を利用していたところを古い ruby のサポートのため rb_ary_tmp_new() という以前の名前で利用するように変更しています。

[08ec656282] Sutou Kouhei 2021-11-24 02:40:34 UTC

拡張ライブラリ fiddle のバージョンを 1.1.1 に更新しています。

[93da67d463] John Paul Adrian Glaubitz 2022-03-19 21:16:07 UTC

拡張ライブラリ fiddle のテストで利用する libc と libm のファイル名を alpha-linux と ia64-linux では libc.so.6.1/libm.so.6.1 とバージョン名の minor 番号までついたファイル名にするようにしています。なんか以前もこれあって一回消されたんだったような気がしますね。以前のは別のバージョン番号だったかもしれませんが。 [ruby-core:107970] [Bug #18645]

[e84ea4af69] Sutou Kouhei 2022-04-10 23:32:05 UTC

拡張ライブラリ fiddle の Fiddle.dlopen で Linux でエラーメッセージから指定されたファイルがリンカスクリプトである可能性があった場合にはその内容を読んで開くべきライブラリのファイルパスを抽出して改めてそれを Fiddle.dlopen するようにしています。 https://github.com/ruby/fiddle/pull/107

[dffca50bb6] Aaron Patterson 2022-07-14 17:00:15 UTC

拡張ライブラリ fiddle の Fiddle::Closure の struct RBasic::flags に RUBY_TYPED_FREE_IMMEDIATELY ビットフラグを立てるようにしています。確かこれは GC で回収される時に finalizer を待たずにすぐメモリ領域を開放するようにする指定かな?

[93d73cfe80] git 2022-10-18 08:22:21 UTC

NEWS の default gems の更新のあったバージョンリストに fiddle を追加しています。

[e1ca90c2a4] Nobuyoshi Nakada 2022-10-18 03:13:06 UTC

tool/sync_default_gems.rb のコミットログの変換で 1行がとても長い時に折り返す改行を自動的に追加しておくようにしています。

[1b235dcfd9] Nobuyoshi Nakada 2022-10-18 08:05:56 UTC

GitHub Actions で bundler の man ページ用のファイルなどのドキュメントの変更のみの時には無視するように無視するファイルパスリストにパターンを追加しています。