ruby-trunk-changes 2022-09-29

今日はインスタンス変数の管理に Object Shapes の実装を使う変更、rubygems の更新、rubyspec/mspec の更新、拡張ライブラリ date の不具合修正、bundled gems の net-{imap,pop,smtp} のバージョン更新などいろいろ変更がありました。

[d12fce7af3] Nobuyoshi Nakada 2022-09-27 13:46:06 UTC

拡張ライブラリ date の Date._strptime で offset に異常に大きな数値を渡した時の対応を追加しています。

[247d598477] Nobuyoshi Nakada 2022-09-28 12:26:25 UTC

tool/rbinstall.rb で misc/lldb_cruby.py もインストールしてるところを f1ccfa0c2c200c9443fbfc3f1ac3acbdd3e35559 のあたりで複数のファイルに分割したのに対応して全ファイルをインストールするように対応しています。

[6f8d17e43c] Peter Zhu 2022-09-27 18:50:40 UTC

aa2a428cfb3f4273f51358eb4e7fab235c7d36c2リファクタリングして切り出した str_subseq() という関数で文字列オブジェクトのバッファサイズが slot に埋め込みできるサイズの時も共有するようにしています。うーむ、これはメモリ節約的になんか意味あるのかな? Variable Width Allocaton について書かれてるから共有先のほうのオブジェクトは小さな slot に置けるから節約になるということかな。

[28a572f8bf] Peter Zhu 2022-09-27 18:54:09 UTC

6f8d17e43c7b9b3b8bf42df0ef1ca085080b65f0 の再修正で str_subseq() で共有化した文字列の coderange をクリアしておくようにしています。切り出した部分文字列の coderange は元のものと違うかもしれないので再計算させるようにしているようです。

[3c3bd03a7c] David Rodríguez 2022-09-18 18:32:26 UTC

rubygems のテストのヘルパーメソッドで git リポジトリのセットアップをするコマンド群に git init 後に git checkout で master ブランチに切り替えておくようにしています。git init 直後に master ブランチじゃないことがあるのかな、と思ったら将来的に main になるかもしれないので今のうちにブランチ名を明示的に固定しておくという意図みたいです。

[fc54dbe8b4] Nobuyoshi Nakada 2022-09-28 12:39:25 UTC

bootstraptest/runner.rb でテストの実施のプログレスで "." を出力する時にウィンドウサイズに応じた折り返し(改行)をするようにしています。

[09bce061af] Nobuyoshi Nakada 2022-09-28 12:58:20 UTC

bootstraptest/runner.rb の実行時に make の job server による並列度の伝播をするようにしているみたいです。

[a05b261464] Nobuyoshi Nakada 2022-09-28 13:07:50 UTC

TRY_WITH_GC() というマクロをエラー時に rb_bug() を呼び出すか NoMemoryError 例外発生にするかをマクロで切り換える実装かでマクロ定義全体を分岐させてたのをエラー時の処理部分だけ GC_MEMERROR() という関数マクロに切り出してここだけ分岐させるようにリファクタリングしています。

[d594a5a8bd] Jemma Issroff 2022-09-23 17:54:42 UTC

