ruby-trunk-changes 2023-07-15

今日は主に Enumerator の発生させる StopIteration 例外のスタックトレースの修正や String#tr の不具合修正などがありました。

[174bc22570] Stan Lo 2023-07-14 15:45:04 UTC

irbhistory 保存/読み込みの処理が IRB::HistorySavingAbility を include しているクラスに HISTORY という定数がないと処理をスキップするようになっていたので Reline::RelineInputMethod::HISTORY という定数を Reline::HISTORY の別名として定義しておくようにしています。また定数の存在チェックは削除しています(エラーを起こしたほうが気がつきやすいから?)。 https://github.com/ruby/irb/pull/642

[ebb7552e6d] jinroq 2023-07-14 16:52:33 UTC

doc/contributing/building_ruby.md で rubyリポジトリを clone したあとでそこに cd するコマンド例を追記しています。

[914b657a2b] Peter Zhu 2023-07-14 13:41:28 UTC

gc.c で #if 1 と常に一方の分岐だけ利用するような状態で残されていた preprocessor 分岐の不要なほうを削除しています。

[4e0b287912] Peter Zhu 2023-07-14 13:43:10 UTC

RGENGC_OLD_NEWOBJ_CHECK という RGenGC のデバッグ用と思われるマクロを削除して対応する処理も削除しています。

[6d2174477b] Jemma Issroff 2023-07-14 20:40:09 UTC

yarp で古い ruby のサポートのために定数の存在チェックを追加しています。

[82cd70ef93] yui-knk 2023-07-12 01:51:49 UTC

parse.y で STRCASECMP()/STRNCASECMP() のマクロ定義に st_locale_insensitive_strcasecmp()/st_locale_insensitive_strncasecmp() といった関数を利用していたのを parser_st.c で定義した類似の関数 rb_parser_st_locale_insensitive_strcasecmp()/rb_parser_st_locale_insensitive_strncasecmp() を利用するようにリファクタリングしています。

[f15123c34c] Marcelo Pereira 2022-07-29 13:09:54 UTC

Enumerator で終端に達した後の next などで発生する StopIteration の発生時に例外オブジェクトのコピーを生成して raise させるようにしています。スタックトレースなどが本来の位置と違ってしまっている場合があったようです。一度発生したら保存しているから最初に発生した時の位置を使い続けてしまってたってことかな。

[e5825de7c9] alexandre184 2023-07-15 07:36:53 UTC

String#tr の第1引数の文字列に範囲を示す "-" が含まれていてその始点と終点が同じ時に不正な結果になっていた不具合を修正しています。というか tr の第1引数にこういう指定が出来るの知らなかった。 [ruby-core:114193] [Bug #19769]