ruby-trunk-changes r57799 - r57809

今日は整数のオーバーフロー検出の最適化続きなどがありました。

nobu: r57799 2017-03-07 18:07:57 +0900

r57797 と同様に str_byte_substr() でも文字列末尾のチェックでオーバーフローを考慮した比較のしかたに変更しています。 [ruby-core:79951] [Bug #13289]

nobu: r57800 2017-03-07 18:13:41 +0900

r57797 や 57799 と同様に rb_str_update() でもインデックスが負の値の時の範囲チェックを修正しています。

nobu: r57801 2017-03-07 19:56:22 +0900

parse.y で代入のための NODE の作成時に trace 命令用のノードを一緒に作っていましたが、putobject が一緒に存在するはずでそっちで trace 命令が作られるので省くようにしています。 [ruby-core:79940] [Bug #13287]

kazu: r57802 2017-03-07 22:04:39 +0900

String#dump の rdoc 用コメントのサンプルコードでクオートがちゃんと閉じられていなかったのがあったのを修正しています。

naruse: r57803 2017-03-08 02:46:54 +0900

RB_FIXABLE() で引数の値を SIGNED_VALUE の値に代入してしまうのをやめるようにしています。

svn: r57804 2017-03-08 02:46:55 +0900

version.h の日付更新。

naruse: r57805 2017-03-08 02:51:35 +0900

r57803 の RB_FIXABLE() の変更を revert しています。 __builtin_add_overflow() に引数をそのまま渡すようにしていましたが、double は渡せないのでだめだったみたいです。

naruse: r57806 2017-03-08 04:48:00 +0900

r57803 や r57805 からのさらに続きで RB_FIXABLE() の定義に __builtin_add_overflow() を使うのはやめて、に RB_POSFIXABLE() と RB_NEGFIXABLE() を使うようにしています。

shyouhei: r57807 2017-03-08 13:50:22 +0900

r57789, r57793, r57806, r57806 といった整数のオーバーフロー検出のための最適化で結局コードが複雑になって速くはないという状態になっているねということで r57793 の状態にまで戻す? ようにしています。

nobu: r57808 2017-03-08 16:34:13 +0900

Proc#to_s の文字列に埋め込むファイルパスや Symbol のエンコーディングを保持するため PRIsVALUE を指示子に使うようにしています。

nobu: r57809 2017-03-08 17:19:56 +0900

r56155 で string.c に入り込んだかっこの対応が取れてないなくて str_byte_substr() で意図しない論理式になっていた不具合を修正しています。