ruby-trunk-changes 2022-06-24

今日は rubygems/bundler の更新や古い GCC での警告抑制のための修正のほか ISeq の mark 処理高速化のための内部構造の変更などがありました。

[2f7c0f656e] Nobuyoshi Nakada 2022-06-22 10:38:17 UTC

.github/workflows/compilers.yml で LDFLAGS の設定を append_configure という環境変数経由でしていたのを直接 LDFLAGS 環境変数に設定するように変更しています。

[961543945f] Nobuyoshi Nakada 2022-06-22 11:20:48 UTC

parse.y で警告抑制のために #pragma を使う RBIMPL_WARNING_PUSH() や RBIMPL_WARNING_IGNORED() マクロを使って -Wpsabi の警告オプションをファイル内で無効にするようにしています。古い GCC で誤って警告が出ることがあるみたいです。

[41cdf9b114] Nobuyoshi Nakada 2022-06-23 11:30:57 UTC

.github/workflows/compilers.yml のビルド中に make showflags を実行して各種ツールチェインのオプションを表示するようにしています。

[b180ffa622] Nobuyoshi Nakada 2022-06-23 13:51:31 UTC

addr2line.c、io_buffer.c、thread_win32.c で古い GCC での警告抑制のための各種修正。

[962a3247b1] John Hawthorn 2022-03-12 03:21:50 UTC

doc/syntax/modules_and_classes.rdoc で protected メソッドの呼び出せる条件について呼び元の self についての記述があったのを削除しています。

[6fd9cb8087] git 2022-06-23 20:51:07 UTC

version.h の日付更新

[e23540e566] Aaron Patterson 2022-06-17 22:28:14 UTC

ISeq の GC の mark 処理を高速化するために rb_iseq_body_t 内に保持されている VALUE の位置を bitmap として保持するようにリファクタリングしています。 [ruby-core:109042] [Feature #18875]

[eb1a84a9c3] Alan Wu 2022-06-23 22:12:25 UTC

YJIT を有効にしてビルドしていない時は --help で表示する usage に YJIT 関連の --features などを表示しないようにしています。

[8d63a04703] Aaron Patterson 2022-06-23 22:46:53 UTC

e23540e5666664e23f2adecdc2cc591f3ff6fe2f で導入した struct rb_iseq_constant_body::mark_offset_bits に要素が 1つだけしか必要なかったらメモリ領域をヒープから確保しないようにしています。

[0b58059f15] Aaron Patterson 2022-06-23 23:02:42 UTC

e23540e5666664e23f2adecdc2cc591f3ff6fe2f で導入した struct rb_iseq_constant_body の bitmap が結果的に不要だったら NULL クリアして解放しておくようにしています。

[333754ace8] Alan Wu 2022-06-24 00:27:02 UTC

bootstraptest/test_yjit.rb にブロック渡しで定義されたいわゆる bmethod が外のスコープの変数を上書きする時の挙動の YJIT でのテストを追加しています。

[12a5fa408b] David Rodríguez 2022-06-23 09:22:36 UTC

rubygems と bundler を upstream から最新版を取得しています。