ruby-trunk-changes r63953 - r63959

今日は rb_check_frozen_internal() の分岐予測ヒントの追加などがありました。

kazu: r63953 2018-07-11 22:00:56 +0900

r63947 で Tempfile のテストで一時ファイルの後始末をする時に閉じる前に File.unlink を呼んでいて、これは Windows 環境では動かないので順序を入れ換えています。

k0kubun: r63954 2018-07-12 07:49:48 +0900

benchmark/README.md の benchmark_driver --help の出力を貼り付けているところで --timeout オプションの表示を消しています。一部のプラットフォームでしか使えないためとのこと。

svn: r63955 2018-07-12 07:49:50 +0900

version.h の日付更新。

nobu: r63956 2018-07-12 11:14:00 +0900

exe/ruby のビルド時に libm をリンクするようにしています。 fiddle のテストのためとのこと。

nobu: r63957 2018-07-12 11:29:57 +0900

r63956 で ruby-runner.c で libm を link するために追加した log(3) の参照は消して、fiddle のテストのほうで libm を使わなくてもすむようにしています。なんか結局 dlopen はしていたけど実際には使ってなかったみたいですね。

kazu: r63958 2018-07-12 12:59:13 +0900

r63943 で clang の attribute diagnose_if を使ったコンパイルエラーメッセージ改善をしていたのですが diagnose_if の存在チェックで __has_attribute を使うチェックを1つの #if でやるとエラーになってたみたいなので、__has_attribute() がなかったら代替を定義してからチェックするようにしています。
[追記]コメント欄にいただいた情報によると、#if の問題は古い gcc の preprocessor の不具合みたいです。[/追記]

nobu: r63959 2018-07-12 14:01:04 +0900

include/ruby/intern.h の rb_check_frozen_internal() という関数マクロでエラー時の分岐に RB_UNLIKELY() を使って分岐予測のヒントを与えるようにしています。 https://github.com/ruby/ruby/pull/1913