ruby-trunk-changes r49726 - r49756

今日は Complex#* の最適化や多重代入の最適化とそれに関連して VM の新しい命令 reverse の追加などがありました。

gogotanaka: r49726 2015-02-25 02:24:45 +0900

r49433 や r49449 の Math のモジュール関数に Fixnum や Bignum を渡した時の高速化についてカバーするテストケースを追加しています。 [ruby-core:67919] [misc #10809]

svn: r49727 2015-02-25 02:24:56 +0900

version.h の日付更新。

marcandre: r49728 2015-02-25 03:09:10 +0900

標準添付ライブラリ uriURI.join のサンプルコードで結果が間違っていたのを修正しています。 https://github.com/ruby/ruby/pull/838

gogotanaka: r49729 2015-02-25 08:53:21 +0900

Math.log が任意個の引数を受け取れるようになっていたのを 2つまでにしてそれ以上は ArgumentError にするようにしています。 こんな実装になってたのか。っていうか第2引数に対数の底が指定できるんですね。 [ruby-core:66143] [Bug #10487]

nobu: r49730 2015-02-25 09:20:35 +0900

r49614 の多重代入の最適化で右辺と左辺で要素数が異なっていた時にもVMスタックポインタを調節する命令を追加して最適化した命令を利用するように修正しています。

nobu: r49731 2015-02-25 09:20:39 +0900

r49614 の続きで VM に reverse というスタックの最上部のn個の順番を反転する命令(swap を n 個に拡張した命令)を追加して、多重代入で左辺値が2つより多い時にも中間データの配列を作成しないようにする最適化を有効にしています。

nobu: r49732 2015-02-25 11:25:22 +0900

complex.c で Visual C の場合に _USE_MATH_DEFINES というマクロを #define するようにしています。 M_PI を利用するために必要とのこと。

naruse: r49740 2015-02-25 15:35:47 +0900

tool/mkconfig.rb で生成する rbconfig.rb で 2.1 系以降のバージョン番号のつけかたに対応するための修正。

nobu: r49743 2015-02-25 15:48:55 +0900

complex.c で polar の特別なケースでの最適化を rb_nucomp_mul() からその中で読んでいる f_complex_polar() 内に移動しています。

nobu: r49744 2015-02-25 15:59:39 +0900

Dir.glob で結果のファイルパス文字列のエンコーディングを渡されたパターンの文字列のエンコーディングに変換するようにしています。

normal: r49746 2015-02-25 18:17:17 +0900

sighandler() で errno を退避して復帰させるようにしています。 [ruby-core:68172] [Bug #10866]

nobu: r49747 2015-02-25 18:17:28 +0900

r49740 の続き。 tool/runruby.rb でも rbconfig.rb の RUBY_VERSION のチェックに追随させています。

nobu: r49748 2015-02-25 18:17:33 +0900

tool/mkconfig.rb で RbConfig から DESTDIR を削除するようにしています。

usa: r49750 2015-02-25 22:08:01 +0900

Win32API.new に配列で型の指定を渡すとエラーになっていた不具合を修正。 [ruby-core:68208] [Bug #10876] https://github.com/ruby/ruby/pull/835

svn: r49751 2015-02-25 22:08:16 +0900

r49750 で新規追加されたファイルの svn property 設定。

hsbt: r49752 2015-02-25 22:22:17 +0900

spec/default.mspec で .mspec ファイルを rubyspec/ruby.2.2.mspec と特定のバージョンのファイルを読んでいたのを rubyspec/ruby.mspec を読むように修正しています。

hsbt: r49753 2015-02-25 22:25:11 +0900

r49752 の再修正。 rubyspec/ruby.mspec ではなく rubyspec/default.mspec を読み込むように変更しています。

nobu: r49754 2015-02-25 23:16:05 +0900

Complex#* で実数部、虚数部がそれぞれ 0 の時のショートカットを追加してさらに最適化しています。

nobu: r49755 2015-02-26 00:04:45 +0900

r49747 の tool/runruby.rb の再修正。 RUBY_VERSION の後に空白がはいらない(r49740 の変更で入らなくなってる)のも許容するようにしています。

svn: r49756 2015-02-26 00:04:58 +0900

version.h の日付更新。