ruby-trunk-changes 2022-07-15

今日は拡張ライブラリ psych のメモリ不足の時の不具合修正や MJIT の実装のリファクタリングなどがありました。

[673759328c] Nobuyoshi Nakada 2022-07-14 06:17:35 UTC

拡張ライブラリ bigdecimal の extconf.rb で struct RRational および struct RComplex の型の存在チェックをしていましたが、実際に必要なのは RRATIONAL() マクロと RCOMPLEX() マクロが利用可能かということだったので、直接これらのマクロの存在を #ifdef でチェックするように変更しています。

[1df9b6c390] Matt Valentine-House 2022-07-13 22:12:53 UTC

misc/lldb_disasm.py で insns_address_table というグローバル変数に格納されている VM 命令の実装のラベルへのアドレスのリストを取得するための公開シンボルを検索する処理をメソッドに切り出してもう少しちゃんとチェックをするようにしているみたいです。

[a5471b616d] git 2022-07-14 15:25:59 UTC

version.h の日付更新

[509d0a9299] Karl Anderson 2021-10-28 07:53:52 UTC

拡張ライブラリ psych で parse 時にメモリ不足で NoMemoryError 例外が発生した場合にエラー処理に問題があって無限ループ状態に陥る不具合があったのを修正しています。

[b8247a1669] John Hawthorn 2022-07-13 07:16:46 UTC

vm_core.h の enum vm_frame_env_flags の宣言につけていたコメントの説明の Env flags のビット数が古かった? ので修正しています。

[4813443837] Jeremy Evans 2022-07-14 20:28:58 UTC

doc/syntax/modules_and_classes.rdoc の protected メソッドの呼び出し可否についての説明で呼び元の self が主語なのを receiver についてと書き間違えてたのを修正しています。 [ruby-core:109092] [Bug #18887]

[c8748942f1] Peter Zhu 2022-07-14 20:37:47 UTC

IO#readlines の rdoc 用コメントのマークアップの間違いを修正。

[3f962a20b9] Takashi Kokubun 2022-07-14 21:12:31 UTC

MJIT の JIT コンパイルするメソッドのコードをまとめて 1つのオブジェクトファイルにするための処理で struct rb_iseq_constant_body::jit_unit が NULL の場合に SEGV してしまってた箇所があるのでとりあえず通すためにそういう ISeq をスキップするようにしています。

[439d31bc77] Takashi Kokubun 2022-07-15 03:34:46 UTC

MJIT の worker を Ruby の Thread で動かすようにしたために worker では GC できないという制約がなくなったので mjit_worker.c を mjit.c にマージするそうです。 https://github.com/ruby/ruby/pull/6138

[ed8c21bbd5] Yuta Saito 2022-07-14 17:32:29 UTC

b2491783986084770f6f97552f27b868622730cf で ext/extmk.rb で bundled gems の lib ディレクトリへの symbolic link を作るようにした時に対象のディレクトリがまだ存在しなくてエラーになるというケースがあったようなので FileUtils.mkdir_p でディレクトリ作成もするようにしています。

[6c2cad835a] Takashi Kokubun 2022-07-15 04:53:41 UTC

構造体 struct rb_mjit_unit の定義を mjit.c から mjit_unit.h というヘッダファイルに切り出して mjit_compile.c からも直接利用できるようにしています。 call cache の情報を得るために mjit_iseq_cc_entries() という関数経由していたのを直接構造体メンバーを参照するようにしています。

[8e451d1083] Takuya Noguchi 2022-07-15 01:49:57 UTC

rubygems の gem source のヘルプメッセージ内の rubygems のサーバーの URL の変遷についての記述のバージョン番号の間違いを修正しています。

[7fda741f6e] Takuya Noguchi 2022-07-15 01:26:54 UTC

bundler の man ページ内の URL の schema を https に変更したりしています。