ruby-trunk-changes r56382 - r56388

今日は require や load 用にファイルを開く処理の主に Windows 環境向けの? 修正がありました。

nobu: r56382 2016-10-09 23:05:57 +0900

Fixnum と Bignum の統合に伴い Array#sum と C API rb_singleton_class() の rdoc 用コメントで Fixnum と書かれていたところを Integer に修正しています。 https://github.com/ruby/ruby/pull/1459

nobu: r56383 2016-10-10 12:37:09 +0900

io.c の io_check_tty() で IO オブジェクトの fd が端末かどうかチェックした結果を関数の戻り値として返すことで prep_io() から io_check_tty() の戻り値で分岐することで fd が端末の場合重複して isatty(2) を呼んでいたのを抑制しています。

svn: r56384 2016-10-10 12:37:10 +0900

version.h の日付更新。

nobu: r56385 2016-10-10 12:40:06 +0900

ファイルを load するために開く時に Windows 環境に限らず O_BINARY が定義されていたらフラグに追加するようにしています。 parser が EOL を扱えるようにするためとのこと。

nobu: r56386 2016-10-10 12:40:56 +0900

Windows 環境で load 用に開くファイルの拡張子を .exe かどうかチェックしているところで EXEEXT という定数を利用するようにしています。また ".exe" のみのファイル名にマッチしてしまわないようにしています。

nobu: r56387 2016-10-10 15:14:07 +0900

FIFO を require に渡した時の挙動のテストで assert_ruby_status を使っていたところを assert_separately を使って書きなおしています。これスクリプトに埋め込むヒアドキュメントのマーカーをわざわざ begin と end に分けてるのはなぜだろう。begin のほうは空(空行?)になるだけで不要な気がするのですが。[追記]begin...end で中身をインデントさせるためとのことでした。[/追記]

nobu: r56388 2016-10-10 15:22:30 +0900

open_load_file() で FIFO を require に渡した時に ruby_is_fd_loadable() でエラーが帰ってきた時にエラーを返す前に rb_io_fdopen() を呼んで fd を IO オブジェクトに関連付けて GC で回収される時に閉じられるようにしています。