ruby-trunk-changes r54018 - r54035

今日は "/" や "%" の最適化、alias 時の method_added が呼ばれた時の method entry から元のメソッド名が取れるようにする修正などがありました。

nagachika: r54018 2016-03-08 00:15:59 +0900

拡張ライブラリ tk でフォント名の指定が typo しているところがあったのを修正しています。 [ruby-core:72505] [Bug #11886]

svn: r54019 2016-03-08 00:16:00 +0900

version.h の日付更新。

nagachika: r54020 2016-03-08 00:23:25 +0900

拡張ライブラリ tk の tkextlib/blt/tree.rb で initialize メソッド名を typo していたのを修正しています。

nagachika: r54021 2016-03-08 00:26:38 +0900

拡張ライブラリ tk の tkextlib/tcllib/toolbar.rb でも initialize メソッドのメソッド名を typo していたのを修正しています。 [ruby-core:72511] [Bug #11891]

nagachika: r54022 2016-03-08 00:28:57 +0900

拡張ライブラリ tk の tkextlib/tcllib/tablelist_tile.rb で require を typo していたのを修正しています。 [ruby-core:72513] [Bug #11893]

usa: r54023 2016-03-08 00:44:34 +0900

r53998 で shebang の行の改行に "\r" が含まれていたら警告するようにしたのは、DOSISH が定義されている環境では出力しないようにしています。

nobu: r54024 2016-03-08 04:39:32 +0900

r54023 の再修正で DOSISH で warn_cr_in_shebang() の呼び出しをかこむのではなくてこのマクロ定義の部分で分岐しておくようにしています。またテストもスキップさせるのではなく警告の有無を環境によって変えるようにしています。

odaira: r54025 2016-03-08 08:22:49 +0900

標準添付ライブラリ net/imap のテストでスレッドの scheduling に依存して responses, requests が得られない場合もあるのでチェックを追加しています。 AIX でのテストのためでしょうが一般的な問題のようです。 Net::IMAP#idle のタイムアウトが短すぎるのかな。

usa: r54026 2016-03-08 16:55:48 +0900

Windows 向けの端末への出力関数 rb_w32_write_console() の VT100 エミュレーション(色付け?)をしていた部分を console が元々サポートしていたらそのまま出力するようにしています。

usa: r54027 2016-03-08 17:34:35 +0900

同じく rb_w32_write_console() で WriteConsoleW() のエラーをチェックするのに GetLastError() をみて未実装(ERROR_CALL_NOT_IMPLEMENTED)だったら disable フラグをたてて次からなにもせず -1 を返すようにしていたのを削除しています。 Windows 9X のサポートのための部分だったようです。 disable 変数はもう不要みたいですね。

naruse: r54028 2016-03-08 17:54:38 +0900

VM 命令の opt_mod 命令で y(右辺値)が 0 だった時にその場で rb_num_zerodiv() を呼び出していましたが、脱最適化してメソッド呼び出しにきりかえることで例外のバックトレースにメソッド名を含めるようにしています。 [ruby-core:74221] [Bug #12158]

naruse: r54029 2016-03-08 18:15:18 +0900

rb_divmod(), rb_div(), rb_mod() などの関数を追加して、insns.def や numeric.c でそれぞれ実装していたのはこの関数呼び出しに置き換えています。 rb_divmod() は C のコンパイラの "/" や "%" 演算子の挙動が C99 に準拠していることを期待して余計な分岐を減らしています。

headius: r54030 2016-03-08 23:38:22 +0900

test/ruby/test_array.rb の Array#repeated_permutation についてのテストメソッドを分割しています。また子プロセスを起動する assert_separately を使っているところで timeout を 30秒に伸ばしています。

nobu: r54031 2016-03-09 00:07:05 +0900

標準添付ライブラリ logger で Logger::LogDevice#initialize の Hash を受け取るオプション引数をキーワード引数におきかえています。

svn: r54032 2016-03-09 00:07:06 +0900

version.h の日付更新。

nobu: r54033 2016-03-09 00:21:22 +0900

r53766 のあたりで --enable/--disable フラグや --debug フラグ、--dump フラグのオプションの定義をマクロ化したもので末尾の要素のあとにカンマが置かれてしまうので、要素にカンマを含めずに EACH_FEATURES() や EACH_DUMPS() で明示的にセパレータを挟むようにしています。

nobu: r54034 2016-03-09 00:21:23 +0900

.travis.yml のビルド対象ブランチから ruby_2_0_0 を削っています。

nobu: r54035 2016-03-09 00:29:48 +0900

alias した時に起動される Module#method_added の時点で method entry に元のメソッド名のIDがセットされた状態で呼ばれるように修正しています。