ruby-trunk-changes r31746 - r31763

今日は OpenStruct の不具合修正や SIGPIPE のシグナルハンドラのデフォルトの設定の変更などがありました。

nobu:r31746 2011-05-27 22:37:37 +0900

テストスクリプトで Thread を起動して特定の条件が満たされるまで待つところで Thread.pass や sleep を入れてビジーループになるのを避けるようにしています。

nobu:r31747 2011-05-27 22:38:56 +0900

IO の入力でバッファに読み込みしてエンコーディングの変換をするところで無駄な処理を省くように早めに break しているようです。がループ後に明示的な return をしていないので戻り値が不正になってしまっています。

nobu:r31748 2011-05-27 22:45:12 +0900

Windows で常に改行の自動変換が効いてしまっていたのを修正。 [Bug #4732]

nobu:r31749 2011-05-27 22:46:25 +0900

json を gems としてインストールする(gemspec ファイルをインストールする)ようにしています。gems で json に依存しているものに json がインストール済みとして認識させるためのようです。 [Bug #4784]

marcandre:r31750 2011-05-27 22:55:21 +0900

Module#const_get, Module#const_defined? のドキュメントを修正しています。

marcandre:r31751 2011-05-27 22:55:43 +0900

Prog のドキュメントの体裁や例の修正をしています。

kou:r31752 2011-05-27 23:57:55 +0900

r31744 で追加した REXML::Text.new に freeze した文字列を渡すテストケースを独立したメソッドに分離しています。 [Bug #4783]

marcandre:r31753 2011-05-28 00:59:02 +0900

OpenStruct で = メソッドが時に method_missing での引数のチェックがまずくて例外になっていたのを修正。 [ruby-core:33792] [Bug #4179]

svn:r31754 2011-05-28 00:59:06 +0900

version.h の日付更新。

kosaki:r31755 2011-05-28 02:09:27 +0900

r31747 でバッファへの読み込みのループから break したあとにきちんと return するようにしています。

kosaki:r31756 2011-05-28 02:23:30 +0900

String#bytesize で INT2NUM() のかわりに LONG2NUM() を利用するように修正しています。 [ruby-core:36511] [Bug #4789]

kosaki:r31757 2011-05-28 02:25:19 +0900

r31756 の ChangeLog のメールアドレスの修正。

naruse:r31758 2011-05-28 03:06:42 +0900

r31755 ではバッファにエンコーディング未変換のバイトが残っているかどうかを区別していなかったので戻り値を条件分岐するようにしています。

akr:r31759 2011-05-28 08:45:12 +0900

open-uri.rb のコメントに少し追記しています。

kosaki:r31760 2011-05-28 16:11:54 +0900

SIGPIPE を無視するために sigpipe() という空のシグナルハンドラを用意してこれを設定していましたが、SIG_IGN を設定するようにしています。 [ruby-dev:43215]
Mac OS X で test-all がたまに sigpipe() で SEGV しているようでした。

kosaki:r31761 2011-05-28 22:52:03 +0900

r31760 で SIGPIPE を SIG_IGN に設定するようにしましたが、昔(2001年!) exec で別のコマンドを呼び出した時に SIG_IGN がそのまま引き継がれるために Kernel#system などで子プロセスが終了しない不具合があったために SIG_IGN から空のシグナルハンドラに変更されていたようです。exec の直前に SIGPIPE のハンドラを SIG_DFL にリセットするように修正しています。 [ruby-dev:12261]

kosaki:r31762 2011-05-29 00:24:18 +0900

before_exec() と after_exec() を関数マクロから関数へ変更しています。

svn:r31763 2011-05-29 00:24:22 +0900

version.h の日付更新。