ruby-trunk-changes r43346 - r43356

今日は RubyGems の更新、メモリ管理に関する内部の構造体メンバなどの名称の変更などがありました。

drbrain:r43346 2013-10-18 06:03:49 +0900

RubyGems の最新版(master ブランチの f738c67)をマージしています。 configure で --disable-shared でビルドした ruby でのテストのエラーを修正しています。

drbrain:r43347 2013-10-18 09:41:36 +0900

更に RubyGems を更新しています。 Windows 版(rubyci.org の vc10-x64) で Windows のはサポートされていない File.chmod をテストで利用していたところをプラットフォームをみて分岐して抑制しています。また依存関係解決の改善で vendor set という vendor gem を管理するしくみを追加しています。が新規ファイルがコミットされていなかったようで、次で追加されています。

drbrain:r43348 2013-10-18 10:57:00 +0900

r43347 でコミットから漏れていた新規追加のファイルをコミットしています。

kazu:r43349 2013-10-18 12:55:32 +0900

r43310 と r43330 の ChangeLog エントリの typo 修正。

ko1:r43350 2013-10-18 15:33:36 +0900

gc.c でメモリ管理に関する構造の語彙が若干あやふやになっていたので構造体やメンバ、マクロ、環境変数などの名称を全体的に変更しています。オブジェクト1つが入る RVALUE が slot、slot の集りが page、page の集合を heap と呼ぶということです。構造を表した図があります。 https://bugs.ruby-lang.org/attachments/4008/data-heap_structure.png r42021 の変更の続きという感じですね。

nobu:r43351 2013-10-18 15:59:12 +0900

weakref 用のクラス WeakRef に include?/member?/key? メソッドを追加してオブジェクトが WeakRef に登録されているかチェックできるようにしています。 key? だけ引数の数が 0 でメソッド登録されているのは間違いでしょうか?

nobu:r43352 2013-10-18 15:59:14 +0900

WeakMap の inspect メソッドを定義して、登録されているキーと値のオブジェクトを表示するようにしています。また WeakMap#each, each_pair, each_key, each_value, keys, values など Hash っぽいメソッドを追加しています。 WeakMap のデバッグ用とのこと。

nobu:r43353 2013-10-18 16:04:42 +0900

r43352 で追加した WeakMap#inspect の実装でコールバック関数の引数の内容を間違えていたのを修正。また文字列化した時の最後の ">" の追加が漏れていたのも修正しています。

nobu:r43354 2013-10-18 16:06:43 +0900

r43353 の WeakMap#inspect で生成する文字列の体裁を修正しています。

nobu:r43355 2013-10-18 17:03:32 +0900

新しい RubyGems が拡張ライブラリの再コンパイルをしてしまうのを防ぐため標準添付ライブラリ resolv.rb で win32/resolv の require をスキップするように一時的な workaround を行なっています。

nobu:r43356 2013-10-18 23:23:50 +0900

ruby_atomic.h の Windows 版の時の InterlockedExchangeAdd64()/InterlockedExchangeAdd() を使って定義している関数マクロ ATOMIC_SIZE_ADD()/ATOMIC_SIZE_SUB() で明示的なキャストを追加して VC++ でのコンパイル時の警告を抑制しています。