ruby-trunk-changes 2021-11-06

今日は rubygems の拡張ライブラリを含む gem のインストールの修正や Enumerable#to_a が each メソッドに任意のキーワード引数を委譲するようにする変更、YJIT の最適化や checkkeyword 命令の JIT 対応追加などがありました。

[5b941ec90d] David Rodríguez 2021-11-04 19:31:06 UTC

rubygems の setup.rb の実行時の実行ファイルのインストール時に不要な Dir.glob をしてループしていたのを消しています。

[e60c1f7556] David Rodríguez 2021-11-04 19:20:47 UTC

rubygems のテストで RbConfig::CONFIG['mandir'] と RbConfig::CONFIG['sitelibdir'] を設定してテストでこれを参照するようにしています。

[87a8b22455] David Rodríguez 2021-11-05 11:20:05 UTC

rubygems のテストで setup.rb の --destdir のテストの確認方法で不要に複雑になってたのをシンプルに直しているようです。

[f5a4fdae25] David Rodríguez 2021-11-05 12:27:17 UTC

rubygems の setup.rb 実行時の環境変数 GEM_HOME のセットを削除しています。この時点で環境変数 GEM_HOME を変更してももう影響しないので無意味だったそうです。

[ef6752c6c4] David Rodríguez 2021-11-05 12:46:32 UTC

rubygems のテストで必要ないのに RbConfig::CONFIG['bindir'] を一時的に変更するヘルパーメソッドを使ってたところを呼び出しを削っています。

[d47831d554] David Rodríguez 2021-11-05 12:51:11 UTC

rubygems のインストールのテストで bindir を destdir の配下の bin ディレクトリになるように変更しています。

[907aa47527] David Rodríguez 2021-11-04 18:27:17 UTC

rubygems の setup.rb に --prefix オプションが渡された時にインストール先として --prefix に渡されたディレクトリのほうを優先するようにしているようです。

[e83c02a768] Jeremy Evans 2021-11-05 14:08:21 UTC

Enumerable を include したクラスの each メソッドにキーワード引数が定義されてた時に Enumerable#to_a の任意のキーワード引数を each メソッドを呼ぶ時に委譲するようにしています。えーなんだこれ。これは new feature なのでは……と思ったけど to_a はもともと引数を委譲する仕様があったのか。 [ruby-core:105944] [Bug #18289]

[f1ca64ed7c] git 2021-11-05 15:22:31 UTC

version.h の日付更新

[82ae9b092c] haruuzion 2021-10-07 16:08:57 UTC

bundler の deprecation メッセージに含まれる bundler-viz の GitHub の URL を bundler から rubygems 配下のものに変更しています。

[91a9062626] Alan Wu 2021-11-05 19:44:29 UTC

YJIT で機械語命令のオペランドに小さな定数を指定する場合に 32 bit の値を使うことで上位ビットが自動的に埋められるのを利用してコードサイズを削減する最適化を負の数値にも利用するようにしています。 https://github.com/ruby/ruby/pull/5081

[9cc2c74b83] John Hawthorn 2021-11-05 20:54:23 UTC

YJIT で VM 命令の checkkeyword の JIT コンパイル対応を追加しています。 https://github.com/ruby/ruby/pull/5083

[fbd6cc5856] John Hawthorn 2021-11-05 21:01:07 UTC

YJIT でキーワード引数つきのメソッドの呼び出し時に 2fa51c70683ef8198bddb3332eb62c9239cbde8f の時点では全てデフォルトか、全て指定している時しか対応していなかったのを、一部のキーワード引数のみ指定した呼びかたの時にも JIT コンパイルに対応するようにしているようです。 https://github.com/ruby/ruby/pull/5082

[666a918595] Hiroshi SHIBATA 2021-11-05 22:22:35 UTC

33d01b73442ba2e434122077ce6ffdc419d2194016331d9abb23aa2c3840d69a11e71881e8954b08 で拡張ライブラリを含む gem のインストール時の make 起動時に変数 DESTDIR に空文字列を指定しないようにしてたのを nmake コマンド利用時(つまり mswin 環境の時)は空でも DESTDIR を指定するようにしています。

[66b0847602] Nobuyoshi Nakada 2021-08-23 14:41:45 UTC

fill_random_bytes_crypt() や fill_random_bytes_bcrypt() で乱数を生成するバッファサイズが DWORD の最大値より大きい時にループして複数回 API を呼び出すように対応を追加しています。