ruby-trunk-changes r43831 - r43844

今日は主に GC 関係の変数、関数、マクロ、環境変数などの改名や bigdecimal.gem パッケージの更新などがありました。

glass:r43831 2013-11-25 01:03:22 +0900

swap16() のために gcc のビルトイン関数 __builtin_bswap16() が使えるか確認して使えたら利用するようにしています。多分高速なんだと思います。

svn:r43832 2013-11-25 01:03:27 +0900

version.h の日付更新。

ko1:r43833 2013-11-25 03:13:48 +0900

GC のパラメータのマクロや構造体メンバ、環境変数の名称を OLDSPACE -> OLDMALLOC のように改名しています。

ko1:r43834 2013-11-25 04:01:14 +0900

r43833 に追随してテストで設定する環境変数名も変更しています。

ko1:r43835 2013-11-25 04:08:33 +0900

GC.stat の項目の追加や項目名の変更。 heap_xxx_num は heap_xxx_slot と slot 数を指していることがわかりやすいように改名されています。また GC のパラメータに関わる状態である heap_swept_slot, malloc_increase, malloc_limit, remembered_shady_object, remembered_shady_object_limit, old_object, old_object_limit, oldmalloc_increase, oldmalloc_limit などを追加しています。 GC.stat の RDoc には "The contents of the hash are implementation specific and may be changed in the future." と書かれているので変更してもいいんだぜみたいなことがコミットログに書かれています。あきらめましょう。っていうこんなところに依存してるプロダクト向けのライブラリなんてまさかないですよね。

ko1:r43836 2013-11-25 04:18:53 +0900

他にも gc.c の関数名や構造体メンバの名称で xxx_num となっていたものを slot の数であることがわかるように xxx_slots と改名しています。細かいことですけどさっきの r43835 だと heap_xxx_slot と単数形だったのに今度は xxx_slots と複数形になってますね……。

ko1:r43837 2013-11-25 04:49:02 +0900

r43833 の続きでまだ構造体メンバやマクロ、enum の定数などで OLDSPACE -> OLDMALLOC、oldspace -> oldmalloc と改名してないところがあったので追加で変更しています。 また GC の理由を示すフラグに旧世代のメモリ使用量のしきい値超えによる major GC を表わすフラグを追加しています。

ko1:r43838 2013-11-25 05:06:02 +0900

TracePoint のテストで GC.stat の返す Hash の項目名の変更に追随しています。

ko1:r43839 2013-11-25 10:13:31 +0900

ruby_xmalloc()/ruby_xfree() などのメモリ確保/解放の関数は確保済み領域のサイズを引数に渡して malloc 等で確保されたサイズを管理できるようにした wrapper 関数 ruby_sized_realloc() や ruby_sized_xfree() というのを使っていましたが、r43760 あたりで導入した malloc_usable_size(3) が使える場合はこれを使うことで確保したサイズを取得するようにしています。ただし外部に提供する API としての関数定義は残してあります。 internal.h でマクロとして定義することで内部では置換されるようにしているようです。また array.c や string.c で直接 ruby_sized_xfee() を呼び出していたところを ruby_xfree() を使うように変更しています。 マクロ利用時に未使用のローカル変数の警告が出るようになってしまうため(size 用の変数が使われなくなってしまうので)。

kazu:r43840 2013-11-25 13:22:32 +0900

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

zzak:r43841 2013-11-25 14:25:53 +0900

拡張ライブラリ bigdecimal の gemspec の date field の設定を削除しています。 gem build した時の日付を使うようにするという方針みたいです。 一方 io-console.gem はソースファイルの更新日を svn の置換文字列から取り出す方針にしていますね。また psych も日付を直に書いています。確かこのあたりって Debian などのパッケージを作成する時に gem パッケージを作成するので固定してあったほうが都合が良かったりするんじゃなかったかな。そんなチケットがあった気がするんですが思い出せない……。

zzak:r43842 2013-11-25 14:35:18 +0900

拡張ライブラリ bigdecimal の gemspec でバージョンを 1.2.3 に更新しています。

zzak:r43843 2013-11-25 19:49:29 +0900

標準添付ライブラリ uri の rdoc 用コメントの typo 修正。 https://github.com/ruby/ruby/pull/456

zzak:r43844 2013-11-25 22:23:53 +0900

標準添付ライブラリ xmlprc の rdoc コメントに書かれていた xmlrpc4r というプロジェクトのリンク先が Not Found になっていたので新しい URL に更新しています。 http://www.ntecs.de/ruby/xmlrpc4r/ [ruby-core:58552] [Bug #9148]