今日は VM 命令列の最適化時のメモリ不正アクセスの修正や Windows 版での演算子優先度の間違いで不正な条件になってた分岐の修正など内部的な修正がありました。
[557b4eb4aa] aycabta 2021-06-23 12:00:20 UTC
標準添付ライブラリ reline のテスト用の assertion メソッド assert_external_string_equal でエラー時のメッセージを追加しています。
[7c31ecd3ac] Jeremy Evans 2021-06-15 17:11:00 UTC
win32/win32.c で if 文の条件で演算子の優先度の問題で意図と違う結合順になってしまっていたところをかっこをつけて修正しています。おおう、これは Windows で遮蔽されている構造体の中身を調査して狙ったフィールドを取り出す時の関数で、実際に影響ありそうだけど動いてたのかな。 [ruby-core:104232] [Bug #17946]
[2fb435b3ab] Ketan Bhatt 2021-05-13 09:28:51 UTC
String#hash の rdoc 用コメントに Object#hash への参照を追記しています。動機としては String#hash がプロセスをまたいで同じ値なら同じ hash 値になると思ってたけど違ったので、その注意書きのある Object#hash へのリンクを復活させたということみたいです。
[8209b73580] eileencodes 2021-06-22 17:43:18 UTC
複数 Ractor を使いはじめた時に rb_gc_enable() を呼ぶ前に GC.enable を true にしておくようにしています。 [ruby-core:104260] [Bug #17985]
[b29c48efc0] git 2021-06-23 17:03:26 UTC
version.h の日付更新
[31f4d26273] eileencodes 2021-06-23 17:28:22 UTC
iseq_peephole_optimize() で nobj の type のチェックが漏れてて ADJUST が次にきてた時に不正なメモリアクセスをする可能性があったのを修正しています。 [ruby-core:104371] [Bug #18001]
[0fbdaaf7c9] 卜部昌平 2021-06-24 02:57:40 UTC
random.c の rand_bytes() で rb_rand_bytes_int32() を直接呼び出していたのを rb_random_interface_t::get_bytes にセットされている関数を呼ぶようにしています。この構造体で実体の関数を変更できるようにしてたつもりだったのに決め打ちになってたってことですね。
[6875408583] Nobuyoshi Nakada 2021-06-21 05:04:29 UTC
io.c でシステムによる改行コードの違いを RUBY_CRLF_ENVIRONMENT というマクロを追加して同じ条件を何度も書いてたのをまとめるリファクタリング。
[4c8c3fb230] Nobuyoshi Nakada 2021-06-23 10:18:22 UTC
tool/make-snapshot の rubygems などの require をファイルの先頭に移動しています。他の標準添付ライブラリが default gems 化されているので、その前に rubygems をロードしておくようにしているようです。
[358a357f72] Nobuyoshi Nakada 2021-06-23 02:02:44 UTC
thread.c の rb_thread_wait_for_single_fd() や do_select() で共通の select(2) や ppoll(2) の戻り値をチェックする処理をマクロとして切り出すリファクタリング。
[1356b90c91] Nobuyoshi Nakada 2021-06-23 12:53:48 UTC
標準添付ライブラリ mkmf.rb のディレクトリツリーを削除するコマンドを格納する Makefile の定数 RM_RF で使うコマンドに RbConfig::CONFIG["RMALL"] があればそちらを使うようにしています。元は ruby の標準添付ライブラリ un.rb の機能を使うようになってました。
[627aafac86] Nobuyoshi Nakada 2021-06-23 12:55:56 UTC
macOS での make clean 時にデバッグ用のファイルが置かれる .dSYM ディレクトリも削除するようにしています。