ruby-trunk-changes r53990 - r53999

今日は RubyGems の 2.6.1 への更新などがありました。

headius: r53990 2016-03-04 06:05:44 +0900

test/ruby/test_io_m17n.rb のテストで assert_in_out_err で子プロセスを起動する時のタイムアウトが 1秒に設定されていたところを 10秒にしています。 JRuby 向けでしょうね。

svn: r53991 2016-03-04 06:05:45 +0900

version.h の日付更新。

nobu: r53993 2016-03-04 12:53:43 +0900

ruby スクリプトを load する時の shebang の読み込みで "ruby" の4文字を読み飛ばすためのポインタ操作を削っています。マジックナンバー化していたし、どうせこの後 strstr(3) でポインタを進めるので不要でした。

nobu: r53994 2016-03-04 13:34:17 +0900

shebang に -K オプションや -E オプションを書いて効くことを確認するテストの確認方法を assert_in_out_err の encoding オプションを使うように変更しています。

nobu: r53995 2016-03-04 14:19:12 +0900

load_file_internal() で RSTRING_PTR() などのマクロを繰り返し呼ばずローカル変数に格納して参照するようにリファクタリングしています。

ko1: r53996 2016-03-04 18:53:03 +0900

gc.c の enum gc_stat を enum gc_mode に改名(gc_stat() という関数があるのでそれと被るのを避けるためだそうです)してメンバ名も変更しています。また mode を取得するためのマクロを導入しています。また 2 bit の bit field を使っていたのを 3bit に拡張しています。 VC++ では bit field に対して負の値を返すからとのこと。あー、signed だから最上位 bit が立つと負になるの…?

ko1: r53997 2016-03-04 19:37:35 +0900

r53996 の再修正。 gc_mode を enum から unsingned int の bit field に指定を変更して bit 数を 2 に戻しています。 そうか確か enum は int と互換という仕様だったはず。

nobu: r53998 2016-03-04 22:27:36 +0900

shebang の行の改行に "\r" が含まれていたら警告を出力するようにしています。 r53994 で変更したテストも警告を受け付けるように修正しています。

nobu: r53999 2016-03-04 22:39:46 +0900

標準添付ライブラリ securerandom で Array#join の戻り値に to_s しているところがありましたが、Array#join はそもそも String を返すので不要なので削っています。