ruby-trunk-changes 2021-06-02

今日は Thread#native_thread_id のサポートされない環境での判定方法のちょっとした変更? や rdoc の依存関係の追加などがありました。

[9024c7f1bb] Nobuyoshi Nakada 2021-06-01 13:27:13 UTC

46655156dcc37509dcb69fcd0717c110eb1c624a で追加した Thread#native_thread_id が実装できない環境では rb_f_notimplement() でメソッド定義して NotImplementedError 例外を発生させるようにしています。実装のなかで rb_notimplement() をよぶかわりにこうすることで method_defined? で判定できるようになる?

[f9b9d1c580] Aaron Patterson 2021-06-01 21:34:34 UTC

rb_heap_t の compact_cursor_index メンバーの型を size_t から RVALUE* のポインタ型に変更して GC.compact での移動処理中の slot を直接参照を保持するようにしています。ちょっとよくわからないけど少し処理を効率化しているのかな。

[04a5ee6a23] git 2021-06-01 22:25:36 UTC

version.h の日付更新

[77e1b47729] aycabta 2021-05-23 14:48:41 UTC

標準添付ライブラリ rdoc のテストに assert_raise が未定義だったら assert_raises への alias として定義するようにする guard を追加しています。

[9137caaf45] aycabta 2021-05-23 15:06:46 UTC

標準添付ライブラリ rdoc の gemspec ファイルに psych 4.0.0 以降の依存関係を追加しています。おー。しかし psych の 4.0 には非互換があるので(まあだから 4.0.0 以降にしたいんだと思いますが)どうなるのかな。

[0f97aaa6cf] Nobuyoshi Nakada 2021-06-02 04:41:54 UTC

mjit_worker.c の compiling_iseqs 変数の指す領域を解放する処理が MSVC で const 修飾子の violation で警告になるので free_compiling_iseqs() という関数に切り出して MSVC だったら一時的に警告を抑制するようにしてから free() を呼ぶようにしています。

[c32ce2cbf1] Takashi Kokubun 2021-06-02 07:09:47 UTC

MJIT のために vm_core.h や vm_insnhelper.h で一部の変数を export するために RUBY_SYMBOL_EXPORT_BEGIN/RUBY_SYMBOL_EXPORT_END というマクロで挟んでたのを、MJIT のためというのがわかるように MJIT_SYMBOL_EXPORT_BEGIN/MJIT_SYMBOL_EXPORT_END に変更しています。

[070caf54d2] Takashi Kokubun 2021-06-02 08:16:49 UTC

VM 命令列の命令を取得する処理で VM の実装方式で rb_vm_insn_addr2insn() を呼ぶか iseq_encoded の配列の要素をみるだけかというのを preprocessor の分岐する処理があちこちに書かれてたので rb_vm_insn_decode() という関数に切り出すリファクタリング

[2048dfc5d3] Jun Aruga 2021-06-02 09:13:04 UTC

rubyspec の File.atime のテストが Travis-CI 上の ppc64le の環境で通らないことがあるそうなので環境変数でその場合に限り skip するようにしています。 [ruby-core:104101] [Bug #17926]