ruby-trunk-changes r54606 - r54614

今日は Array#sum の Rational 対応の不具合修正や Struct に重複したメンバ名が渡された時のエラー処理などがありました。

akr: r54606 2016-04-16 01:04:18 +0900

Array#sum で Rational が先頭の要素だった時に SEGV する不具合を修正。 Rational の処理を Integer の時のループに統合しています。

akr: r54609 2016-04-16 01:26:38 +0900

Array#sum で Float が含まれていて goto 文でジャンプした時に同じ要素についてブロックが2回呼ばれないようにしています。

nagachika: r54610 2016-04-16 01:34:22 +0900

tool/redmine-backporter.rb で merger.rb のコマンドラインを組み立てる時に revision はソートしておくようにしています。たいていマージは元のコミット順にしたほうがいいですからね。

nobu: r54611 2016-04-16 09:59:42 +0900

struct.c で rb_struct_define_without_accessor_under(), rb_struct_define_without_accessor(), rb_struct_define(), rb_struct_define_under() などで可変長引数からメンバ名を Array オブジェクトに Symbol として詰める処理を struct_make_members_list() という関数として切り出して共有し、rb_intern() + ID2SYM() で ID を経由して static symbol 化(じゃなくて immortal な dynamic symbol だっけ)しないようにしています。va_list って他の関数に渡せるんですね。

nobu: r54612 2016-04-16 10:00:13 +0900

r54611 で導入した struct_make_members_list() でメンバ名に重複があったら除くように st_table に詰めて Hash 化してから keys で配列を得るようにしています。 重複があったら ArgumentError 例外を発生させるようにしています。 [ruby-core:74971] [Bug #12291]

yui-knk: r54613 2016-04-16 14:14:13 +0900

拡張ライブラリ date で未使用になっていた f_utc6() というマクロを削除しています。 r54169 で使われなくなっていたようです。

yui-knk: r54614 2016-04-16 14:25:59 +0900

同じく拡張ライブラリ date で未使用になっていた f_getlocal() マクロを削除しています。 r54553 から使われなくなっていたようです。