ruby-trunk-changes r37774 - r37787

今日は Array#value_at の引数の Range が配列の要素数をはみだしていた時の挙動の変更や String#to_i の挙動の再変更(元に戻している)、DTrace のプローブの修正と IO#wait_writable の追加などがありました。

kosaki:r37774 2012-11-21 01:00:04 +0900

file.c で File::NULL を定義している関数も r37746 と同様に rb_file_const() から file_define_const() に変更しています(rdoc 対策のため)。 こうして rb_file_const() は Dir.glob 用の FNM_XXX 定数にしか使われなくなりました。せっかく定義しているのに悲しいですね。

marcandre:r37775 2012-11-21 13:23:56 +0900

Array#values_at で Range を引数に渡した時に配列の要素数の範囲を越えていた時にそこで結果が途切れてしまうのを、引数の Range の範囲のほうを主体にしてはみ出している部分を nil にした結果を返すようにしています。 r37769 で NEWS ファイルに r37770 で rdoc が追記されていましたが修正はまだだったんですね。 [ruby-core:43678] [Bug #6203]

shyouhei:r37776 2012-11-21 14:09:19 +0900

r37710 で String#to_i で連続したアンダースコアを桁の区切りとして許容するようにした変更を revert しています。 [ruby-dev:46575]

ko1:r37777 2012-11-21 16:15:03 +0900

benchmark/bm_so_nsieve_bits.rb が文字列リテラルでバイト列として扱いたい文字列を書いていて、デフォルトソースコードエンコーディングUTF-8 化に伴い時間がかかってしまっていたのでマジックコメントを書いています。 [ruby-dev:46547]

ko1:r37778 2012-11-21 16:16:19 +0900

r37777 の ChangeLog エントリにもう少し詳しい内容を追記しています。

ko1:r37779 2012-11-21 16:36:24 +0900

さらに r37777 の ChangeLog エントリに ruby-dev の参照を追記しています。

tadf:r37780 2012-11-21 18:48:51 +0900

r37776 で rb_cstr_to_inum() が文字列から整数をパースする時に連続するアンダースコアでの桁区切りを許容しないように戻されたので Rational() の処理から rb_cstr_to_inum() に渡す文字列をその制限に合わせてコピーして整形して渡すようにしています。

tadf:r37781 2012-11-21 21:42:11 +0900

関数マクロの定義で不要なセミコロンが付いていたところを削除しています。

tadf:r37782 2012-11-21 21:54:06 +0900

メソッド Complex#to_c (self を返す)を追加しています。

nari:r37783 2012-11-21 22:15:10 +0900

GC::Profiler が利用するバッファを最初から大きく(1000 回ぶん)確保していたのを小さめにして、GC::Profiler.clear した時にもバッファを realloc(3) してメモリ使用量を切り詰めるようにしています。

nari:r37784 2012-11-21 22:31:06 +0900

DTrace の probe で GC のスイープフェーズの開始時のプローブは gc_prof_sweep_timer_start() と garbage_collect() に重複していたので garbage_collect() のほうを削除しています。

nobu:r37785 2012-11-21 22:40:00 +0900

拡張ライブラリ io/wait に IO が書き込み可能になるまで待つ IO#wait_writable というメソッドを新設しています。 select(2) や poll(2) で待つのを簡単に書けるという感じです。 [ruby-core:36005] [Feature #4646]

nobu:r37786 2012-11-21 22:53:02 +0900

拡張ライブラリの io/wait に存在していた IO#wait というメソッドを IO#wait_readable という名称でも定義しています。 alias とコミットログにはありますが alias 定義しているのではなくて同じ関数で両方の名前で定義しています。 また NEWS ファイルに IO#wait_readable と wait_writable について追記しています。

nobu:r37787 2012-11-21 22:54:36 +0900

新規追加された include/ruby/debug.h の svn property の設定を変更。だけではなくて改行コードが CR+LF だったのを LF のみに変更されているようです。