ruby-trunk-changes 2022-11-09

今日は YJIT の最適化、Thread#pending_interrupt? に引数を渡した時の不具合修正などがありました。

[3703a81491] Maxime Chevalier-Boisvert 2022-11-08 16:57:11 UTC

configure の YJIT を有効化するかどうかの判定の処理を修正&リファクタリングしています。 https://github.com/ruby/ruby/pull/6684

[2244d5084e] Bo Anderson 2022-10-12 13:08:35 UTC

bundler で RUBY_PLATFORM が universal を含んでいる時に rubygems の Gem::Specification#extensions_dir を再定義して実際のアーキテクチャ名を含めるファイルパスにするようにしています。

[0df47fdaf9] Bo Anderson 2022-10-15 21:51:39 UTC

2244d5084e32fea801bff1060ef528769bebaa36 の続きで bundler で再定義する Gem::Specification#extensions_dir の条件に RUBY_PLATFORM だけでなく CROSS_COMPILING もみるようにしています。 CROSS_COMPILING っていう定数が定義されるんだっけ? と思いましたが fake.rb で定義されるものみたいなので extconf.rb などで参照しているところはあるけどここでも参照できるのかな?

[b7b78f062f] Stan Lo 2022-11-08 17:19:55 UTC

irb の組み込みコマンド measure のテストで IRB.conf の設定をセットアップする書きかたをリファクタリングしています。

[5643d2bb9a] Takashi Kokubun 2022-11-08 17:36:29 UTC

RubyVM::YJIT の ruby 実装の yjit.rb で YJIT の統計情報を返す RubyVM::YJIT.runtime_stats の項目を増やしています。 https://github.com/ruby/ruby/pull/6685

[aada904d94] Matt Valentine-House 2022-11-08 17:51:58 UTC

doc/contributing/building_ruby.md のビルド方法の HomeBrew でインストールした openssl とのリンク方法をさらに具体的に書いています。

[1a65ab20cb] Jimmy Miller 2022-11-08 20:28:28 UTC

YJIT で Module#define_method に Proc オブジェクト(ブロック)を渡して定義されたメソッドの呼び出し? を rb_vm_invoke_proc() を直接呼び出すように最適化しているみたいです。なんか違うような気もするけど。ただのブロック呼び出しかも。 https://github.com/ruby/ruby/pull/6691

[1466682a23] Alan Wu 2022-11-08 20:29:30 UTC

configure で rustc コマンドのバージョンチェックのための実行の余計なメッセージを抑制するためのリダイレクト追加と、結果のメッセージ出力を追加しています。 https://github.com/ruby/ruby/pull/6693

[5d95cd99f4] Alan Wu 2022-11-07 21:49:48 UTC

YJIT の実行コード用メモリ領域の GC の実装のためのフラグ管理の修正みたいです。

[ef1c1ddf68] Nobuyoshi Nakada 2022-11-09 02:58:37 UTC

拡張ライブラリ socket の rsock_ipaddr() で sprintf(3) と rb_str_new2() を組み合わせて使ってたのを rb_sprintf でまとめて文字列オブジェクト化するようにしています。

[558137d5f3] Nobuyoshi Nakada 2022-11-09 03:04:22 UTC

include/ruby/random.h の Doxygen 用? コメントのサンプルコードの変数宣言の型が抜けてたのを修正しています。

[c3de7a3c58] Yusuke Endoh 2022-11-08 04:35:37 UTC

Thread#pending_interrupt? というメソッド(なんだっけこれ……と忘れかけてましたが 10年くらい前に Thread.handle_interrupt の導入時に追加されたメソッドで割り込みを抑制している時にブロックしている例外などの割り込みがあるかというのを取得するメソッドでした)に引数を渡して例外クラスで絞り込んだ時に is_kind_of? 関係でなくて継承関係をチェックしようとしてしまっていて SEGV する可能性があった不具合を修正しています。 [ruby-core:110650] [Bug #19110]