ruby-trunk-changes r31032 - r31046

今日は GC のパラメータを環境変数で変更できるというパッチが入っています。

kosaki:r31032 2011-03-06 21:51:17 +0900

sample/list.rb でインスタンス変数の未初期化で警告が出ていたので追加。 [ruby-core:35435] [Bug#4471]

akr:r31033 2011-03-06 22:21:31 +0900

ext/openssl/ossl_pkey_ec.c の関数マクロの引数にかっこをつける修正です。

kosaki:r31034 2011-03-06 23:21:31 +0900

Process.maxgroups= で設定できる上限を 65535 に引き上げています。 [ruby-core:35430] を参照。追加されたコメントにもありますが、この上限値は環境で実にまちまちですね。

kosaki:r31035 2011-03-06 23:28:02 +0900

Process#maxgroups= で負の値が渡された時のチェックをします。 [ruby-core:35426] [Bug#4467]

kosaki:r31036 2011-03-06 23:47:27 +0900

configure での rlim_t の型のチェックをべたに書いていたのを RUBY_REPLACE_TYPE という関数を利用するようにしています。これにより RLIM2NUM/NUM2RLIM というマクロが定義されます。

kosaki:r31037 2011-03-07 00:25:58 +0900

Process.groups で取得する GID の配列を最大数まで用意するのではなくあらかじめグループ数を調べてから確保するようにしています。グループ最大数を引き上げたのでスタックを大量に消費するのを避けるためでしょう。

svn:r31038 2011-03-07 00:26:04 +0900

version.h の日付更新。

nobu:r31039 2011-03-07 08:38:31 +0900

date の拡張ライブラリ部分で long long および long double を使っているところを long/double にするなど変数の型を変更しています。long long や long double は直接使ってはいけないらしい。
また extcond.rb から不要になった roundl/floorl のチェックを削っています。

nobu:r31040 2011-03-07 08:39:04 +0900

r31039 のぶんの ChangeLog のエントリ追加です。

nobu:r31041 2011-03-07 09:05:35 +0900

string.c(tr_trans) の警告除去のため last を int から unsigned int に変更。

nobu:r31042 2011-03-07 09:06:08 +0900

Windows(mingw) では rlim_t は存在しても(?) getrlimit/setrlimit は存在しないので #ifdef のチェックを追加しています。 cygwin 版だと存在するのかも。

nagachika:r31043 2011-03-07 14:15:22 +0900

r31023 で test_parallel.rb 内の assert を修正したつもりが、追加しているだけで元からある assert を消していなかったのでそれを消したという修正です。チケットに貼ったパッチはちゃんと書き換えになってたのにコミットした内容が違うという。申し訳ありません。 [Bug #4466]

matz:r31044 2011-03-07 17:39:39 +0900

GC のパラメータを環境変数で切り替えるというパッチを取り込んでいます。が誤操作で最近のコミットを巻き戻してしまっているそうで差分がたいへんなことになっています。実際に入った内容は以下の diff で観ることができます。github 便利。

https://github.com/ruby/ruby/compare/c414d861c109ff546e2bc8c7264859907d6e0f76...1df42597d15416357a20bd68700ce1a2d245e8bb

RUBY_GC_MALLOC_LIMIT、RUBY_HEAP_MIN_SLOTS、RUBY_FREE_MIN といった環境変数GC の動作に関係するパラメータを設定できるようです。でもいきなり printf() とかしちゃうので本番で使うような感じじゃないですね。元の gist にはこの printf() 等はないのでもしかしたら消し忘れかも。
パラメータの内容は RubyGC について知っていればだいたい想像が付くと思います。RUBY_FREE_MIN は free スロットがどのくらい減ってきたら新しいヒープを確保するかのパラメータです。

svn:r31045 2011-03-07 17:39:45 +0900

version.h の日付更新。

matz:r31046 2011-03-07 17:44:45 +0900

r31044 で巻き戻されてしまったぶんを元に戻しています。