ruby-trunk-changes r34910 - r34931

今日はいくつか文法の修正がありました。

nobu:r34910 2012-03-06 01:17:29 +0900

文法エラーが起きないことを確認するテストのために assert_valid_syntax という $VERBOSE を nil にして eval して SyntaxError が発生しないことをチェックするユーティリティメソッドを定義して使うようにしています。

svn:r34911 2012-03-06 01:17:33 +0900

version.h の日付更新。

nobu:r34912 2012-03-06 01:24:15 +0900

ブロックつきのメソッド呼び出しのあとに続けてメソッドチェーンする文法のルールを "." で繋げるのと "::" で繋げる時のルールをひとつにまとめています。

nobu:r34913 2012-03-06 01:34:21 +0900

引数をかっこでくくっていないブロックつきメソッド呼び出しにメソッドチェーンしてさらにブロックつきメソッド呼び出しを書こうとすると文法エラーになるのでルールを追加して許容するようにしています。 [ruby-dev:45308] [Bug #6115]

tenderlove:r34914 2012-03-06 02:32:53 +0900

Psych で Kernel#y を psych_y というメソッドの alias で上書きしているのを IRB から呼び出されている時(IRB モジュールが定義されている時)だけにするようにしています。 irb からしか使わないし、ってことなんでしょうけど pry とかもありますよね。

tenderlove:r34915 2012-03-06 06:48:49 +0900

psych のテスト TestYamlDBM#test_key は 2.0 以降のバージョンの時だけ実行するようにして 1.9 以前では skip するようにしています。はて、なぜでしょうね。

tenderlove:r34916 2012-03-06 07:19:35 +0900

XMLPRC::Client のテストで Net::HTTP#post2 を利用していたところを Net::HTTP#request_post を利用するようにしています。この2つのメソッドは alias ですが post2 は obsolete なので使わないようにしてくださいとリファレンスには書かれていました。

nobu:r34917 2012-03-06 10:11:47 +0900

拡張ライブラリ io/console の IO#raw で ECHOE, ECHOK というフラグも落とすようにしています。 それぞれ「erase 文字をバックスペース+空白+バックスペースとしてエコーする」「kill 文字の後に newline 文字をエコーする」というフラグです。また IO#echo? では ECHOE、ECHOK のフラグは無視するようにしています。 [ruby-dev:45309] [Bug #6116] その他 io/console の rdoc の修正、加筆されています。

marcandre:r34927 2012-03-06 13:09:04 +0900

String#[] の rdoc の修正。 Range が渡された時の説明を明確にしているようです。 [ruby-core:43035] [Bug #6106]

nobu:r34929 2012-03-06 16:24:07 +0900

r34896 で正規表現リテラルで区切り文字をエスケープしたときに、正規表現オブジェクトの source としてはエスケープしていない文字列を渡すようにしたのですが、 %r 表記を用いた正規表現リテラルで区切り文字として正規表現のメタキャラクタを用いた場合にはこれまでと違ってメタキャラクタがそのまま埋め込まれていたので、区切り文字が "$*+.?^|" だった時にはやっぱりエスケープしたものを渡すようにしています。

naruse:r34930 2012-03-06 18:44:27 +0900

ext/zlib/zlib.c の不要な変数の宣言と利用しているところをコメントアウト or 削除しています。コメントアウトで済ませているところは理由があるのでしょうか。

naruse:r34931 2012-03-06 18:47:17 +0900

sleep の test をスキップする Linux のバージョンチェックの typo 修正。