ruby-trunk-changes r30098 - r30123

今日もたくさんのコミットがありました。さすがに浅くしか読めてませんが、

  • OptionParser のオプション補完の仕組みの変更
  • Net::IMAP の XLIST コマンド対応
  • String#encode の :fallback オプションの機能拡張
  • IO#read にバッファ共有した文字列を格納先として渡した時の不具合修正

あたりが主な新機能/不具合修正などです。

nobu:r30098 2010-12-06 22:47:19 +0900

OptionParser の補完機能用のメソッドでセパレータをスキップするように修正。また --help オプションを上書きすると補完ができない(--help に引数を渡すことで補完候補を返させる作りになっているため)ので、sample/optparse にあるサンプルで --help を上書きするのをやめて --usage というオプションにしています。[ruby-dev:42690] けど後程 r30121 で補完に --help を使わないように修正する時に戻されています。

nobu:r30099 2010-12-06 22:55:15 +0900

make test-build ターゲットを追加しています。mkmf のテストだけをするようです。訊いたところによるとクロスコンパイル環境専用のターゲットとのこと。

nobu:r30100 2010-12-06 23:17:40 +0900

mkmf の find_executable のテストの修正。実行可能ファイルの拡張子を configure 結果から取得するようにしています。

nobu:r30101 2010-12-06 23:18:26 +0900

修正方法はもうちょっと詳しく見てみないとわかりませんが、mkmf のテストでログ出力などを抑制する方法を変更しているようです。Logging というメッセージ出力用の Module? が mkmf にあるみたいです。

nobu:r30102 2010-12-06 23:43:50 +0900

そしてクロスコンパイルじゃない環境では make build-test で普通に mkmf のテストを実行するようにしたようです。

nobu:r30103 2010-12-06 23:47:54 +0900

で最終的にはクロスコンパイル環境では make test-all すると $(TEST_BUILD) (具体的には mkmf) を実行するようになったというところに落ち着いたようです。

svn:r30105 2010-12-07 00:29:46 +0900

version.h の日付更新。

akr:r30106 2010-12-07 05:56:04 +0900

今日の関数マクロの引数のかっこくくり矯正は cont.c でした。

nobu:r30107 2010-12-07 08:00:47 +0900

あちこち hunk がありますが mkmf の convertible_int でコンパイラのエラーによって型の同一性チェックをしていたのに VC が警告しか返さなかった(一応C99 によると結果は不定らしいのでコンパイルエラーにならなくちゃいけないというわけでもないらしい。詳細は ruby-dev のスレッド参照 [ruby-dev:42684])ので、コンパイルオプションをつけたり、警告メッセージが出てたらエラーにするなど対応している模様。

shugo:r30108 2010-12-07 17:07:12 +0900

Net::IMAP に XLIST コマンドのサポートを追加しています。XLIST とは AppleGoogle による拡張で GMailiPhone クライアントで使用されているそうです。GMail 以外では使えないのかも。 [ruby-core:33521]

kou:r30109 2010-12-07 20:30:19 +0900

test/rexml/test_doctype_mixin.rb を test/rexml/test_doctype.rb に移動。

kou:r30110 2010-12-07 20:31:46 +0900

TestDoctype を TestDocType と改名。

kou:r30111 2010-12-07 20:32:45 +0900

さらに TestDocType を TestDocTypeAccessor に改名。ずいぶん小刻みな変更ですね。

naruse:r30112 2010-12-07 20:47:39 +0900

kconv.rb の String#kconvtypo による不具合修正と rdoc 更新。[ruby-dev:42696]

kou:r30113 2010-12-07 21:10:23 +0900

rexml/doctype.rb 警告除去 [ruby-core:33305]

akr:r30114 2010-12-07 21:16:10 +0900

次の関数マクロの引数かっこ矯正は debug.c です。今日は2つめですね。

kou:r30115 2010-12-07 21:55:12 +0900

test/rexml/test_light.rb の警告除去。っていうか元は assert がないので例外が起きないということしか確認していなかった。

kou:r30116 2010-12-07 21:57:35 +0900

で、r30115 でもまだ未使用のローカル変数があったのでさらに assert でのチェックに追加。

kou:r30117 2010-12-07 22:01:36 +0900

rexml/light/node.rb が require "rexml/light/node" しているのを削除。

nobu:r30118 2010-12-07 22:05:26 +0900

String#encode での文字エンコーディング変換で変換できない文字の置換先を特に指定するために :fallback オプションに Hash を渡して変換テーブルを渡せるのですが、その Hash のデフォルト値つき(Hash.new にブロックを渡して生成したもの)のデフォルト値が利用されていなかったのを使用するようにしています。また :fallback に Proc オブジェクトなど '[]' メソッドで変換後の文字を返させるオブジェクトを許容するようにしています。[ruby-dev:42692]

naruse:r30119 2010-12-07 22:12:10 +0900

test_imap_response_parser.rb の typo 修正。これエラーだったんですよねきっと。

nobu:r30120 2010-12-07 22:29:49 +0900

optparse.rb 未使用のローカル変数を削除して警告除去。

nobu:r30121 2010-12-07 22:31:11 +0900

OptionParser を使ったコマンドのオプション補完のために使うオプションを --help から --*-completion-bash と --*-completion-zsh というちょっと変わった専用のオプションに変更。
コメントの --*-completion-bash のほうは --*-completion-for-bash になってますね。

tarui:r30122 2010-12-07 22:38:36 +0900

IO#read の読み込み先としてバッファを他の String と共有している String を渡した時にエラーになるので複製するようにしています。[ruby-dev:42719] #4131

naruse:r30123 2010-12-07 23:24:40 +0900

OpenSSL のテストで警告除去のために SSLContext#tmp_dh_callback= で Proc オブジェクトを登録、とのことですがこれでなぜ警告除去になるのかはよくわかりませんでした。