ruby-trunk-changes r38623 - r38631

今日も irb の修正と StringIO の IO との互換性を向上する修正などがありました。

keiju:r38623 2012-12-26 23:29:01 +0900

irbIRB::Context#use_readline= というメソッドで端末からの入力に readline を使うかどうかのフラグを変更していたのですが、うまく機能していなかったので obsolete メッセージを出力して切り替えしないようにしています。メッセージを出したうえで切り替えるのではなくて、切り替わらないようになっていますので注意。 [ruby-dev:45545] [Bug #6339]

shugo:r38624 2012-12-26 23:37:24 +0900

r38623 の ChangeLog エントリの typo 修正。

keiju:r38625 2012-12-26 23:56:57 +0900

r38542 で irbIRB::INSPECTORS を IRB::Inspector::INSPECTORS に移動した影響で IRB.keys_with_inspector で定数参照が必要になっていたので修正しています。 [ruby-core:51067] [Bug #7598]

zzak:r38626 2012-12-27 00:43:26 +0900

r38623 の lib/irb/context.rb のコメントの typo も修正。

svn:r38627 2012-12-27 00:43:31 +0900

version.h の日付更新。

glass:r38628 2012-12-27 20:43:02 +0900

StringIO の内部に持っているバッファの String オブジェクトが freeze されている時に ungetc, ungetbyte すると RuntimeError が発生していましたが、write では IOError が発生するのでそちらに合わせています。 文字列を操作する前に check_modifiable() を呼ぶ処理が抜けていたのでそれを追加しています。 [ruby-core:48530] [Bug #7231]

charliesome:r38629 2012-12-27 21:09:33 +0900

64bit 環境での情報落ちを防ぐため VM_DEFINECLASS_TYPE() マクロで明示的な型キャストを追加しています。 まあ MASK しているビットが 0x07 なので動作に影響はなかったと思います。

glass:r38630 2012-12-27 21:21:17 +0900

StringIO#gets の第2引数 limit に nil を渡した時に TypeError を発生させていたのですが、IO#gets の場合は limit なしとみなすのでその挙動を合わせるように修正しています。 [ruby-core:48531] [Bug #7232]

keiju:r38631 2012-12-27 21:35:28 +0900

irb のプロンプトからの入力でヒアドキュメント内の式展開の中のヒアドキュメントがパースエラーになるのを修正しています。 というよりもヒアドキュメント内の式展開自体認識していなかったみたいですね。 [ruby-core:41157] [Bug #5648]
あと元の実装をコメントアウトで残すのは VCS 使ってるんだし、消していいんじゃゃないかと。