ruby-trunk-changes r29151 - r29160

思いのほか反響が大きくてこれが包囲網ってやつかと gkbr してますがあまり気にせず続けていこうと思います。では今日の trunk へのコミットです。

nagai: r29151 2010-08-31 17:34:56 +0900

VC++で --enable-tcltk-stubs を有効にしてmakeすると、ヘッダファイルの指定方法の違いで tk のビルドに失敗するのを修正。[Bug #3771] [ruby-dev:42159].

akr: r29154 2010-08-31 21:11:02 +0900

本日の akr さんの Pathname のメソッドの 拡張ライブラリへの移動は Pathname#exist?

nobu: r29155 2010-09-01 12:56:39 +0900

C で実装されたメソッドでの例外や break 等の制御文の実行のために rb_thread_t 構造体の state というメンバに確かビットフラグで情報を保持しているのですが、例外 break 処理中に割り込み処理(シグナルハンドラやファイナライザ)set_trace_func で設定された hook の呼び出し(2010-09-02 修正)の処理が入り込んだ時にそれを書き換えてないので割り込み処理内で例外が再発生してしまってスタックのつじつまが合わなくなって落ちるという [Bug #3722]について
[ruby-dev:42162] で投稿されたパッチがコミットされています。投稿者の芝さんは割り込み処理中に別の例外が発生した時にどうするのか気にされてますがこのままなんでしょうか。多分これだと例外は無視されるのでそれでいいのかもしれません。
どうでもいいですが state の他に似たような用途で tag というメンバもあった気がするんですが何が違うんだったか。一度は読んだはずなんですが忘れてしまってます。しょんぼり。

naruse: r29156 2010-09-01 14:36:31 +0900

enum_zip の RDoc 用のコメントの typo 修正

naruse: r29157 2010-09-01 14:36:33 +0900

rb_ary_rotate_m の RDoc 用のコメントの typo 修正

naruse: r29158 2010-09-01 16:52:16 +0900

String#tr などで使う置換用のテーブルに Hash を使っていたところを置換文字が ASCII 文字だけだったら 256 でおさまるので char[256] の配列を使うようにして最適化しているっぽい。このあたりは一昨日 r29146 でも修正しているあたりで、TR_TABLE_SIZE という定数マクロを定義しているのに 256 決め打ちの配列インデックスを使ってたりしてまだ手が入りそうな気がする。

ryan: r29159 2010-09-01 17:40:53 +0900

minitest の 1.7.1 r5835 を取り込み。ちらっと見たところ must_silent とか assert_silent とか新しい条件文が追加されているらしい。あまり minitest 使ってないのでよくかりません。

akr: r29160 2010-09-01 22:04:10 +0900

Pathname のメソッド C 拡張ライブラリへの移動もうひとつ。Pathname#grpowned? の移動。