ruby-trunk-changes r30228 - r30239

今日の大きな変更は IO#advise メソッドの追加で piosix_advise が利用できるようになったことです。

nobu:r30228 2010-12-16 23:29:25 +0900

configure の --program-transform-name でプログラム名の置換を指定していても効かない不具合を修正。 [ruby-dev:42777]

kosaki:r30229 2010-12-17 00:01:55 +0900

posix_fadvise が利用できる環境で IO#advice メソッドが追加されています。 [Feature #4038]
posix_fadvise はカーネルに「これからこのファイルディスクリプタからこんなふうに読み書きするんでよろしく(最適化してね)」という情報を通知するもので、シーケンシャルに読むから先読みして欲しいとかランダムアクセスだからあんま先読みしても意味ないよとか、そういうのを教えてあげるとカーネルがうまくやってくれてパフォーマンスが良いかもしれない、というようなやつです。advise(:sequential) のようにシンボルで指定するみたいです。
ruby-core でパッチが飛び交ってる時にちゃんと読んでなかったので今更ですが、シンボルを typo したり、その環境でサポートされていないものを渡してしまったりした時に何も言わず nil を返すのでそれは raise してくれるほうがいいかなぁと思いました。テストをみるとそこは意図的みたいですけど。

svn:r30230 2010-12-17 00:01:57 +0900

version.h の日付更新。

kosaki:r30231 2010-12-17 00:36:49 +0900

r30229 のインデントのみ修正。

drbrain:r30232 2010-12-17 04:20:51 +0900

String#encode の rdoc が更新されています。
<i></i> で挟む書きかたはだめ、というか標準じゃなかったんですね。いそいそ……。

akr:r30233 2010-12-17 07:05:58 +0900

iseq.c の関数マクロの引数をかっこでくくる修正です。

nobu:r30234 2010-12-17 07:06:33 +0900

rb_io_advise の不要な変数の削除。インデントの修正など。

nobu:r30235 2010-12-17 07:08:50 +0900

io.c 先頭の余計な空行を消しているだけです。

usa:r30236 2010-12-17 13:29:16 +0900

Windows でのビルドで BASERUBY が設定されていない時に make (nmake?) でエラーメッセージを吐いて終了するようにしています。[ruby-dev:42782]
BASERUBY(--with-baseruby)の指定はなくてもいいケースもあるので、実際に必要になった時に空だったらエラーにするようにしています。

nobu:r30237 2010-12-17 17:04:35 +0900

ruby に -r オプションを指定して、引数を渡さなかった時の動作についてテストを追加しています。エラーじゃないんですね。

nobu:r30238 2010-12-17 18:35:42 +0900

tool/mkconfig.rb の universal 変数を利用していなかったのを修正。

nobu:r30239 2010-12-17 19:35:20 +0900

ちょっと詳細追いきれてませんが mkfm のテストで余計な出力を抑制しています。chkbuild(自動で make test-all してる)でテスト毎の差分が不要に出てしまうのを防ぐためらしいです。