9ddfd2ca004d1952be79cf1b84c52c79a55978f4インスタンス変数管理に Object Shapes というテクニックを使った実装を取り込む変更のリトライ。 [ruby-core:108522] [Feature #18776]

[414f1066b1] git 2022-09-28 15:27:12 UTC

d594a5a8bd0756f65c078fcf5ce0098250cba141 の変更のインデントのタブを空白に展開しています。 [ruby-core:108522] [Feature #18776]

[3e7c42a239] Aaron Patterson 2022-09-28 16:24:02 UTC

d594a5a8bd0756f65c078fcf5ce0098250cba141 で導入した Object Shapes のためのクラス RubyVM::Shape の mark 用関数は不要だったので削除しています。

[5a1ab740fc] Benoit Daloze 2022-09-28 16:37:16 UTC

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

[31cf1bb525] Benoit Daloze 2022-09-28 16:37:17 UTC

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

[5222a89ab6] David Rodríguez 2021-12-04 13:38:30 UTC

rubygems のテストで JRuby で skip していたものの一部はもう JRuby でも通るらしく skip をやめています。

[b9c426eaea] David Rodríguez 2021-12-04 11:54:50 UTC

rubygems のテストで不要な定数を削除して参照箇所に直接リテラルを埋め込んでいます。

[c7232a2a0a] David Rodríguez 2021-12-04 11:57:00 UTC

rubygems のテストで bundler を require する時のパスを分岐していたのが不要とのことで削除しています。

[874a2bf17c] David Rodríguez 2021-12-04 12:54:34 UTC

rubygems のテストでなぜか一部の assertion を ensure 節に書いてたところがあったのですが間違いだったみたいで ensure を削除しています。

[00a040dda3] David Rodríguez 2021-12-04 13:00:02 UTC

rubygems のテスト用ヘルパーメソッドに bundler.rb のファイルパスを得るメソッドを追加してテストで定数を定義していたのをやめています。

[20eff52087] David Rodríguez 2022-05-11 15:58:06 UTC

rubygems のテストで呼び出してたメソッドが bundler の実装になっている(再定義されている?)部分があったので rubygems 自身のメソッドを呼ぶため呼ぶメソッド名を変更しています。

[668e78f01b] David Rodríguez 2021-12-04 12:15:32 UTC

rubygems のテストで require "bundler" して実施するためのヘルパーメソッドを追加して必要なテストでのみこれを使って bundler を有効にするようにしているようです。

[ac56e5c1ab] David Rodríguez 2021-12-04 12:44:07 UTC

rubygems で bundler を利用したテストのための bundler の gemspec ファイルを配置するディレクトリを Gem.dir 配下に置いて stub で騙さないようにしているみたいです。

[9dd902b831] Samuel Williams 2022-09-28 10:35:42 UTC

拡張ライブラリ coverage の Coverage.setup にキーワード引数 eval を追加して、eval 系メソッドで coverage が有効になるかどうかを初期化時に指定できるようにしています。eval 系メソッドで coverage が有効になるように変更したけどデフォルトで有効にすると挙動が変わっちゃう? かなにかでオプションにしたいみたいです。 [ruby-core:110119] [Bug #19026]

[bd2fbd3588] Samuel Williams 2022-09-28 11:08:03 UTC

さらに拡張ライブラリ coverage に Coverage.supported? というメソッドを追加して Symbol を渡して利用可能なモードか判定するようにしているようです。今は :lines, :branches, :methods, :eval の 4つが利用可能。 [ruby-core:110119] [Bug #19026]

[e7ddb6b182] Samuel Williams 2022-09-28 20:43:07 UTC

9dd902b83186ad6f9d0a553da2ca114bac6ab7b5bd2fbd35888413217337dd327ad90015c0322d12 の coverage のキーワード引数追加やメソッド追加について NEWS に追記しています。 [ruby-core:110119] [Bug #19026]

[8c4e52fbe8] Hiroshi SHIBATA 2022-09-29 01:27:29 UTC

gems/bundled_gems の net-imap, net-pop, net-smtp のバージョンを更新しています。

[2f7a530f59] git 2022-09-29 01:28:41 UTC

8c4e52fbe8a07da76c4038e4c5dc518b37258dc3 に追随して NEWS の bundled gems のバージョンリストにも net-imap, net-pop, net-smtp のバージョンを追加/更新しています。

[5a8aaedaff] Nobuyoshi Nakada 2022-04-22 15:24:17 UTC

d12fce7af3af27096b336f43700fffd51158e928 の拡張ライブラリ date の修正の ALLOCV_N() で確保したメモリ領域を ALLOCV_END() で開放する位置を早めています。

[942066713b] Nobuyoshi Nakada 2022-09-29 02:46:54 UTC

bootstraptest の並列テスト対応のようです。

[cb16dcb184] Nobuyoshi Nakada 2022-09-29 05:15:55 UTC

拡張ライブラリ date の 5a8aaedaff48fbf715eed67f29282f9464f118f0 のさらに再修正でそもそも ALLOCV_N() でメモリ確保していたバッファサイズがたかだか MAX_WORD_LENGTH までとのことで配列の変数でマシンスタックに確保しておくようにしています。

[9948b8bfec] Hiroshi SHIBATA 2022-09-29 06:08:16 UTC

rubyspec の socket のテストで Solaris で通らない spec を platform_is_not で guard しておくようにしています。

[1cbf0fd863] Jenny Shen 2022-09-16 12:48:38 UTC

rubygemsRubyGems.org のレスポンスを処理する時に Net::HTTPPermanentRedirect と Net::HTTPRedirection などのリダイレクトのレスポンスがあった時の対応を追加しています。

[17b783ad9e] Jenny Shen 2022-09-16 15:37:55 UTC

1cbf0fd86356ccbac5556ab0f63ea8a4b08fd24d の続きで rubygems でリダイレクトのレスポンスの時のエラーメッセージに redirect 先の URL 全体を埋め込むように修正しています。

[0522e31d57] Jenny Shen 2022-09-17 02:51:58 UTC

rubygems のテストで RubyGems.org からのレスポンスによるテストのためのユーティリティメソッドを導入しています。

[28840d74c2] Jenny Shen 2022-09-19 13:43:17 UTC

1cbf0fd86356ccbac5556ab0f63ea8a4b08fd24d17b783ad9e62070e8636800fe3aa9c5570a65bda のさらに続きで rubygems のリダイレクトのレスポンス時のメッセージをちょっと修正しています。