ruby-trunk-changes r43583 - r43614

今日はたくさんコミットがありました。主に ObjectSpace.dump_all という全オブジェクトの情報を JSON っぽい形式(1行に1オブジェクトが JSON 形式で書かれるという感じ)でファイルに出力する機能の追加とそのリファクタリングなどでした。

nobu:r43583 2013-11-09 00:26:55 +0900

file.c に cygwin 版の時に GetLastError() の宣言をしていたのを削除しています。最近の cygwin では windows.h で定義されていて衝突していたので不要とのこと。 https://github.com/ruby/ruby/pull/433

svn:r43584 2013-11-09 00:27:12 +0900

version.h の日付更新。

tmm1:r43585 2013-11-09 02:06:55 +0900

拡張ライブラリ objspace に ObjectSpace.dump_all というメソッドで JSON 形式でオブジェクトの参照関係をダンプするメソッドを追加しています。 [ruby-core:57893] [Bug #9026] https://github.com/ruby/ruby/pull/423
これはまだゴツいのがきましたね。一時ファイルに出力してメソッドはそのファイル名のみを返すようです。

nobu:r43586 2013-11-09 02:08:55 +0900

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

nobu:r43587 2013-11-09 06:11:27 +0900

tool/rbinstall.rb でライブラリのファイル群をファイルパスでソートしておくようにしています。よく理解していませんが、同梱されている gems パッケージの gemspec の files の順序の違いでパッケージを作る上で問題があるみたいです。 [ruby-core:57544] [Bug #8623]

nobu:r43588 2013-11-09 07:40:56 +0900

tool/rbinstall.rb のインデント修正のみ。

nobu:r43589 2013-11-09 07:41:43 +0900

internal.h のプロトタイプ宣言のスタイル修正らしいのですが ChangeLog のみコミットされています。次の r43590 で本体がコミットされています。

nobu:r43590 2013-11-09 07:42:25 +0900

r43589 の本体。 internal.h の無引数の関数 rb_gc_count() と rb_vm_backtrace_object() のプロトタイプ宣言で引数部に明示的に void を指定するようにしています。

tarui:r43591 2013-11-09 08:59:20 +0900

gc.c のプロファイルの挙動を制御するマクロ GC_PROFILE_DETAIL_MEMORY を追加して、これが真に定義されたら getrusage(2) でメモリ使用量についてのシステム情報を GC::Profiler が報告するプロファイル情報に追加するようにしています。

tarui:r43592 2013-11-09 09:05:27 +0900

RGENGC_CHECK_MODE を真に定義した時に構造体のメンバ名の変更の追随漏れでコンパイルできなくなっていたのを修正しています。

tarui:r43593 2013-11-09 09:17:23 +0900

gc.c の RVALUE_PROMOTE_INFANT() (inline 関数)で上のほうで書かれている処理が重複して最後に書かれていたのを削除しています。

tarui:r43594 2013-11-09 09:23:02 +0900

gc.c の gc_page_sweep() および rgengc_rememberset_mark() で mark_bits を得るのに GET_HEAP_MARK_BITS() マクロを利用していたのをこの関数内では対象の page をすでに持っているので直接構造体メンバを参照するようにしています。マクロ経由だとページまで辿る処理も含まれてしまうため。

charliesome:r43595 2013-11-09 12:34:49 +0900

グローバルなメソッドキャッシュや定数キャッシュおよびインラインキャッシュなどでメソッドや定数の再定義が行なわれたときにキャッシュを破棄するための通し番号を管理する変数や構造体メンバの名称が vmstat とか version とか seq とかまちまちだったのを method_serial, class_serial, constant_serial など "serial" という名称を軸に改名しています。

charliesome:r43596 2013-11-09 12:46:48 +0900

インラインキャッシュ用の構造体 struct iseq_inline_cache_entry のクラス用と定数用のメンバ ic_constant_serial と ic_class_serial を統合して ic_serial という1つのメンバにしています。この両者は同時に利用されることがないのでまとめてもいいようです。

zzak:r43597 2013-11-09 14:12:45 +0900

標準添付ライブラリ test/unit の assert_send の rdoc コメントのサンプルコードをより現実的な例にしています。 [ruby-core:57570] [Bug #8975]

zzak:r43598 2013-11-09 14:29:59 +0900

拡張ライブラリ dl の DL::CFunc の rdoc コメントのサンプルコードの typo を修正しています。 [ruby-core:57345] [Bug #8944]

zzak:r43599 2013-11-09 14:31:01 +0900

r43598 の ChangeLog にパッチ提供者の名前を追記しています。

zzak:r43600 2013-11-09 14:52:43 +0900

標準添付ライブラリ rss の Time.w3cdtf というメソッドの rdoc コメントを追加しています。 W3CDTF という時刻のフォーマットをパースするメソッドみたいですね。 [ruby-core:56814] [Bug #8821]
ChangeLog とコミットログになにか妙な文字が入りこんでますね…。

zzak:r43601 2013-11-09 14:56:09 +0900

標準添付ライブラリ rss の定数に rdoc 用コメントを追加しています。なにやら内部的なものもありそうな気がしますが。あと rss/itunes.rb なんてライブラリが標準添付であったんですね。 Podcast 購読用かな。 [ruby-core:56785] [Bug #8812]

zzak:r43602 2013-11-09 15:01:04 +0900

ARGF.gets の rdoc コメントの synopsis で戻り値に nil も返る可能性があることを追記しています。 [ruby-core:57908] [Bug #9029]

kazu:r43603 2013-11-09 15:06:50 +0900

r43565 の ChangeLog エントリの typo 修正。

zzak:r43604 2013-11-09 15:10:35 +0900

r43600 の ChangeLog でひらがなが入ってしまっていたのを削っています。

nobu:r43605 2013-11-09 15:16:42 +0900

ext/objspace/objspace_dump.c のインデントの修正のみ。

nobu:r43606 2013-11-09 15:16:48 +0900

ext/objspace/objspace_dump.c の dump_object() で未使用の変数削除や明示的なキャストの追加などコンパイラの警告を除去しています。

nobu:r43607 2013-11-09 15:16:53 +0900

ext/objspace/objspace_dump.c で objspace_dump() と objspace_dump_all() で共通していた引数の処理などを関数に括り出すリファクタリングです。

nobu:r43608 2013-11-09 15:16:58 +0900

ObjectSpace.dump_all の実装で mkstemp(3) を利用していたので、関数の存在チェックを追加して利用できない時は例外発生にするように対処しています。

nobu:r43609 2013-11-09 15:20:57 +0900

tool/file2lastrev.rb からバージョン管理システムの検出処理部分を tool/vcs.rb に切り出してライブラリ化しているようです。

nari:r43610 2013-11-09 19:43:07 +0900

internal.h で rb_gc_count() と rb_obj_memsize_of() のプロトタイプ宣言の位置を移動しています。ところがこの位置がシンボルを export していない場所だったので、プラットフォームによっては拡張ライブラリからこれらの関数が呼べなくなっていたので次の r43611 で revert されています。

nari:r43611 2013-11-09 20:51:32 +0900

r43610 を revert しています。

akr:r43612 2013-11-09 20:53:02 +0900

ObjectSpace.dump_all のテストに使っている文字列を 32bit 環境でも struct RVALUE に埋め込みで保持できる長さに切り詰めています。メモリ使用量が抑えられるからですかね。

nari:r43613 2013-11-09 21:00:04 +0900

拡張ライブラリ objspace で rb_gc_count() や rb_obj_memsize_of() を独自に extern 宣言していたのを #include "internal.h" するように変更しています。

tmm1:r43614 2013-11-09 21:57:32 +0900

r43585 の ChangeLog エントリのファイル名の typo を修正しています。