ruby-trunk-changes r51594 - r51617

今日は条件演算子と do...end ブロックの組み合わせの文法エラーの修正や IO#each_codepoint の不正な文字に対する挙動の変更などがありました。

nobu: r51594 2015-08-17 11:57:39 +0900

r51583 の IO#each_codepoint のマルチバイト文字の対応の再修正。EOF の前に中途半端な文字があったら例外を発生させるようにしています。 これまでは末尾の不正文字は単に無視していたので、一応仕様変更ということで NEWS ファイルにも追記しています。 [Bug #11444]

svn: r51595 2015-08-17 11:57:47 +0900

version.h の日付更新。

nobu: r51606 2015-08-17 17:12:23 +0900

LEGAL の dump.c についてのライセンスの記述で C のコメントから抜粋したためか、各行が "*" で始まるようになっていたのを修正しています。

nobu: r51616 2015-08-17 20:56:31 +0900

r47649 の Hash のキーにクオート付きの Symbol キーの記法を導入した時に条件演算子(a ? b : c)の解析時に cond_stack をリセットするようにしていたのを revert しています。 ":" を symbol キーの末尾のトークンとして認識するために a ? b : c の "b : " の部分を parse する時に cond_stack に 1 を push しておいたのだと思いますが、revert しているということはこれは不要だったみたいですね。別の条件で充分だったということでしょうか。

nobu: r51617 2015-08-17 20:56:55 +0900

条件演算子 (a ? b : c) の b の部分にブロックつきのメソッド呼び出しを do...end 記法で書くと Syntax Error になるという不具合を修正しています。 うーむ、こんなのが入り込んでいたか…。 [ruby-dev:48790] [Bug #10653]