ruby-trunk-changes r30745 - r30756

本日は benchmark ライブラリのリファクタリング&ちょっと仕様変更、io/console ライブラリで IO#winsize= メソッドの新設などが入っています。また rubygems 1.5.0 がマージされています。

akr:r30745 2011-01-31 22:08:27 +0900

missing/langinfo.c の関数マクロの引数にかっこをつける修正です。

nagachika:r30746 2011-01-31 23:29:49 +0900

node.c の rb_id2str() を同じ引数で 2度呼んでいたので返り値を使い回すようにしています。

naruse:r30747 2011-02-01 01:11:06 +0900

benchmark ライブラリのドキュメント、コード整理、使い勝手の向上(ちょっと仕様変更。Benchmark.benchmark の第一引数 caption のインデントは自動で計算して付加されるようになった)などなどです。
しかし Benchmark.bmbm で Object#tap を使って STDOUT.sync を元に戻しているのは、なるほど tap ってこういう時に嬉しいんだなーという例としておもしろく読みましたが、ensure 節を使うほうがいいんじゃないでしょうか。

svn:r30748 2011-02-01 01:11:07 +0900

version.h の日付更新。

tarui:r30749 2011-02-01 02:31:18 +0900

Windows 環境で inet_ntop(IP アドレスの文字列表現への変換)の実装を提供しています。

nobu:r30750 2011-02-01 07:56:07 +0900

拡張ライブラリ console のちょっとリファクタリング。GetWriteFD マクロで記述できてた内容をベタに書いていたのをマクロを利用するようにしています。

nobu:r30751 2011-02-01 08:01:46 +0900

拡張ライブラリ console を require した時の IO#winsize= メソッドを追加しています。*nix な環境(?) ではioctl(fd, TIOCSWINSZ) で端末サイズを設定しています。Windows 版でも SetConsoleScreenBufferSize() という関数を呼んでいるので何かしら動くようです。[EXPERIMENTAL] とあるのでまだ実験的なメソッドだそうです。

ryan:r30752 2011-02-01 12:11:34 +0900

rubygems 1.5.0 リリース版をマージしています。ざっと眺めた感じではいくつかエラー時の処理の修正がある模様。あとは rubygems/builder.rb で require の変化があるのが気になる程度です。修正が一気に入るとなかなかツラいですね。

kosaki:r30753 2011-02-01 13:33:00 +0900

benchmark のテストで Benchmark::Tms#add! で実時間が加算されることをチェックするテストで空のブロックの処理時間を測定しているため失敗することがあったらしく、ブロックの中で sleep 0.1 で少し待つようにしています。Windows だと時間の測定精度が粗くて最低単位時間よりも早く終わってしまうことがあったのでしょう。Linux で実行した時は再現していませんでした。

usa:r30754 2011-02-01 15:15:14 +0900

Windows 環境で UNC表記(//hostname/Program Files みたいなネットワーク上のファイルの指定する表記)で起動するテストで localhost をホスト名として利用しているところを 127.0.0.1 にしています。 XP 以前では localhost を NBT(NetBIOS TCP/IP かな?)のホスト名として名前解決できなかったとのこと。

akr:r30755 2011-02-01 20:47:01 +0900

enc/encdb.c の関数マクロの引数にかっこをつける修正です。

kazu:r30756 2011-02-01 22:17:05 +0900

doc/NEWS-1.9.2 に新規メソッド File#size を追記しています。