ruby-trunk-changes r61516 - r61523

今日は Integer#pow の modulo つき累乗の実装の修正や parser の SEGV 修正などがありました。

nobu: r61516 2017-12-30 21:10:43 +0900

標準添付ライブラリ drb で uri の schema のチェックの正規表現に ^$ を使っていたところがあったので \A\z を使うように修正しています。

mrkn: r61517 2017-12-30 23:50:15 +0900

2.5 で導入した Integer#pow の modulo つき累乗の実装で DLONG が定義されていた時の実装に抜けがあり大きな数の modulo の計算が抜けてたのを修正しています。 [ruby-core:84562] [Bug #14259]

ngoto: r61518 2017-12-31 01:38:22 +0900

32bit 環境の struct vm_ifunc_argc のメンバ min, max の bit field の型を明示的に signed int にするようにしています。 max には -1 を代入する場合があり、指定のない bit field は unsigned になるので、負整数を代入した時の挙動が未定義で値が意図しない結果になっていたそうです。 [ruby-core:84563] [Bug #14260]

svn: r61519 2017-12-31 01:38:23 +0900

version.h の日付更新。

ko1: r61520 2017-12-31 08:06:39 +0900

Thread#join と signal 受信が同時に起きた時のテストでタイムアウトを 120 秒に伸ばしています。再現のため繰り返しているので環境によっては時間がかかることがあるのでしょう。

ko1: r61521 2017-12-31 09:06:34 +0900

rdoc のテスト用の RDoc::TestCase の setup メソッドで RDoc::Markup::PreProcess.reset の呼び出しを最後に移動しています。ファイルのロード順によってまれに再現する(辞書順に実行すると常に起きるそうですが)テストの失敗の修正です。

nobu: r61522 2017-12-31 15:53:04 +0900

parser_yyerror() の引数に const YYLTYPE *yylloc を追加して bison が渡す位置情報をそのまま利用するようにしています。どうでもいいけど parser_yyerror() は第2引数への追加なので yyerror() は第1引数への追加なんだろう。

nobu: r61523 2017-12-31 20:25:38 +0900

"x, true" のような式で Syntax error になるのですが "Can't assign to true" というエラーになった上で SEGV していたのを修正しています。 assignable() がエラーを返した時に new_begin() で作った NODE で埋めてたのを assignable() が常にエラー時に NODE_BEGIN を返しておくようにしています。 [ruby-core:84565] [Bug #14261]