ruby-trunk-changes 2022-01-07

今日は Variable Width Allocation がデフォルトで有効に……一時的になったのですがなにか問題があったようで一旦戻されてしまいました。他にも rubygems の gem fetch サブコマンドの機能追加などがありました。

[ee5e684bc1] David Rodríguez 2022-01-06 13:05:46 UTC

rubygems の gem install で存在しない gem 名を指定して --force オプションつきで実行した時に NoMethodError 例外が発生していた不具合を修正しています。force オプションがついている時に解決した gem の存在チェックがなかったので分岐の前にチェックを移動しているようです。

[cea4a81056] ximenasandoval 2021-12-29 21:24:04 UTC

rubygems の gem fetch サブコマンドに複数の gem 名を指定してさらに --version オプションを指定した時にエラーになるようにしています。また --suggestion オプションを追加して gem の別名? の表示を抑制でいるようにしています。オプション名に反して指定すると抑制されるようにみえます。また gem fetch サブコマンドで gem 名のところに name:version のようにバージョンを個別に指定できる記法をサポートするようにしています。

[73be7a85cd] ximenasandoval 2022-01-05 00:16:40 UTC

cea4a81056311f13ca1c17f26c9d2c21b5a017a6rubygems の gem fetch サブコマンドの --suggestions フラグの効果が反転していたのを修正しています。やっぱり逆だったんだ。

[a79c59472d] Jeremy Evans 2022-01-06 00:12:31 UTC

Module の初期化処理を Module#initialize から rb_module_s_alloc() の時点にまで引き上げています。Module を継承したクラスを作った時にその initialize 内で include できるようにするためとのこと。うーん Module を継承したクラスを使うことがあるのか。 [ruby-core:105966] [Bug #18292]

[24b53b1f3a] Jeremy Evans 2022-01-06 03:27:14 UTC

a79c59472df38297c246b27713c277f2edaefa7a の変更で追加した rb_module_s_alloc() での super の初期化を削除しています。あれ、これ削っていいのかな? [追記] class_alloc() で初期化しておくようにしたからとのこと。[/追記] [ruby-core:105966] [Bug #18292]

[3f6bfe49db] Jeremy Evans 2022-01-06 06:23:48 UTC

a79c59472df38297c246b27713c277f2edaefa7a で追加したテストの assert_equal を assert_operator を使うようにリファクタリングしています。 [ruby-core:105966] [Bug #18292]

[818fc85347] git 2022-01-06 16:03:49 UTC

version.h の日付更新

[1bfccba775] manga_osyo 2022-01-06 14:49:27 UTC

NEWS のチケット参照のリンク用の footnote を追加しています。

[5ad507d751] Burdette Lamar 2022-01-06 16:47:51 UTC

IO の rdoc 用コメントを手直ししています。 https://github.com/ruby/ruby/pull/5402

[ae51f304d2] Yuta Saito 2022-01-06 15:07:14 UTC

configure で mremap(2) の存在チェックをして IO::Buffer の実装で利用しているところの preprocessor 分岐でチェック結果を参照するようにしています。WASM の環境で使えないのでそのサポートのためチェックを追加したようです。

[d4a95428bb] Peter Zhu 2022-01-06 14:00:19 UTC

include/ruby/internal/config.h でマクロ USE_RVARGC のデフォルト値を 1 にして、ObjectSpace の slot を複数まとめて確保して追加のメモリ領域を T_CLASS などで利用する Variable Width Allocation の機能をデフォルトで有効にしています。ついに有効になりましたか。

[3818cfbd47] Peter Zhu 2022-01-06 14:02:19 UTC

GitHub Actions のいろんなコンパイルオプションをためす workflow で -DUSE_RVARGC=1 を使うようにしていたのを d4a95428bb244ca8c4a97ad50f3837f191f1f0c3 のデフォルト値変更に伴ない逆に -DUSE_RVARGC=0 オプションを試すようにしています。

[ee4784c06e] Peter Zhu 2022-01-06 14:03:45 UTC

misc/lldb_cruby.py の T_STRING 型オブジェクトの文字列の内容を取得するコマンドで Variable Width Allocation 対応のため as.embed.len メンバーを参照するように変更しています。

[44368b5f8b] Peter Zhu 2022-01-06 18:32:59 UTC

rb_enc_cr_str_buf_cat() で文字列バッファの連結の前に ENCODING_CODERANGE_SET() を呼び出して Encoding と coderange をセットしておくように修正しています。終端文字のサイズの判定が変わる可能性があるので先に Encoding を設定しておく必要があるとのこと。これは Variable Width Allocation と直接関係はないけどバッファサイズのミスで slot が書き潰されることで表面化したので直したとかかも。

[5f55b03716] Peter Zhu 2022-01-06 18:35:17 UTC

同じく str_new_frozen_buffer() でも終端文字サイズが 1に決め打たれていたのを修正しています。

[aeb344e65c] Peter Zhu 2022-01-06 21:46:36 UTC

d4a95428bb244ca8c4a97ad50f3837f191f1f0c3 の Variable Width Allocation をデフォルトで有効にしたのを revert しています。

[ae0d67d762] Peter Zhu 2022-01-06 22:22:11 UTC

44368b5f8bc21e19fa06a0fc0625923fc41293e6 の rb_enc_cr_str_buf_cat() で Encoding の設定を先にするようにしたのも revert しています。 これがこの修正ではだめだったので一旦あきらめたってことかな。

[83b987054a] Nobuyoshi Nakada 2022-01-06 14:08:56 UTC

parse.y でコマンドラインオプション -l が指定された時の処理で行デリミタの $/ をグローバル変数から参照して gets を呼ぶように AST を構築するようにしています。

[6baa78bb78] Nobuyoshi Nakada 2022-01-06 14:27:16 UTC

同じく parse.y のコマンドラインオプション -l の指定時の処理で chomp! メソッドを呼ぶかわりに gets にキーワード引数 chomp を渡すようにしています。

[dd6a75195a] Jeremy Evans 2021-09-17 19:12:08 UTC

拡張ライブラリ pathname の Pathname#each_entry がブロックを渡さずに呼び出した時に LocalJumpError を発生させていたのを、多くの Enumearble なメソッドと同様に Enumerator を返すようにしています。 [ruby-core:105185] [Bug #18158]