ruby-trunk-changes r66994 - r67003

今日は IO.copy_stream で fstat(2) の呼び出し回数を抑制する最適化や、class 文直下の yield に警告を出す変更などがありました。

glass: r66994 2019-02-04 06:04:04 +0900

IO.copy_stream の実装に使う構造体 struct copy_stream_struct に copy_stream_body() で fstat(2) の結果をキャッシュするメンバーを追加して繰り返し fstat(2) を呼び出すのを抑制するようにする最適化を行っています。

svn: r66995 2019-02-04 06:04:12 +0900

version.h の日付更新。

glass: r66996 2019-02-04 08:30:56 +0900

r66994 の fstat(2) の結果をキャッシュする変更で nogvl_copy_file_range() で構造体メンバから参照するのが漏れてた不具合を修正。

ko1: r66997 2019-02-04 15:12:27 +0900

rubyspec の Socket.udp_server_recv のテストでデバッグのために変数にわざと不正な値を入れておくようにしています。

ko1: r66998 2019-02-04 15:28:57 +0900

sample/trick2013 に入っている TRICK 2013 のファイルに LocalJumpError を発生させるためにトップレベルの yield を呼んでたのを 1.tap というのを呼び出すように変更しています。トップレベルの yield を禁止しようとしているのでそのために修正してもらったみたいです。 https://github.com/ruby/ruby/pull/2078

ko1: r66999 2019-02-04 16:10:05 +0900

yield 文が class 文の直下などメソッド内じゃないところにいきなり書かれた時に警告を発生させるようにしています。 r66998 の修正もこれのためですね。 [ruby-core:91333] [Feature #15575]

usa: r67000 2019-02-04 17:10:24 +0900

win32/README.win32 の必要な Windows のバージョンや VC++ のバージョンの記述を更新しています。

nobu: r67001 2019-02-04 17:13:37 +0900

r66999 の yield の位置のチェックで追加した check_yield_place() の引数に line を追加して警告に利用するようにしています。 [ruby-core:91333] [Feature #15575]

nobu: r67002 2019-02-04 17:17:44 +0900

configure.ac で -std=gnu99 をつけるかどうかの $target_os での分岐チェックを別のチェックの AC_CASE() マクロから分離して mingw/cygwin/darwin/netbsd などのプラットフォームでもチェックするように修正しています。

k0kubun: r67003 2019-02-04 17:20:05 +0900

Rinda のテストの with_timeout のタイムアウト値を MJIT 有効化時には 10倍にするようにしています。 r66985 で修正するまで実際には yield されてなかったので動いてなかったやつですね。