ruby-trunk-changes r46007 - r46022

今日は昨日追加された Etc.unameWindows 版実装の追加や String#gsub などの不具合修正、Socket::Option#inspect の TCP_INFO 対応の追加などがありました。

naruse: r46007 2014-05-19 05:05:26 +0900

Rake のタスクの依存関係の実行順序についてのテスト test_always_multitask で sleep しているのを少し長くしています。 RubyCI で sleep が足りなくて並列実行時に順序が入れ変わらなかったのでそのための対応のようです。

svn: r46008 2014-05-19 05:05:35 +0900

version.h の日付更新。

nobu: r46009 2014-05-19 08:35:04 +0900

r45984 の Etc.sysconf, Etc.confstr, IO#pathconf のテストで必要な定数が定義されている時だけテスト実行するようにしています。

nobu: r46010 2014-05-19 08:49:03 +0900

test/ruby/envutil.rb の assert_separately で子プロセスの状態を検査する FailDesc という Proc オブジェクトに渡す引数を間違えている箇所があったのを修正しています。

sorah: r46011 2014-05-19 14:07:15 +0900

r45974 で標準添付ライブラリ test/unit を削除したのに追随して bin/testrb も削除しています。 [Feature #9711] [ruby-core:62620]

nobu: r46012 2014-05-19 16:06:54 +0900

string.c の rb_str_index() で文字列のバッファ内を指すローカル変数に const を付加しています。

nobu: r46013 2014-05-19 16:29:51 +0900

r45451 で String#sub や #gsub などの文字列置換のメソッドでパターンを文字列で渡した時に後方参照用のオブジェクトを確保しないようにする修正によりマルチバイト文字を含む文字列のときに置換がうまくいかなくなっていた不具合が入っていたようで、これを修正しています。 rb_str_index() に文字単位でなくバイト単位で比較する挙動を強制する引数を追加して rb_strseq_index() という関数名に変更して、rb_pat_search() からはこれに 1 を渡して呼ぶようにしています。文字サイズを無視したほうがいいというのはちょっと不思議ですね。 [ruby-core:62669] [Bug #9849]

nobu: r46014 2014-05-19 16:54:25 +0900

r45983 で追加された拡張ライブラリ etc の Etc.unameWindows 版の実装を追加しています。 GetVersionExW()、GetSystemInfo()、GetComputerNameExW() などの関数を利用して実装していて、sysname には "Win32s"、"Windows_NT"、"Windows" などが入るようです。 [ruby-core:62600] [Feature #9842]

akr: r46015 2014-05-19 19:37:14 +0900

r46014 で Windows 版でも Etc.uname が利用できるようになったので dbm のテストで cygwin 版の時に Win32API を使って uname を呼んでシステムの情報を取得していたところを Etc.uname で書きかえています。

akr: r46016 2014-05-19 20:40:48 +0900

ext/etc/constdefs.h を svn が無視するように svn property を設定追加しています。

akr: r46017 2014-05-19 20:52:03 +0900

Socket::Option#inspect に TCP_INFO の時の詳細情報の表示に対応しているようです。

nobu: r46018 2014-05-19 21:32:14 +0900

r46014 で追加した Windows 版の Etc.uname の実装で、GetComputerNameExW() でホスト名を得るのにバッファサイズを取得する時と実際に結果を格納するための呼び出しでの第1引数を ComputerNameDnsFullyQualified と ComputerNameDnsHostname と変化してしまっていたので ComputerNameDnsFullyQualified にそろえて、マクロ化しています。

nobu: r46019 2014-05-19 21:32:25 +0900

r46014 の Windows 版 Etc.uname の実装で古い VC のために GetComputerNameW() を利用する場合も追加しています。

nobu: r46020 2014-05-19 21:35:22 +0900

r46018 で Windows 版 Etc.uname のためにマクロ定義した GetComputerNameExW() の呼び出しでマクロ引数名を typo していたのを修正しています。

kazu: r46021 2014-05-19 21:35:43 +0900

r45966 と r45976 の ChangeLog エントリの typo 修正と余分な空白の除去。

akr: r46022 2014-05-19 23:28:26 +0900

r46017 の Socket::Option#inspect での TCP_INFO のサポートの追加で struct tcp_info のサイズよりデータを pack した文字列のほうが大きい場合も完全に無視はせず表示した上でサイズの違いを表示するようにしています。