ruby-trunk-changes 2022-07-22

今日は主に String#each_line や IO#each_line の chomp キーワード引数指定時の挙動の修正や定数を含む Module を include した時の class 文での名前の衝突時の不具合修正などがありました。

[4798a4fec2] Peter Zhu 2022-07-20 18:49:16 UTC

include/ruby/internal/core/rarray.h の RARRAY_PTR_USE_START()、RARRAY_PTR_USE_START_TRANSIENT()、RARRAY_PTR_USE_END_TRANSIENT() などの関数マクロの定義が未使用とのことで削除しています。

[1c9acb6bb1] Peter Zhu 2022-07-20 19:30:19 UTC

gc.c の ARY_SHARED_P() や ARY_SHARED_ROOT_P()、ARY_EMBED_P() などのマクロを internal/array.h で inline 関数として定義し配列オブジェクト用のビットフラグの定数も array.c から internal/array.h に移動して assert(3) によるチェックを追加しています。transient_heap.c からもこれらのマクロを利用可能にしています。

[d67fcdcc9f] Peter Zhu 2022-07-20 19:34:42 UTC

struct RBasic::flags のビットフラグの定数 RARRAY_SHARED_FLAG を追加しています。単に ELTS_SHARED に別名をつけたという感じですね。

[80672b2d0e] Peter Zhu 2022-07-20 19:47:49 UTC

array.c に T_ARRAY 型オブジェクトの flags のビットフラグ群についての解説をコメントで追加しています。

[f954c5dae4] Jean Boussier 2022-07-21 11:16:16 UTC

0ae8dbbee0631721e820e29d0a613485cdcb3507cb9fd920a31c8090fae0b1183be9483e17dc3e96 の String#concat の最適化で追加した str_enc_fastpath() という関数を文字列の NUL 終端のバイトサイズを計算する TERM_LEN() マクロでも利用するようにしています。

[804b073573] Nobuyoshi Nakada 2022-07-21 10:52:30 UTC

common.mk で make update に common-srcs を依存させて自動生成されるソース類の更新をするようにしているようです。

[cdbb9b8555] Peter Zhu 2022-07-20 17:29:34 UTC

