ruby-trunk-changes 2023-09-21

今日はメモリリークの修正、バッククオートによるコマンド実行時の pipe の IO オブジェクトが ObjectSpace からみえるようにする変更などがありました。

[96c5a4be7b] Peter Zhu 2023-09-20 00:48:41 UTC

method entry のコピー時に rb_method_entry_t::flags のビットフラグのコピー時の IMEMO_FL_USER3 フラグの考慮を追加しています。このビットがコピーされないことでメモリリークに繋がっていたようです。 [ruby-core:114826] [Bug #19894]

[53a373078d] Nicholas Browning 2023-07-20 00:50:58 UTC

doc/syntax/operators.rdoc を追加して演算子型のメソッドの文法について追記しています。

[639971a080] Takashi Kokubun 2023-09-20 17:14:55 UTC

NEWS で MJIT の削除について追記しています。また configure のオプションの --disable-jit-support を指定する GitHub Actions でのビルドを削除しています。

[7ffee5681f] BurdetteLamar 2023-09-15 18:08:33 UTC

拡張ライブラリ date の DateTime#strftime の rdoc 用コメントのリンクを修正しています。

[ab637cad2b] Nobuyoshi Nakada 2023-09-20 12:32:40 UTC

バッククオート `` でくくってコマンド実行した出力を文字列として得る時に内部的に作成する pipe の IO オブジェクトを klass をクリアして ObjectSpace.each_object で見えないようにしていたのはやめて読み込み後の後始末で rb_io_t のメモリ領域の解放まではしないようにしています。 [ruby-core:113381] [Bug #19624]

[7e350f5310] Kouhei Yanagita 2023-09-19 06:29:35 UTC

Range#bsearch で Fixnum の範囲に納まる beginless/endless range の場合にさらに直接ループする実装で最適化しています。

[2b41df2477] Nobuyoshi Nakada 2023-09-21 01:50:08 UTC

ビルドプロセスの ripper_srcs というターゲットの並列化の抑制で .NOTPARALLEL という疑似ターゲットを使っていたのが新しい GNU Make でないと動かないみたいで common.mk での記述から defs/gmake.mk に移動しています。

[7ba88e13e0] Nobuyoshi Nakada 2023-09-20 16:28:33 UTC

tool/make-snapshot で clean.create という特異メソッドでブロックを受け取るようにして File.open に委譲するようにリファクタリングしています。

[7c98d520f4] Nobuyoshi Nakada 2023-09-20 16:30:17 UTC

tool/make-snapshot でパッケージ作成時の不要なファイル削除を直接 FileUtils.rm_rf などを呼んでたのを clean に追加しておいてから消すという方法に統一して、また -keep_temp オプションが指定された時にパッケージに含めるファイルでも中間ファイルを消してなかったのを消すようにしています。 -keep_temp は終了処理やエラー時の一時ディレクトリの削除を抑制するという意味になっています。 [ruby-core:114817] [Bug #19892]

[a49d17a080] Nobuyoshi Nakada 2023-09-21 03:17:01 UTC

GitHub Actions の各種 workflow で slack 通知のアクションを GitHubruby 組織のリポジトリ内への push の時だけ実行しようとするようにしています。

[0a423d4c4e] Samuel Giddins 2023-09-21 04:32:09 UTC

rubygems の Gem::SafeMarshal の実装で必須キーワード引数を多用していたのをやめて通常引数に変更しています。また Elements::ObjectLink のインスタンスを毎回生成していたのをテーブル(Hash オブジェクト)を作って同じインスタンスを使いまわすようにして GC プレッシャーを減らすよう最適化しています。

[20bd19a9ad] Nobuyoshi Nakada 2023-09-21 09:18:27 UTC

Makefile の YARP_BUILD_DIR という変数の定義を template/Makefile.in および win32/Makefile.sub から common.mk に移動して相対パスでの定義にしています。