ruby-trunk-changes r52736 - r52750

今日は ARGF.readpartial の不具合修正、IO.copy_stream の不具合修正などがありました。

ngoto: r52736 2015-11-25 00:00:57 +0900

Solaris で _FILE_OFFSET_BITS が 64 に定義されていたら _LARGEFILE_SOURCE を定義するようにしています。

svn: r52737 2015-11-25 00:03:40 +0900

version.h の日付更新。

shugo: r52745 2015-11-25 10:57:48 +0900

ARGF.readpartial で第2引数のバッファ文字列の指定がない時に EOF に到達した時に nil を文字列として操作しようとして例外になっていたのを修正しています。 [ruby-core:71668] [Bug #11738]

nobu: r52746 2015-11-25 12:18:13 +0900

RubySpec から ObjectSpace.each_object にクラスを指定して実行した時のテストを取り込んでいます。

nobu: r52747 2015-11-25 12:36:13 +0900

configure から tool/ifchange を呼び出す時に CONFIGURE_TTY をみて端末からの実行であれば --color オプションを渡して reconfig 時の出力の色付けを有効にするようにしています。

ko1: r52748 2015-11-25 16:39:14 +0900

NEWS ファイルに --debug=frozen-string-literal オプションについて追記しています。 [Feature #11725]

nobu: r52749 2015-11-25 17:02:29 +0900

r52698 での --enable-frozen-string-literal-debug から --debug-frozen-string-literal へのオプション名変更にあわせてコンパイルオプションの定数マクロや構造体メンバなどの名前も改名しています。また --debug オプションに引数がなかった時だけ $VERBOSE と $DEBUG をセットするようにしています。 [Feature #11725]

nobu: r52750 2015-11-25 21:23:42 +0900

IO.copy_stream で引数に Pathname を渡した時に例外になる不具合を修正しています。 to_io で変換する処理を追加していますが Pathname の場合は多分 to_path で変換してからファイルを開く挙動だと思うので、どっちかというと Pathname が read/write メソッドを持ってしまっているのでそれで誤作動しないように respond_to?(:read) や respond_to?(:write) での判定を信じずに常に T_FILE 型のオブジェクトに変換するようにしているようです。 しかしそうすると StringIO の時ってどうなるのか…と思いましたが、その時は src_fd や dst_fd が -1 になって read メソッドと write メソッドを使う copy_stream_fallback() に移行するので動きますね。 [ruby-dev:49008] [Bug #11199]