ruby-trunk-changes r32804 - r32821

Windows 版での rubygems のインストールパスの修正、空の Hash の hash 値の一貫性の修正などがありました。

luislavena:r32804 2011-08-02 06:22:13 +0900

RubyGems の実行体のファイルパスを生成する処理で Windows 環境の考慮漏れの修正がされています。 [ruby-core:38574] [Bug #5111]

svn:r32805 2011-08-02 06:22:17 +0900

version.h の日付更新。

shyouhei:r32806 2011-08-02 07:35:05 +0900

Net::HTTP のテストにて TCPServer の listen するアドレスを "localhost" に明示するようにしています。

nobu:r32807 2011-08-02 11:15:55 +0900

新規追加のファイルの svn property の変更です。

nobu:r32809 2011-08-02 11:42:17 +0900

:"!" というシンボル("!" のシンボル)はリテラルとして書けない(:! は syntax error)はずが書けるようになってしまっていたので修正。その結果 :"!".inspect の結果も ':!' から ':"!"' になります。 ここはまったく逆で "!" のシンボルはリテラルで表記できるのに inspect すると ':"!"' になっていたので ':!' にするという修正でした。 1.9.3 ブランチに修正が入っていて trunk にはテストの追加だけです。 [ruby-dev:44314] [Bug #5136]

nobu:r32810 2011-08-02 12:03:18 +0900

空の Hash と、一旦値が格納されてから Hash#delete などで値を除去して空に戻された Hash で Object#hash によるハッシュ値が異なっていたので、空の Hash は常に同じ値を返すようにしています。 [ruby-core:38650] [Bug #5146]

naruse:r32811 2011-08-02 16:35:21 +0900

encoding.c のリファクタリング。to_encoding() から str_to_encindex() を切り出して enc_find() で利用するように、また to_encoding() を str_to_encoding() に改名。そして rb_obj_encoding() で rb_enc_get() を利用せずに rb_enc_get_index で index に変換して存在チェックしてから rb_enc_from_encoding_index() で Encoding オブジェクトに変換して返すようにして余分な変換を省いています。

sorah:r32812 2011-08-02 20:18:58 +0900

testunit の並列テスト実行で子プロセスのコマンドラインに --ruby オプションで実行する ruby 実行体を指定していなかったのでビルドディレクトリの ruby を利用するように指定を追加しています。 [ruby-dev:44303] [Bug #5132]

naruse:r32814 2011-08-02 21:19:27 +0900

ToDo ファイルを削除しています。そういえばこんなファイルもありましたね。

naruse:r32815 2011-08-02 22:08:45 +0900

シグナルハンドラ用のスタックを altsigstack() で登録するための代替スタック領域の確保は malloc/free で実行するようにしています。また objspace がセットアップされていない状態で呼ばれる可能性があるため xmalloc は利用してはいけなかったらしいです。 そしてメインスレッドの代替スタック領域は init_heap で再度確保しなおしています。これはなぜなんでしょうか。 この修正は [ruby-dev:44315] [Bug #5139] の SEGV 時のバックトレースなどの情報の表示中に再度 SEGV してしまう問題のための修正です。今手元で確認できませんが chkbuild をみると test_segv_test の結果は SEGV 時の表示内容が増えているものの、まだ途中で落ちるのは直っていないようです。

naruse:r32816 2011-08-02 23:27:56 +0900

r32811 の encoding.c のリファクタリングの再修正。 str_to_encindex() が UNSPECIFIED_ENCODING という値を返すことがあるのに対応しています。

nobu:r32817 2011-08-02 23:50:54 +0900

同じく encoding.c のリファクタリングVALUE の型判定を RB_TYPE_P マクロを利用して簡潔に書けるのでそのように変更しています。

akr:r32818 2011-08-03 00:25:59 +0900

PrettyPrint#fill_breakable の rdoc 用コメントを追記しています。 [ruby-core:36776] [Bug #4834]

svn:r32819 2011-08-03 00:26:04 +0900

version.h の日付更新。

naruse:r32821 2011-08-03 00:39:10 +0900

r32815 でメインスレッドの代替スタック領域を確保しなおしているところで xmalloc() を使ってしまっていたので他と同様に malloc を使うようにしています。また元々 th_init() で確保済みの領域を free する前に新しい領域を malloc() で確保するようにしています。些細なことですがこの順番の違いで確保されるアドレスが変化して現象が変わるのかもしれないですね。 [ruby-dev:44315] [Bug #5139]