ruby-trunk-changes r64597 - r64610

今日は拡張ライブラリ date の修正や、real/imag が整数の Complex 同士の割り算の結果で不要な時も real/imag が Rational のままになっていたのを Integer に正規化するようにする変更などがありました。

kazu: r64597 2018-09-01 00:05:29 +0900

拡張ライブラリ date の strftime の rdoc 用コメントで %S の取り得る範囲が 0-59 となってましたが、うるう秒を考慮すると 60 になる可能性もあるので 0-60 に修正しています。これうっかり typo だと思ってしまいそうですね。

svn: r64598 2018-09-01 00:05:32 +0900

version.h の日付更新。

kazu: r64599 2018-09-01 00:25:52 +0900

psych の定数 Psych::VERSION の代入部分で定数の再定義の警告が出ることがあるので ||= で未定義の時のみ代入するようにしています。

kazu: r64600 2018-09-01 00:29:06 +0900

と思ったら r64599 を revert しています。

kazu: r64601 2018-09-01 10:37:12 +0900

標準添付ライブラリ time の Time.strptime の rdoc 用コメントのフォーマット指示子の説明に %Q と %+ について追記しています。 %+ というのは知らなかったなぁ。date(1) コマンドの表示と同じような表示を生成してくれるんですね。

nobu: r64604 2018-09-01 13:09:02 +0900

拡張ライブラリ date の関数マクロで C のブロックに展開するマクロを do{...}while(0) でくくる手法を使うようにしています。

nobu: r64606 2018-09-01 15:14:06 +0900

ext/date/date_strptime.c のインデント修正のみ。

nobu: r64607 2018-09-01 15:14:07 +0900

拡張ライブラリ date で 10 の 3乗を f_expt() を使ってわざわざ計算しているところがあったので定数 1000 を使うように修正しています。

nobu: r64608 2018-09-01 15:19:05 +0900

拡張ライブラリ date で文字列オブジェクトのバッファを RSTRING_PTR() で取り出した時に終端が NUL 文字で終わっていることを期待したコードになっているところがあったので、サイズを意識して処理するように修正しています。

kazu: r64609 2018-09-01 15:59:36 +0900

r64599 の Psych::VERSION の再定義の警告除去のリトライ。未定義時のみ代入するようにするため defined? でチェックしてから代入するようにしています。

nobu: r64610 2018-09-01 16:34:31 +0900

Complex 同士の "/" 演算子で real/imag ともに整数の時に、結果の Complex の real, imag が Rational のままで割り切れる時も Integer になってなかったので、rb_rational_canonicalize() を呼んで不要なら Rational にならないようにしています。一応仕様変更って感じですかね……。