ruby-trunk-changes r58144 - r58156

今日は String#-@ が再定義されていた時の脱最適化や Dir.glob のエラー対応の修正などがありました。

normal: r58144 2017-03-27 15:12:37 +0900

VM 命令に opt_str_uminus という命令を追加して String#-@ メソッドが再定義されていた時に脱最適化するようにしています。 [ruby-core:80368] [Feature #13295]

svn: r58145 2017-03-27 15:12:38 +0900

version.h の日付更新。

nobu: r58146 2017-03-27 19:44:32 +0900

error.c の rb_warn() や rb_enc_warn()、rb_sys_warning() の可変長引数から warning_string() と rb_write_warning_str() を呼び出して文字列を組み立てる処理を with_warning_string() というマクロに切り出すリファクタリング

nobu: r58150 2017-03-27 22:15:48 +0900

error.c に rb_sys_warn() rb_syserr_warn() などの関数を追加しているんですが全部 #if 0 ... #endif で囲まれているので、なんだろこれ。

nobu: r58156 2017-03-27 23:57:08 +0900

Dir.glob で opendir() が想定外の errno で失敗した時に SystemCallError 例外を発生させるようにしています。あと r58150 の error.c の #if 0 が外されてます。ここで使うためだったのか。 [ruby-core:80226] [Bug #13276]