ruby-trunk-changes r56327 - r56341

今日は拡張ライブラリ bigdecimalBigDecimal#div の結果の精度不足の不具合修正などがありました。

kazu: r56327 2016-10-03 21:18:33 +0900

RBIGNUM_SIGN(), RBIGNUM_POSITIVE_P(), RBIGNUM_NEGATIVE_P() などのマクロで使っていた FIX2LONG() を RB_FIX2LONG() と prefix つきのマクロを使うようにしています。

kazu: r56328 2016-10-03 21:21:14 +0900

標準添付ライブラリ logger の Logger#initialize の rdoc 用コメントで第2引数 shift_age の省略時の値を 0 に修正しています。

kazu: r56329 2016-10-03 21:26:00 +0900

NEWS ファイルに r56326 で追加した拡張ライブラリ readline の Readline.quoting_detection_proc= の機能について追記しています。

nobu: r56330 2016-10-03 21:39:10 +0900

r56326 の拡張ライブラリ readline の rl_char_is_quoted_p 対応で NUL 終端した文字列を期待した rb_locale_str_new_cstr() を使っていたところで文字列長がわかっているので rb_locale_str_new() を使うように修正しています。 [ruby-core:76750] [Feature #12659]

naruse: r56332 2016-10-04 06:06:50 +0900

regexec.c の正規表現VMデバッグ用のマクロ OPCODE_EXEC_HOOK() でダンプする命令のアドレス p は分岐時に既に次のアドレスに移動しているのでひとつ前に戻したものをダンプするように修正しています。また match_at() で goto fail でエラー処理に飛び込んだ時に CASE(OP_FAIL) の処理により OPCODE_EXEC_HOOK() を再度通らないようにしています。

naruse: r56333 2016-10-04 06:06:50 +0900

regcomp.c のデバッグ用の出力関数 onig_print_compiled_byte_code() で少し出力するメッセージを修正しています。

svn: r56334 2016-10-04 06:06:51 +0900

version.h の日付更新。

nobu: r56335 2016-10-04 09:55:14 +0900

拡張ライブラリ bigdecimalデバッグ用出力のメッセージを少し修正。あとなぜか入ってた getchar() の呼び出しを消しています。これなんだろ。

nobu: r56336 2016-10-04 09:55:15 +0900

拡張ライブラリ bigdecimalBigDecimal#div で結果の BigDecimal オブジェクトの精度が足りていなかった不具合を修正しています。 [ruby-core:77475] [Bug #12805]

nobu: r56337 2016-10-04 12:59:46 +0900

Array#dig の rdoc 用コメントでサンプルの例外メッセージを修正。 https://github.com/ruby/ruby/pull/1455

kazu: r56338 2016-10-04 21:23:14 +0900

r56298 と r56315 の ChangeLog エントリの typo 修正。

kazu: r56339 2016-10-04 21:24:40 +0900

拡張ライブラリ win32ole の WIN32OLE_VARIANT.value= の rdoc 用コメントの typo 修正。

usa: r56340 2016-10-05 01:25:01 +0900

r56320 の String#hash の変更などに端を発するものだと思いますが、st_data_t 型の変数を整数オブジェクトに変換する場合 st_data_t の値は Bignum になる可能性があるのですが、そうすると hash 値が Bignum を返すようになって問題がおきることがあるそうで(なんだろ)、ST2FIX() というマクロを追加して long にキャストしてから Fixnum に変換するようにしています。あれでも long も全て Fixnum で表現できる範囲に収まるわけではないよな、と思ったら RB_LONG2FIX() は上位 1bitは無視して左 shift してしまうのでそこは問題ないみたいでした。

svn: r56341 2016-10-05 01:25:02 +0900

version.h の日付更新。