ruby-trunk-changes r37317 - r37327

今日は最近追加されたフレームを作らないメソッド定義をする API が廃止されたりしています。

usa:r37317 2012-10-25 13:22:21 +0900

Ruby の文字列リテラルは C 言語の文字列リテラルと同様に連続して書いてあると連結されます。

a = "Hello" "World"
puts a # => HelloWorld

しかしこのためにメソッドの引数のカンマを忘れたりしても連結されて1つの引数になってしまって実行するまで気がつけなくていやだ、ということから将来的に廃止することにして、とりあえず警告を出力しようとしています。 [ruby-core:44156] [Feature #6265]
ただこの警告でテストが大量に失敗するという理由で後に revert されています。

svn:r37318 2012-10-25 13:22:25 +0900

version.h の日付更新。

usa:r37319 2012-10-25 13:36:15 +0900

tool/mkconfig.rb が生成する Rubyスクリプトで文字列リテラルの連結が利用されていたので、明示的に String#+ で連結するように書きかえています。

ko1:r37320 2012-10-25 15:03:53 +0900

r37198 あたりで追加されて r37252 で改名された、最近フレームを作らない C 実装のメソッドを定義する API rb_add_method_cfunc_frameless() を廃止しています。rb_define_private_method() と一緒に使うことができないなどまだいまいちなところがあるためだそうです。

usa:r37322 2012-10-25 17:50:55 +0900

Windows 版の Process.exec や spawn でコマンド実行する時に利用される rb_w32_spawn() でシェル(cmd.exe)を経由して実行すべきかどうか判定する has_redirection() でメタキャラクタとして判定する文字に "&" を追加しています。 [ruby-core:47912] [Bug #7143]

nobu:r37326 2012-10-25 19:07:22 +0900

標準添付ライブラリやテストで文字列リテラルの連結を利用していたところを修正しています。結構ありましたね。

naruse:r37327 2012-10-25 20:50:20 +0900

r37316 の文字列リテラルの連結時に警告を出力する変更を revert しています。この警告によりテストが大量に失敗してしまったそうです。