ruby-trunk-changes r43357 - r43363

今日は RubyGems の修正、メモリ管理がらみの構造体のレイアウトの変更などがありました。

drbrain:r43357 2013-10-19 06:56:18 +0900

RubyGems を更新しています。ロードパスの設定の修正、$HOME のディレクトリが存在しない/書き込めない時も gem パッケージをインストールできるようにする、などの変更だそうです。

svn:r43358 2013-10-19 06:56:24 +0900

version.h の日付更新。

drbrain:r43359 2013-10-19 07:14:56 +0900

更に RubyGems の更新です。 gem update のエラー処理の不具合修正のようです。

ko1:r43360 2013-10-19 08:33:55 +0900

gc.c の rb_objspace_t のメンバの名称を変更しています。
まず無名だったメモリ管理に関する構造体を struct heap として rb_objspace_t の外で定義しています。また rb_objspace_t::heap の中にあった sorted という page のアドレスでのソート済みの配列を rb_objspace_t::heap_sorted_pages とひとつ外の階層に出しています。また rb_objspace_t::heap::range も同様に rb_objspace_t::heap_range に移動/改名しています。 range って何だったかな……。

nobu:r43361 2013-10-19 08:50:13 +0900

WeakMap#key? のメソッド定義で引数の数を間違えていたのを修正しています。

nobu:r43362 2013-10-19 19:55:39 +0900

r43169 で Windows 版の code page テーブルの初期化を起動時に一括で行なうようにしたことの流れで、起動時ではなくて最初にテーブルが必要とされた時に行なうように遅延しています。

nobu:r43363 2013-10-19 19:59:06 +0900

Windows 版のエンコーディングと code page の対応のテーブルを st_table を使っていたのを、一括で初期化するようにしたので C の配列で表現するように変更しています。最初に全部作っちゃうので全てのエンコーディングのぶん確保してしまってかまわないので……と思いましたが realloc を使っていますね。これは encoding index の最大値がすぱっとわからないからかもしれないですね。