ruby-trunk-changes r31986 - r32012

今日は ruby-dev や ruby-core を購読している方はお気付きでしょうが、Ruby開発合宿が行なわれているのでチケットの掘りおこしがされて、修正もたくさんありました。
IO.copy_stream の不具合修正、REXML の不具合修正、GC のパラメータの環境変数による指定が効いていなかった問題の修正などなど盛り沢山です。

kosaki:r31986 2011-06-10 23:24:02 +0900

ext/tk/tcltklib.c のイベントループの関数で処理するイベントがない時にスレッドの切り替えに呼ぶのを CHECK_INTS マクロから rb_thread_check_ints() に変更しています。

nobu:r31987 2011-06-11 10:01:09 +0900

ruby.c にて compat_init_setproctitle() のプロトタイプ宣言しているところで戻り値の型を表記していなかったので追加。

svn:r31988 2011-06-11 10:01:12 +0900

version.h の日付更新。

akr:r31989 2011-06-11 10:17:11 +0900

rb_thread_execute_interrupts で引数の VALUE をそのまま rb_thread_t としてキャストしていたところを GetThreadPtr() でポインタを取り出すようにしています。 [ruby-dev:43700] [Bug #4866]

nobu:r31990 2011-06-11 10:21:10 +0900

thread_pthread.c で USE_MONOTONIC_COND が有効な時だけ利用されるラベルを #if .. #end で括ったり、未使用の変数の削除などの小さな変更です。

nobu:r31991 2011-06-11 10:32:49 +0900

mkmf.rb で arch_hdrdir と libpath をクオートつきにするようにしています。 prefix に空白を含むパスを指定された時の動作のためとのこと。

kosaki:r31992 2011-06-11 14:21:30 +0900

オブジェクトの使用メモリを集計する処理の Thread (rb_thread_t) の集計で local_storage のサイズが漏れていたのを修正しています。 [ruby-dev:43659]

duerst:r31993 2011-06-11 15:37:25 +0900

make love ターゲットで出力されるメッセージの英文を修正しています。

kou:r31994 2011-06-11 15:53:59 +0900

test/rexml/test_elements.rb のテストメソッドの test_elements_ という prefix を test_ に変更しています。

kou:r31995 2011-06-11 16:05:42 +0900

REXML::Elements#each で引数に frozen な文字列を渡すとメソッド内でそれを破壊的に変更しようとして例外が発生する不具合を修正。渡された引数は dup して利用するようにしています。 [ruby-core:33722] [Bug #4164]

kou:r31996 2011-06-11 16:12:12 +0900

test/rexml/test_core.rb で不要な assert_nothing_raised で括っていた処理を assert なしにしています。

kou:r31997 2011-06-11 16:29:48 +0900

REXML::FOrmatters::Pretty の整形出力で width の指定を無視して 80桁固定になっていたのを修正。 [ruby-core:35551] [Bug #4498]

kou:r31998 2011-06-11 16:32:49 +0900

r31995 の ChangeLog に記載したチケットの番号が間違っていたので修正。

nobu:r31999 2011-06-11 16:52:34 +0900

Integer#chr の引数に Encoding を指定した時に、整数がその Encoding の範囲として不正だった時の例外メッセージの指示子が %d だったために負の整数として表示されていたので %u を使うように修正。 [ruby-core:36996] [Bug #4869]
Integer#chr に引数なんて渡せたんですね。

nobu:r32000 2011-06-11 18:02:11 +0900

IO#getc で取得した文字列が ASCII 文字の範囲だったら ENC_CODERANGE_7BIT のフラグを付けるようにしています。 [ruby-core:35630] [Backport #4557]
IO#getc で取得した文字に対して String#ascii_only? を呼ぶと誤判定していたのかと思ってやってみましたが再現せず。内部的な利用時の問題のようです。

eban:r32001 2011-06-11 18:07:26 +0900

bootstraptest/runner.rb でグローバル変数 $stress の初期化をするようにしています。未初期化のまま参照して警告が出ていたのを回避しているようです。

nobu:r32002 2011-06-11 19:04:19 +0900

lib/test/unit.rb で 1.9 で導入された文法に依存した書きかたの部分があったので 1.8 でも動くように書き換えています。

tadf:r32003 2011-06-11 19:25:25 +0900

Date, DateTime の rdoc 用コメントの変更です。

tadf:r32004 2011-06-11 19:36:19 +0900

Date::MONTHNAMES, Date::DAYNAMES, Date::ABBR_MONTHNAMES, Date::ABBR_DAYNAMES といった定数が保持する文字列の Encoding を US-ASCII にするようにしています。

nahi:r32005 2011-06-11 19:39:47 +0900

OpenSSL::X509::Request#to_der で OpenSSL がエラーを返した時に CertificateError 例外を発生させていたのを RequestError に変更しています。 [ruby-dev:43237] [Bug #4420]

eban:r32006 2011-06-11 19:44:51 +0900

ChangeLogvim 向けの設定に shiftwidth=2 を追加しています。

nari:r32007 2011-06-11 19:51:51 +0900

r31044 で GC のパラメータを環境変数から取得するようにしていたのに、RUBY_HEAP_MIN_SLOTS の設定は取り込む前に初期化が走ってしまうために有効になっていなかったので、パラメータの取り込みの時に確保するサイズを拡張するようにしています。 [ruby-dev:43377] [Bug #4547]

tadf:r32008 2011-06-11 21:59:21 +0900

Date, DateTime の rdoc にサンプルコードをたくさん追加しています。

tadf:r32009 2011-06-11 22:10:04 +0900

DateTime.iso8601, rfc3339, xmlschema, rfc2822, httpdate などのメソッドで省略可能な第2引数 comp をなくして、第3引数 sg が第2引数にくり上がっています。もともと第2引数は全く利用されていなかったようです。
しかし sg を渡したい時の書き方が変わってしまいますね。 sg を渡す呼び方をしているところがどれだけあるかわかりませんが。

tadf:r32010 2011-06-11 22:32:43 +0900

Date#strftime の rdoc を追記しています。 Time#strftime からもってきたそうです。

tadf:r32011 2011-06-11 22:42:35 +0900

Time#strftime の rdoc の %v の記述を修正しています。

nahi:r32012 2011-06-11 23:07:42 +0900

OpenSSL::Buffering#each_byte がブロックに Integer を渡していたのを 1.9 の IO#each_byte の挙動にそろえて String を渡すように変更しています。 1.9 で String#[] が String を返すようになったために String を渡していたのを、IO#each_byte との互換性を保つために Integer を渡すように修正しています。