ruby-trunk-changes r43296 - r43305

今日は RubyGems の最新版(たぶん 2.2.0 になるもの)のマージと、GC の mark root 毎に到達できるオブジェクト一覧を得る ObjectSpace.reachable_objects_from_root というメソッドの新規追加などがありました。

tmm1:r43296 2013-10-16 07:33:36 +0900

r43294 で GC の mark 時間を集計するデータに root の種類毎に名前をつけているところで名称を関数名からカテゴリ名に変更しています。

svn:r43297 2013-10-16 07:33:49 +0900

version.h の日付更新。

drbrain:r43298 2013-10-16 09:14:16 +0900

RubyGems の最新版(master ブランチの commit hash 2a74263)をマージしています。 一応 Gem::VERSION は 2.2.0 に更新されています。変更点多いのでよく読んでいませんが拡張ライブラリのビルドやロードパスの設定についての ruby 本体のビルド時のオプションの考慮(--enable-shared)などが含まれているようです。

drbrain:r43299 2013-10-16 09:43:14 +0900

更に RubyGems の最新版(master ブランチの commit hash 278d00d)がマージされています。 拡張ライブラリを含む gem パッケージで Makefile に clean ターゲットが含まれていない時にビルドできるようにしているそうです。また gem install サブコマンドの -g オプション(依存関係を記述したファイルを指定する)の引数を省略可能にしています。省略時は gem.deps.rb, Gemfile, Isolate などのうち存在するものを使うそうです。これは新しめの機能ですかね。

drbrain:r43300 2013-10-16 15:00:39 +0900

更に更に RubyGems の最新版(commit hash b955554)をマージしています。 lib/rubygems/ext.rb で require "rubygems" していたのを削除しています。 循環 require によって NameError が発生することがあったのを修正しているとのこと。

ko1:r43301 2013-10-16 15:13:41 +0900

拡張ライブラリ objspace に ObjectSpace.reachable_objects_from_root というメソッドを追加して、 GC の mark 時の root 毎(category 毎)に Hash でそこから到達できるオブジェクトのリストを返すようにしています。参照のリークのデバッグに便利そうなメソッドが追加されましたね。

ko1:r43302 2013-10-16 15:14:42 +0900

NEWS ファイルに r43301 で追加した ObjectSpace.reachable_objects_from_root について追記しています。

ko1:r43303 2013-10-16 17:39:39 +0900

SEGV の発生時などインタプリタの異常終了時に呼ばれる rb_bug() からフック関数を呼ぶようにして、rb_bug_reporter_add() という C-API でそのフック関数を登録できるようにしています。

nobu:r43304 2013-10-16 17:44:29 +0900

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

ko1:r43305 2013-10-16 17:46:00 +0900

bootstraptest/runner.rb で子プロセスの status の signaled? をチェックしているところで例外が発生したなどで nil だった時のことを考慮してチェックをするようにしています。