ruby-trunk-changes r38963 - r38974

今日はデバッガ用インタフェースの不具合修正、API 追加や Socket.pack_sockaddr_un の修正などがありました。

shugo:r38963 2013-01-29 09:32:05 +0900

Socket.pack_sockaddr_un で UNIX ソケットのアドレス構造体を pack した文字列を作る際に必要なサイズを正確に計算するようにしています。

svn:r38964 2013-01-29 09:32:10 +0900

version.h の日付更新。

nobu:r38965 2013-01-29 09:58:55 +0900

r38962 の ChangeLog エントリが重複していたので一方を削除しています。

akr:r38966 2013-01-29 12:06:40 +0900

テストで Tempfile を利用しているところで明示的な Tempfile#close(true) で不要になったらすぐファイルを削除しておくようにしています。

nobu:r38967 2013-01-29 16:49:22 +0900

rb_mod_method_arity() という関数で継承したメソッドの可視性だけを変更した時などに method entry が複製された時に正しい数値を返さないという不具合を修正しています。 rb_mod_method_arity() や rb_obj_method_arity() は ruby のコア部分では利用されておらず、拡張ライブラリからの利用が想定されているようです。 Method#arity や Proc#arity へは影響なさそうです。 ChangeLog を探してみたら以下のような ruby-dev のスレッドがみつかりました。 [ruby-dev:25134]

nobu:r38968 2013-01-29 16:50:27 +0900

set_trace_func や Thread#set_trace_func, add_trace_func を $SAFE==4 の時に禁止するようにチェックを追加しています。

nobu:r38969 2013-01-29 16:51:00 +0900

set_trace_func と同様に TracePoint.enable, disable でも $SAFE==4 の時に禁止するようにチェックを追加しています。

ko1:r38970 2013-01-29 17:25:32 +0900

デバッガ用の情報取得 API である rb_debug_inspector_open() をメソッド内の eval 内で実行すると SEGV するという不具合の修正と、クラスの情報に IClass (include や prepend した時に Class/Module の参照となる内部的なクラス)をそのまま渡していたので参照先の Class/Module を渡すように修正しています。 [ruby-core:51192] [Bug #7635]
また rb_debug_inspector_frame_self_get() という新しい API を追加しています。 Frame オブジェクト自体 (cfp->self って何が入ってるんでしたっけ)?を取得するようです。

nobu:r38971 2013-01-29 17:28:19 +0900

r38970 で新規追加したファイルの svn property 設定。

nobu:r38972 2013-01-29 17:58:04 +0900

r38968 で set_trace_func のテストのために定義した assert_security_error_safe4 というメソッドから $SAFE = 4 をセットするコードは呼び出し元に追い出して、ブロックではなく Proc オブジェクトを引数に受け取るように簡便化しています。

nobu:r38973 2013-01-29 18:30:37 +0900

r38970 のテストの修正。 C で書いた拡張ライブラリ部分でモジュールの定義に rb_define_class_under() を利用していたのを rb_define_module_under() に修正したり、r38962 でデバッグ情報のインデックスは long を使うようにしたのでそれに合わせるようにしています。

eregon:r38974 2013-01-29 19:32:27 +0900

Array#&, |, uniq などのメソッドで要素の同値性を hash メソッドと eql? メソッドを用いて判定することを追記しています。 [ruby-core:51266] [Bug #6923]