ruby-trunk-changes r31915 - r31920

今日は Yokohama.rb #9 の会場から更新です。
Module#mix でメソッドのコピーを抑制する仕様の実装が追加されています。また date の変更もありました。

naruse:r31915 2011-06-04 04:09:59 +0900

rubygems の gem witch コマンドのテストで "missing" という名前を存在しないライブラリのつもりで利用していたのですが ruby のソースツリーに missing というディレクトリが存在するのでテスト失敗してしまうのを修正しています。 [ruby-core:36685] [Bug #4815]

svn:r31916 2011-06-04 04:10:04 +0900

version.h の日付更新。

nobu:r31917 2011-06-04 11:30:59 +0900

Module#mix でメソッド名の rename の指定で nil にするとメソッドのコピーを抑制するという仕様を実装しています。このあたりの Module#mix の詳しい仕様はわたしの知るところ RubyKaigi2010 のまつもとさんの発表しかないと思うので(Matz にっきにはもっと簡単な例しかない)どこかで文章化しておきたいですね。多分具体的な仕様は今から議論するんでしょうけど。 [ruby-dev:43620]

nobu:r31918 2011-06-04 11:32:39 +0900

Module#mix による定数のコピーのテスト(デフォルトではコピーしていないこと)を追加しています。ただ今の Module#mix の実装は定数のコピーが(コピーするように指定した場合)うまく動いていません。

nobu:r31919 2011-06-04 12:49:50 +0900

clone_const() を st_foreach() に渡した時に関数の型の違いを吸収するために clone_const_i() というラッパ関数を定義して利用するようにしています。また ins_methods_push() のラッパである ins_methods_i() 等の一群の関数も引数の型を変更しています。

tadf:r31920 2011-06-04 17:02:37 +0900

date の修正です。構造体のメンバの変更(環境によっては double 使っていたところを float に変更したりメンバ名を変更したり)や、演算結果が FIXNUM に収まる時の処理の分岐(効率化)などの修正があるようですが、 diff が大きいので網羅的には読めていません。