ruby-trunk-changes r41731 - r41749

今日は IPSocket.new のローカルアドレスの扱いの再修正、mkmf.rb の不具合修正、エンコーディングのインデックスの定数化、bignum.c のリファクタリングなどの変更がありました。

akr:r41731 2013-07-02 00:43:21 +0900

r41686 および r41724 の続き。IPSocket.new でローカルアドレス指定時にリモートアドレスと同じアドレスファミリーのものを使うようにする処理で、既に前のアドレスで bind(2) や connect(2) などに失敗していたらリモートと異なるアドレスファミリーのローカルアドレスで妥協しないようにしています。ということはローカルアドレスの候補が1つだけでそれがリモートアドレスと異なるアドレスファミリーの時だけ妥協する、ということでしょうか。

svn:r41732 2013-07-02 00:43:27 +0900

version.h の日付更新。

sorah:r41734 2013-07-02 11:35:36 +0900

mkmf.rb の pkg_config で $libs が指定されていた時に $LDFLAGS をまるごと置換していたのを追加するように修正しています。 [ruby-core:55752] [Bug #8595]

kazu:r41735 2013-07-02 11:59:59 +0900

r41724 の ChangeLog のエントリの typo 修正。

kazu:r41736 2013-07-02 12:00:02 +0900

r41731 の ChangeLog エントリの typo 修正。

kazu:r41737 2013-07-02 12:00:05 +0900

r41734 の ChangeLog エントリのインデント修正。

nobu:r41738 2013-07-02 17:22:15 +0900

組み込みのエンコーディングのインデックスを enum 定数として宣言するようにしているみたいなのですが encoding.c で ENCDB_REGISTER() という関数マクロを define してすぐに undef していて、どういう意味があるのかよくわかりません、と思ったら後でこの間にエンコーディング登録が追加されるみたいでした。

nobu:r41739 2013-07-02 17:22:19 +0900

encoding.c に must_encindex() という関数を追加して渡されたインデックスが既に登録されている Encoding に対応するインデックスであるかをチェックするようにして、rb_enc_set_index() や rb_enc_associate_index() で呼び出すようにしています。 また include/ruby/encoding.h の ENCODING_SET() マクロを rb_enc_set_index() の呼び出しに変更しています。

nobu:r41740 2013-07-02 17:22:23 +0900

encoding.c の enc_inspect() rb_filesystem_encindex() enc_set_filesystem_encoding() rb_filesystem_encindex() で US-ASCII や ASCII-8BIT のインデックスを関数を読んで取得していたのを定数の参照に置き換えています。

nobu:r41741 2013-07-02 17:22:30 +0900

internal.h で rb_ascii8bit_encindex() rb_utf8_encindex() rb_usascii_encindex() などの組込みエンコーディングのインデックス取得を定数参照に置換するマクロ定義を追加しています。 ただし encoding.c ではこれらのマクロは無効化しています。

nobu:r41742 2013-07-02 17:22:34 +0900

r41738 で encoding.c で ENCDB_REGISTER() マクロを定義したところで UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE の登録を追加して、これらのエンコーディングのインデックスを参照しているところを定数参照に置換しています。

nobu:r41743 2013-07-02 17:22:38 +0900

r41742 の続き。さらにダミーエンコーディング UTF-16, UTF-32 も登録を追加してインデックスを取得しているところを定数参照に置換しています。

nobu:r41744 2013-07-02 17:22:43 +0900

さらに続き。 UTF8-MAC も追加して dir.c の rb_utf8mac_encoding() でのエンコーディングインデックスの検索を定数の参照に置換しています。

nobu:r41745 2013-07-02 17:22:47 +0900

さらに続き。 EUC-JP と Windows-31J も組み込みエンコーディングに追加して re.c でエンコーディングインデックスを検索していたところを定数の参照に変更しています。

shugo:r41746 2013-07-02 17:24:26 +0900

doc/syntax/refinements.rdoc にこのところ追加(復活)された Module#using の追加と Module#include での refinemends の継承を追記しています。

akr:r41747 2013-07-02 20:52:13 +0900

bignum.c の rb_cstr_to_inum() で数値が大きい時の処理でカーソル用の変数に BDIGIT_DBL を利用することで1回のループで倍のバイト幅の処理をするようにしているみたいです。

akr:r41748 2013-07-02 21:20:00 +0900

bignum.c の rb_cstr_to_inum() で桁数が大きい時の処理で一時バッファ用に確保する String オブジェクトを1つにまとめています。

charliesome:r41749 2013-07-02 22:16:35 +0900

r41747 での bignum.c の rb_cstr_to_inum() の変更での 64bit 環境での暗黙のダウンキャストの警告を除去するための明示的キャストを追加しています。