ruby-trunk-changes r66708 - r66722

今日は single thread 時の拡張ライブラリからの blocking 処理で割り込みが効かなくなる場合がある不具合修正や bundler の 2.0系への移行、SyntaxError のエラーメッセージをわかりやすくする変更などがありました。

normal: r66708 2019-01-04 21:53:06 +0900

2.6 以降の timer thread の廃止(環境によって)に伴なって single thread で動いている場合に拡張ライブラリから rb_thread_call_without_gvl() を呼んで blocking 処理している時に割り込み時に ubf 関数が呼ばれないという不具合があったのを修正しています。このために single thread の時にはそのために sleep するだけの pthread を起動するそうで。うーん。なんで ubf のために thread が必要なのかもよくわかってませんが、timer thread 削除には無理があったような気も。 [ruby-core:90865] [Bug #15499]

svn: r66709 2019-01-04 21:53:10 +0900

r66708 のインデントのタブを空白に展開。

hsbt: r66710 2019-01-04 22:10:58 +0900

bundler の 2.0.1 を upstream からマージしています。2.6.0 で延期した 2.0 系への移行ですね。

svn: r66711 2019-01-04 22:11:02 +0900

r66710 の新規追加ファイルの svn property 設定。

normal: r66712 2019-01-04 22:14:11 +0900

r66708 の修正にもからんで rb_nogvl() という C API を追加して、flags 引数で ubf が追加の thread を必要とするかどうか指定できるようにして、bignum や拡張ライブラリ zlib からの呼び出し時に不要な thread 生成を抑制するようにしています。 [ruby-core:90865] [Bug #15499]

svn: r66713 2019-01-04 22:14:18 +0900

r66712 のインデントのタブを空白に展開。

svn: r66714 2019-01-04 22:14:18 +0900

r66712 の新規追加ファイルの svn property 設定。

k0kubun: r66715 2019-01-05 00:41:29 +0900

r66598 で restrict 修飾子を有効にしたのに追随して Visual Studio 2013 でも __restrict というキーワードを利用するように #define の条件分岐を修正しています。
https://bugs.ruby-lang.org/issues/15347#note-7

svn: r66716 2019-01-05 00:41:32 +0900

version.h の日付更新。

ko1: r66717 2019-01-05 08:48:33 +0900

Hash の要素数が少ない時の array 実装の lookup の条件分岐を hash_stlike_lookup() という関数内に移動して共有するようにしています。

ko1: r66718 2019-01-05 09:06:09 +0900

hash.c で objhash という st_table 生成のための hash関数と cmp関数をメンバーとして持つ static 変数が用意されていますが、do_hash() や EQUAL() マクロでこのメンバーを参照して関数呼び出ししていたのを直接対象の関数を呼ぶようにしています。

ko1: r66719 2019-01-05 09:31:54 +0900

hash.c のインデントとスタイルの修正。

duerst: r66720 2019-01-05 18:47:55 +0900

common.mk で make update-unicode-property-files のファイルダウンロードの対象を UNICODE_PROPERTY_FILES から一部を UNICODE_AUXILIARY_FILES という変数に分離してコマンドを分けてダウンロードするようにしています。

mrkn: r66721 2019-01-05 19:07:40 +0900

benchmark/ 配下にRange#last の引数つきの呼び出しのベンチマークを追加しています。

nobu: r66722 2019-01-05 20:35:24 +0900

Symbol の開始を意味する ":" と文字列リテラルのクオートが許可されない場所に現われた時の SyntaxError のメッセージをわかりやすく表示するようにしています。