ruby-trunk-changes r52435 - r52452

今日も CI でのテスト対策が多くありました。また struct RObject のメンバの型変更(遮蔽)がありました。拡張ライブラリを書く人は依存していないかチェックしてみてください。

normal: r52435 2015-11-04 06:16:48 +0900

struct RObject::as::heap::iv_index_tbl のオブジェクトのイスタンス変数管理用テーブルのポインタを (void *) と宣言しておいて公開 API としては内容を遮蔽するようにしています。 st_table から id_table に置き換えを狙ってのことでありましょう。ここに依存している拡張ライブラリはあまりないだろうという読みがされてますが、どうかなぁ。インスタンス変数を得る API はあるし、インスタンス変数一覧を得るのも rb_ivar_foreach() っていう API があるからまあ普通に実装してたら大丈夫かなぁ。ただ rb_ivar_foreach() の引数の型に st_data_t が使われていますね。 [ruby-core:71306] [Feature #11647]

svn: r52436 2015-11-04 06:17:18 +0900

version.h の日付更新。

nobu: r52437 2015-11-04 10:31:09 +0900

r52431 の mkmf のログ出力の強化を revert しています。 どうやら CI での test/mkmf のデバッグのために追加してたみたいですね。

nobu: r52438 2015-11-04 10:31:15 +0900

mkmf のテストで出力を capture するためのクラス TestMkmf::Base::Capture で出力が本来の出力先に出なくなっていたのを修正しています。

nobu: r52439 2015-11-04 10:32:54 +0900

tool/fake.rb でビルドディレクトリがソースディレクトリの配下のサブディレクトリの場合を考慮するようにしています。

nobu: r52440 2015-11-04 11:33:50 +0900

r52432 および r52434 の gdbm のテストの CI での調査のためのコマンド実行を fuser(1) に変更しています。また GDBM#reorganize のテストで sync を呼び出して結果がファイルに反映されるようにしています。

nobu: r52441 2015-11-04 11:38:25 +0900

Process.getsid の rdoc 用コメントの typo (重複した単語)の修正。 https://github.com/ruby/ruby/pull/1080

usa: r52442 2015-11-04 12:13:20 +0900

標準添付ライブラリ drb の DRbMessage#load での例外発生時に peer のアドレスを例外メッセージに含めるようにしています。 mswin の CI でのエラーの調査のためだそうです。

hsbt: r52443 2015-11-04 15:39:37 +0900

Hash#rehash の rdoc 用コメントの文法修正。 https://github.com/ruby/ruby/pull/1079

hsbt: r52444 2015-11-04 15:40:54 +0900

method.h の rb_method_attr_t の定義のコメントの typo 修正。 https://github.com/ruby/ruby/pull/1076

hsbt: r52445 2015-11-04 15:46:05 +0900

C API の rb_define_class_under() と rb_define_class_id_under() の rdoc 用コメントで発生する例外のクラス名を修正しています。 https://github.com/ruby/ruby/pull/991

nobu: r52446 2015-11-04 15:59:15 +0900

variable.c の autoload_reset() で Visual C で 変数の未初期化の警告が出るそうで初期化を追加しています。

nobu: r52447 2015-11-04 16:18:01 +0900

拡張ライブラリ date, dbm, gdbm, sdbm, fiddle, openssl, psych などで配列の各要素についてループする時にインデックスの型を RARRAY_LENINT() で int 型にしてたところを long 型で受けて RARRAY_LEN() を使うようにしています。 INT_MAX を超える要素数の配列に対応できるようになるはず。

nobu: r52448 2015-11-04 16:27:10 +0900

拡張ライブラリ bigdecimal, data, dbm, gdbm, sdbm, fiddle, io/console, openssl, psych, readline, socket, tk などで配列の要素にアクセスする時に参照のみであれば RARRAY_CONST_PTR() を使って WB-protected のままにするようにしています。 WB-unprotected になると RGenGC の minor GC での負荷があがるので性能のため、ではありますが効果的な箇所(よく通るところ)を探したというより網羅的に変更しているという感じだと思います。

nobu: r52449 2015-11-04 16:50:19 +0900

拡張ライブラリ tk の CallbackSubst#_setup_subst_table で strndup() が未定義の時に key に値がセットされない状態だったので代替実装を追加してこれを使うようにしています。

nobu: r52450 2015-11-04 16:50:34 +0900

拡張ライブラリ tk で配列を連結する時にループで1要素ずつ rb_ary_push() で追加していたのを rb_ary_cat() を利用するようにしています。 rb_ary_cat() が 2.0 から追加された API なので代替実装も追加しています。

hsbt: r52451 2015-11-04 17:33:29 +0900

標準添付ライブラリ debug の thread_list_all メソッドの rdoc 用コメントを追加しています。[misc #11580]

kazu: r52452 2015-11-04 21:34:55 +0900

r52424 の ChangeLog エントリが r52430 での revert 時に消されたのを復活させています。む、r52430 は r52424 の revert も含んでいるので意図的だと思いますが、まあでも記録として残ってたほうがいいのかもしれないですね…。revert 時の ChangeLog の扱いはいろいろですね。