ruby-trunk-changes r66749 - r66755

今日は Range#last の最適化の再修正や NameError の例外メッセージの Encoding の修正などがありました。

mrkn: r66749 2019-01-08 13:37:40 +0900

r66734 の Range#last の最適化の再修正で Range#each が再定義されていた場合も脱最適化するようにしています。うーむなるほど。

svn: r66750 2019-01-08 13:37:44 +0900

version.h の日付更新。

mrkn: r66751 2019-01-08 13:53:06 +0900

r66688 での complex.c の f_add() の最適化で条件に誤って UNLIKELY() を使ってたところを LIKELY() に変更しています。

nobu: r66752 2019-01-08 16:45:04 +0900

Time.strptime のテストに "%p" という指示子を使ったテストを追加しています。

nobu: r66753 2019-01-08 18:08:31 +0900

内部的に発生する主に NameError や NoMethodError などのメッセージで埋め込まれる文字列に非 ASCII な encoding の文字があった時に、実際に端末や標準エラー出力に出力されない状態でも locale の設定に依存して encoding が変化しているので、メッセージのセット時ではなくて出力時に escape するようにしています。と、書きつつよくわかってないんですけど元の挙動そんなにダメなんですかね。まあこのほうがいいといえばいいか…… [ruby-core:90853] [Bug #15497]

svn: r66754 2019-01-08 18:08:37 +0900

r66753 のインデントのタブを空白に展開。

nobu: r66755 2019-01-08 19:53:43 +0900

r43217 あたりで追加した NameError のテストで例外のメッセージを正規表現でチェックしていたのを NameError#name のチェックで代替するようにしています。 [ruby-core:90853] [Bug #15497]