ruby-trunk-changes r48235 - r48254

今日は主にキーワード引数の処理の高速化とその関連のリファクタリングがありました。

ko1: r48235 2014-11-03 02:34:51 +0900

gc.c で デバッグ用にオブジェクトの情報をダンプする時に呼ばれる obj_info() で T_STRING 型のオブジェクトの時に文字列の内容をダンプするようにしています。

svn: r48236 2014-11-03 02:35:09 +0900

version.h の日付更新。

ko1: r48237 2014-11-03 02:36:51 +0900

sample/simple-bench.rb というメソッド呼び出しについてのベンチマークスクリプトを追加しています。 benchmark/ の下じゃないんですね。

svn: r48238 2014-11-03 02:36:57 +0900

r48238 で新規追加した sample/simple-bench.rb の改行コードと svn property を変更しています。

ko1: r48239 2014-11-03 03:02:55 +0900

キーワード引数の処理を最適化しています。詳細はチケット参照。 [ruby-core:65937] [Feature #10440]

svn: r48240 2014-11-03 03:03:16 +0900

r48239 で新規追加されたファイルの svn property を設定。

ko1: r48241 2014-11-03 03:40:45 +0900

r48239 でとても大きな配列を meth(*ary) のように展開して引数に渡すのがエラーにならなくなったのでテストケースに追加しています。 [ruby-core:65937] [Feature #10440]

ko1: r48242 2014-11-03 08:14:21 +0900

構造体 rb_iseq_q の arg??? という名前のメンバを param というメンバの構造体にまとめるリファクタリング[ruby-core:65937] [Feature #10440]

naruse: r48243 2014-11-03 09:33:44 +0900

標準添付ライブラリ uriURI::VERSION を 0.9.11 から 0.10.0 に更新しています。

naruse: r48244 2014-11-03 09:33:47 +0900

標準添付ライブラリ uri の RFC3986 準拠したほうのパーサ URI::RFC3986_Parser::RFC3986_URI で query string に "[" と "]" を含められるようにしています。 [ruby-core:65800] [Bug #10402]

hsbt: r48245 2014-11-03 09:43:39 +0900

r48239 で追加した vm_args.c で型の変換エラーで clang でコンパイルできていなかったところを RARRAY_LEN() → RARRAY_LENINT() と修正しています。

hsbt: r48246 2014-11-03 11:47:49 +0900

NEWS ファイルの Matrix の新機能のところに末尾にピリオドを追記しています。 [ruby-core:65987] [misc #10446]

ko1: r48247 2014-11-03 13:43:07 +0900

rb_iseq_t::param::opt_num が省略可能引数の数 + 1 を持っていたのを、省略可能引数の数自体を持つように変更しています。

ko1: r48248 2014-11-03 13:54:27 +0900

iseq_memsize() で RubyVM::InstructionSequence の利用メモリサイズの計算時にキーワード引数の最適化の時に追加された領域について計算に追加しています。

nobu: r48249 2014-11-03 14:36:18 +0900

ext/-test-/st/foreach/foreach.c で rb_bug() のフォーマット文字列で PRIuVALUE を利用するようにしています。 VALUE 型ではないのですが st_data_t 型は VALUE と同じくポインタ型と同じサイズなので VALUE にキャストして表示するようにしています。

nobu: r48250 2014-11-03 14:36:29 +0900

拡張ライブラリ tk で Tk::CallbackSubst と Tk::CallbackSubst::Info は Object ではなく Data クラスを継承するようにしています。不要なメソッドの継承を避けるためとのこと。allocate とかそのあたりのメソッドのことでしょうか。

ko1: r48251 2014-11-03 14:43:31 +0900

rb_iseq_t の解放処理 iseq_free() で rb_iseq_t::param::keyword::default_value の解放漏れを修正。

nobu: r48252 2014-11-03 15:22:16 +0900

拡張ライブラリ tk の ext/tk/tkutil/tkutil.c で T_DATA 型を利用した時の警告(T_TYPEDDATA 型を使うように推奨する警告)を無視させるため #define RUBY_UNTYPED_DATA_WARNING 0 を追加しています。

nobu: r48253 2014-11-03 16:12:37 +0900

拡張ライブラリの書きかたについてのドキュメント README.EXT と README.EXT.ja に rb_vsprintf() と rb_bug() のフォーマット文字列の PRIsVALUE と一般的な %i の利用の衝突について追記しています。

akr: r48254 2014-11-03 18:10:28 +0900

openssl のテストのダミーサーバ起動メソッドに r48225 で追加されて r48231 で :ignore_listener_error に改名されたキーワード引数のデフォルト値を false に変更しています。