ruby-trunk-changes 2019-06-11

今日は parser が一部の不正な記法で SEGV する不具合の修正や TCPSocket でローカルアドレス指定時に SO_REUSEADDR を設定する変更などがありました。

[02155da7ba] Takashi Kokubun 2019-06-10 13:20:00 UTC

f42588f754d5885ec30631e5008c383f3ef905d8 で tool/file2lastrev.rb で定数マクロ RUBY_RELEASE_DATE にリリース版でない時に時刻まで含めるようにしてましたが、埋め込む時刻はツールを動かしてる環境のローカルタイムで表記するようにしています。

[f0bfa71ab3] Takashi Kokubun 2019-06-10 14:23:15 UTC

02155da7bad37bd1c8adadd486d2d16eac7af43b の再修正。時刻を埋め込む時の timezone を UTC 固定にしています。

[be6b462489] Kazuki Tsujimoto 2019-06-10 15:20:10 UTC

pattern match の文法のコンパイルでオブジェクトのクラスのチェックに putobject+checkmatch を使っていたところを checktype 命令を使うように最適化しています。

[d7e7e99862] git 2019-06-10 15:25:57 UTC

version.h の日付更新

[6096baea5d] Yusuke Endoh 2019-06-10 21:45:49 UTC

標準添付ライブラリ net/http のテストで Thread のタイムアウトに EnvUtil.apply_timeout_scale を経由した数値を使って環境変数でスケーリングできるようにしています。

[de4b2930f7] Yusuke Endoh 2019-06-10 21:53:33 UTC

拡張ライブラリ socket で TCPServer の時は自動的に setsockopt(3) で SO_REUSEADDR をつけてましたが、TCPSocket の時もローカルアドレスの指定があったら SO_REUSEADDR をつけるようにしています。 rubyspec でたまに失敗してしまうのでその対策とのこと。

[fe9701ee00] git 2019-06-10 21:56:46 UTC

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

[4adc6f07ef] Yusuke Endoh 2019-06-10 22:15:31 UTC

test/unit の assert_cpu_usage_low という CPU 利用率をチェックする assertion のデフォルトのしきい値を 0.01 から 0.05 に引き上げてます。この assertion normalperson が追加したやつですけど追加直後にも引き上げられてて、なかなかきびしいというか不安定そうですよね。

[e4364dbf6e] Hiroshi SHIBATA 2019-06-11 03:16:26 UTC

bundler のテストのインデントの修正。

[42ac8890ef] Kazuhiro NISHIYAMA 2019-06-11 03:32:13 UTC

.travis.yml の before_script に ~/.irbrc が読まれたらエラーにするためにわざと例外を発生させる ~/.irbrc を生成しておくようにしています。

[140b8117bd] Nobuyoshi Nakada 2019-06-10 17:09:00 UTC

代入記号つきメソッドに &. 演算子を組み合わせて左辺値が複数の値に分解される x, y.&meth = 0 のような記法を parse するとエラー処理が不十分で SEGV していたので、SyntaxError を発生させるようにしています。
というかこれを読んでて気がついたんですけど、左辺値で複数の値を分解して代入する時って

a, x.b = [0, 1]

みたいなのもできるんですね。