ruby-trunk-changes r32479 - r32507

ついに 1.9.3 のリリースブランチが切られました。

naruse:r32479 2011-07-10 04:11:06 +0900

昨日の r32476 で Vector#map2 の実装が重複していたので一方を削除。

svn:r32480 2011-07-10 04:11:10 +0900

version.h の日付更新。

drbrain:r32481 2011-07-10 09:13:37 +0900

NEWS ファイルの RugyGems のバージョン番号の記述を最新のものに追随しています。 [ruby-core:37916] [Bug #5004]

tarui:r32482 2011-07-10 09:47:31 +0900

Range#max で終端を含まない時 Range で開始位置が Integer でない時は TypeError を発生させるようにしています。たとえば (1.5...2).max が 1 を返していた(end が Integer なら end-1 を返すようになっていた)のをやめています。 [ruby-dev:43406] [Bug #4591]

mame:r32483 2011-07-10 11:42:07 +0900

begin .. rescue .. else .. end で begin 節の中で return した時に else 節が実行されるようになっているのですが(1.8 では実行されないので、チケットはそもそも else 節を実行しないようにするという仕様変更についてのものでした)、rescue 節が空で end より後ろに文があると else が実行されないというのを修正しています。 [Bug #4473] [ruby-core:35629] [ruby-core:37884]
[追記]後ろの文の有無にかかわらず begin から return で抜けた時は else は実行しないという修正だったようです。[/追記]

mame:r32484 2011-07-10 12:11:52 +0900

case 文の when 節に文字列リテラルが書かれた時に毎回オブジェクトを生成せずにコンパイル時に生成した String オブジェクトと比較するようにして高速化しています。 [ruby-dev:44068] [Feature #5000]

mrkn:r32485 2011-07-10 12:19:49 +0900

BigDecimal#power, BigDecimal#** の引数に Fixnum 以外に Bignum, Float, Rational なども受け付けるようにしています。また BigDecimal#power には省略可能な第2引数として精度の指定を受け付けるようにしています。 [Bug #3271]

ko1:r32486 2011-07-10 14:19:47 +0900

internal.h nに rb_thread_call_with_gvl(), rb_thread_call_without_gvl() のプロトタイプ宣言を experimental という区分をつくって追加しています。 また rb_thread_io_blocking_region() もそこに移動しています。 [Feature #4328]

tadf:r32487 2011-07-10 14:59:12 +0900

date_core.c で nth, sf というメンバに Rational をセットする時に既約ならば Integer に変換しておくようにしています。

sorah:r32488 2011-07-10 15:11:49 +0900

lib/test/unit/assertions.rb に rdoc 用のコメントを追加しています。 [ruby-core:37225] [Feature #4903]

mrkn:r32489 2011-07-10 15:32:06 +0900

instance_eval のブロックの中で autoload を使うと NameError になる不具合を修正しています。 autoload を呼び出した時のコンテキストの class を取得した時にそれが特異クラスだった場合に superclass を辿るようにしています。 [ruby-dev:43816] [Bug #4886]

kosaki:r32490 2011-07-10 16:12:02 +0900

SIGSEGV を受けとった時のシグナルハンドラ sigsegv() でさらに SIGSEGV が発生した場合に exit(2) しているのをやめて abort(3) で終了するようにしています。 シグナルハンドラ内 exit(2) は async-signal-safe でないのでだめでした。呼ぶなら _exit() でないと [ruby-dev:44078] [Bug #5013]

[追記]と、思ったら Solaris では abort() も async-signal-safe ではないらしいです。えー。 [Bug #5014][/追記]

kosaki:r32491 2011-07-10 16:17:50 +0900

r32490 の ChangeLog のエントリにチケットと ML の参照を追加しています。

kosaki:r32492 2011-07-10 16:46:00 +0900

インタプリタの(VM の)終了時には新たな Thread の生成を禁止するようにしています。ファイナライザで Thread 生成していたりすると終了時に動くので SEGV したりするので禁止しています。これにより事実上ファイナライザで Thread を生成するのは禁止(ファイナライザは必ずしも終了時に呼ばれるとは限りませんが、呼ばれるタイミングは制御できないので)になります。 [ruby-core:37858] [Bug #4992]

naruse:r32493 2011-07-10 17:01:04 +0900

json の rubygem 1.5.4+ (f7f78896607b6f6226cd) をマージしています。 [Bug #4700]

kosaki:r32494 2011-07-10 17:29:46 +0900

exit(1) しているところを exit(EXIT_FAILURE) と定数マクロを利用するようにしています。

ko1:r32495 2011-07-10 18:04:44 +0900

lambda 内の class 定義の中で return すると SEGV していたのを修正しています。 [ruby-dev:43464] [Bug #4648]

sorah:r32496 2011-07-10 21:19:16 +0900

testunit の並列テスト用のテストスクリプト達を test_*.rb から ptest_*.rb と改名して、普通のテストとして実行されないようにするしくみを簡単にしています。Test::Unit で実行するテストスクリプトの接頭語の test_ の test の部分を変更できるようにして、テスト内での testunit 実行の時は変更して ptest_*.rb をロードさせるようにしています。

ko1:r32497 2011-07-10 21:52:03 +0900

internal.h の experimental のところのコメントを追記しています。また rb_thread_io_blocking_region() は experimental ではなくて temporary (削除する予定) にしています。

nobu:r32498 2011-07-10 22:38:17 +0900

Ripper で ローカル変数の参照とレシーバ/引数なしのメソッド呼び出しの区別が付けられるようにしているようです。 [ruby-core:37908] [Bug #5002]

nobu:r32499 2011-07-10 22:59:00 +0900

Process.spawn などのオプションで setrlimit() を使う場合の変数宣言の部分の #if の条件を利用しているところと揃えています。

mrkn:r32500 2011-07-10 23:05:07 +0900

BigDecimal#power の第2引数が省略可能になっていなかったので省略可能にしています。 また精度の取り扱いが間違っていたのを修正しています。

yugui:r32502 2011-07-10 23:31:10 +0900

1.9.3 のリリースブランチが切られたので version.h の RUBY_VERSION を 1.9.4 に変更しています。

yugui:r32503 2011-07-10 23:54:03 +0900

ブランチが切られたので NEWS と ChangeLog をそれぞれ docs/NEWS-1.9.3, docs/ChangeLog-1.9.3 に移動しています。

mrkn:r32506 2011-07-11 00:40:07 +0900

doc/NEWS-1.9.3 に BigDecimal#power が Fixnum 以外の引数を受け付けるようになったことを追記しています。

svn:r32507 2011-07-11 00:40:10 +0900

version.h の日付更新。