85479b34f76d5b426c2a8224d8ed6d8c2ad81ca2 のメモリ管理で page 追加するのを遅延させる変更でパフォーマンスが劣化したとのことで、逆に page の追加と解放が頻発してしまったので gc_sweep_finish_size_pool() に改修済みの tomb heap から page を eden heap に復活させる処理を追加しています。 [ruby-core:109256] [Bug #18929]

[423b41cba7] Jeremy Evans 2022-05-26 20:25:22 UTC

String#each_line に引数に空文字列を渡して連続する改行をまとめて 1つのデリミタとして扱うモードを指定した時にキーワード引数 chomp が効いていなかったのを修正しています。 [ruby-core:108500] [Bug #18768]

[672925bf14] git 2022-07-21 15:02:53 UTC

version.h の日付更新

[04f86ad0b5] Jeremy Evans 2022-05-26 19:22:42 UTC

IO#each_line で引数に nil を指定してさらにキーワード chomp に true が指定されていた時に末尾の改行コードを削ってしまっていた不具合を修正しています。 [ruby-core:108502] [Bug #18770]

[12ac8971a3] Jeremy Evans 2022-06-20 22:51:05 UTC

定数を含む Module を include した状態でその定数と同名のクラスを class 文で定義しようとすると名前が衝突してしまう不具合を修正しています。参照することはできるけど定数の定義(class/module 文も定数の定義を含む)は衝突しないのが正しいということですね。 [ruby-core:108937] [Feature #18832]

[203f179ce7] Jeremy Evans 2022-07-21 15:29:50 UTC

04f86ad0b5d2fe4711ff300d855228a6aed55f33 で IO#each_line の挙動を変更したのを revert しています。 CI が失敗したためとのこと。

[3ff53c8e04] Peter Zhu 2022-07-21 14:53:28 UTC

GitHub Actions の macOS 版の workflow で macos-10.15 での実行を消しています。

[5b21e94beb] Takashi Kokubun 2022-07-21 16:23:58 UTC

全体的に C のソースコードのタブをまとめて空白に展開しています。 [ruby-core:109115] [Misc #18891]
ついでに mjit_instruction.rb というファイルが追加されていますが、これはコミットミスかな?

[79406e3600] Jean Boussier 2022-07-21 12:50:44 UTC

拡張ライブラリ objspace の ObjectSpace.dump で非 ASCII 文字を含むメソッド名の時にメソッド名の出力を抑制するようにしています。

[2661980435] Takashi Kokubun 2022-07-21 16:51:31 UTC

5b21e94bebed90180d8ff63dad03b8b948361089 でタブを空白に展開したので git blame で無視する commit の設定を .git-blame-ignore-revs に追加しています。こういう便利な機能があるんですね。ただファイルを配置してるだけではだめで git config でローカルのリポジトリに設定しておく必要があるようです。 [ruby-core:109115] [Misc #18891]

[4af0dd36fc] Nobuyoshi Nakada 2022-07-21 17:07:51 UTC

5b21e94bebed90180d8ff63dad03b8b948361089 で誤って追加されたファイルを削除しています。

[f0ae583a3d] Jean byroot Boussier 2022-07-21 17:55:02 UTC

79406e3600862bbb6dcdd7c5ef8de1978e6f916c で拡張ライブラリ objspace の ObjectSpace.dump で非 ASCII 文字のメソッド名の出力を抑制したのを revert していま。CI の失敗かな?

[9d862011e8] Peter Zhu 2022-07-21 19:16:06 UTC

rb_ary_transient_heap_evacuate_() で引数の配列オブジェクトが共有されている時の分岐がありましたが、assert(3) で共有元になっていないはずというチェックをするように変更しています。

[3a5ea7c688] Peter Zhu 2022-07-21 19:49:26 UTC

9d862011e82b04bf21b26ebe4b472e8ef801dfef の変更で不要になったローカル変数を削除しています。

[7223c0da15] Jeremy Evans 2022-05-26 19:22:42 UTC

04f86ad0b5d2fe4711ff300d855228a6aed55f33 の IO#each_line の挙動変更のリトライ。今回は rubyspec の変更も含んでいるようです。 [ruby-core:108502] [Bug #18770]

[cf7d07570f] Nobuyoshi Nakada 2022-07-22 00:54:57 UTC

拡張ライブラリ objspace の ObjectSpace.dump で非 ASCII 文字を含むメソッド名対応の 79406e3600862bbb6dcdd7c5ef8de1978e6f916c のやりなおし。dump しないのではなく dump_append_c() という関数の引数の型を char から unsigned char にすればよかったようです。

[c6aa65430f] Nobuyoshi Nakada 2022-07-22 01:41:44 UTC

cf7d07570f50ef9c16007019afcff11ba6500d70 の続き。ObjectSpace.dump のための文字列バッファのサイズ計算のマジックナンバーを rb_strlen_lit() などで埋める文字列の長さで計算するようにしています。

[030c41bf55] John Labovitz 2016-11-03 14:21:57 UTC

bin/gem のエラーメッセージの大文字小文字を変更しています。一貫性のためとのこと。

[1ed7ab29b3] bronzdoc 2018-11-19 17:55:22 UTC

bin/gem の unless 文に then がついてましたが別につけなくてもいいので削除しています。

[b4876c8e5f] SHIBATA Hiroshi 2019-01-04 05:26:43 UTC

bin/gem に ruby のバージョンのチェックをしていましたが 1.8.7 以降というかなり古いものなのでもう削除しています。

[6b74996810] Kenyon Ralph 2019-01-18 08:24:30 UTC

bin/gem の先頭にあった空行を削除。

[388c4e1076] Akinori MUSHA 2020-10-21 18:46:18 UTC

bin/gem で Gem::GemRunner#run の Gem::SystemExitException 例外を rescue していたのをやめています。

[d7ffd3fea4] Takuya Noguchi 2022-07-17 08:08:51 UTC

rubygems の文字列リテラルをシングルクオートからダブルクオートに変更しています。

[5904895cf5] Takuya Noguchi 2022-07-20 21:49:20 UTC

.git-blame-ignore-revs に d7ffd3fea402239b16833cc434404a7af82d44f3rubygems のクオート記号の変更の commit hash も追加しています。

[f081e1fead] Nobuyoshi Nakada 2022-07-22 03:11:12 UTC

.indent.pro というファイルを追加しています。タブ展開したのと関係ありそうだけどなんだろうこのファイル。

[fe77071697] Hiroshi SHIBATA 2022-07-22 05:36:00 UTC

bin/gem の不要なローカル変数の削除。

[55c771c302] Hiroshi SHIBATA 2022-07-22 05:40:48 UTC

bin/gem の require "rubygems" は不要なので削除しています。

[a4e890b93e] Nobuyoshi Nakada 2022-07-22 03:27:21 UTC

rubygems の Gem::SystemExitException という例外クラスで attr_accessor で exit_code を定義していたのを親クラスの SystemExit の status への alias に変更しています。

[c6734edc34] Takuya Noguchi 2022-07-22 07:58:34 UTC

bundler の man ページの obsoleted になってるサブコマンドのリストから bundle show を削除しています。