ruby-trunk-changes r32906 - r32931

今日は Socket の接続(connect)にタイムアウトを指定できるようになる新機能の追加、autoload の内部的な不具合(メモリリーク)の修正などがありました。

akr:r32906 2011-08-10 22:13:57 +0900

Socket の接続時にタイムアウトを指定するオプション引数を受け付けるようにしています。 Socket#connect_nonblock と IO.select を利用してすぐに接続できない時は IO.select で接続できるようになるまで待つ実装が追加されています。 [ruby-core:38538] [Feature #5101]
それはともかく Socket.tcp というメソッドで TCPSocket を接続できるの知りませんでした。

akr:r32907 2011-08-10 22:14:51 +0900

r32906 の ChangeLog に ML の参照を追記しています。

akr:r32908 2011-08-10 23:04:23 +0900

r32906 の修正で省略可能なタイムアウトの指定引数が引数サイズのチェックでエラーになっていたので修正。

nobu:r32927 2011-08-11 15:07:37 +0900

昨日の r32902 で mkmf.rb が $LIBRUBYARG を常に設定するようにしたのは revert して、標準添付でない拡張ライブラリ用の Makefile 生成時にはRbConfig の $LIBRUBYARG を利用するようにしています。 [ruby-core:38802] [Bug #5147]

svn:r32929 2011-08-11 15:07:46 +0900

version.h の日付更新。

nahi:r32931 2011-08-11 15:51:42 +0900

private constant 機能の追加時に定数を管理する const_tbl を追加してインスタンス変数とは別のテーブルで管理するようにした時に autoload 用のエントリ(この実体はよく調べていませんが)を const_tbl から削除しようとするようにしていましたが、これはまだ iv_tbl に格納されていて、内容も rb_const_entry_t という可視性の情報つきの構造体ではなくて NODE が入っているのでメモリの解放も不要だった(もっとも const_tbl から削除しようとしても存在しないので free() は通らなくなっていたのですが)ので修正しています。