ruby-trunk-changes r49829 - r49843

今日は fstring 用の管理テーブルの問題でプロセス終了時に [BUG] が発生する可能性がある不具合の修正や、インストール用スクリプトでデフォルトの umask を 077 にする変更などがありました。

usa: r49829 2015-03-03 23:42:15 +0900

tool/redmine-backporter.rb で自前実装している Readline.readline (Windows 向けですね)でコントロール文字を表示しないようにしています。

usa: r49830 2015-03-04 00:30:54 +0900

tool/redmine-backporter.rb でコマンドの省略形を受け付けるようにしています。

svn: r49831 2015-03-04 00:32:21 +0900

version.h の日付更新。

nobu: r49832 2015-03-04 00:37:47 +0900

.travis.yml で OS X 環境でテスト後に ~/Library/Logs/DiagnosticReports にファイルができてないかチェックするようにしています。まあでも、わざと SEGV させるテストとかあるので……と思ったのですが r49837 をみて気がついたのですが make test-all ではちゃんとシグナルでわざと [BUG] を発生させた時はレポートファイルを削除していたんでした。

nobu: r49833 2015-03-04 00:45:00 +0900

thread.c の EXEC_TAG() を使っているブロック内で代入する変数に volatile をつけています。 EXEC_TAG() は rb_setjmp() を内包しているので volatile が必要(ruby-trunk-changes でもおなじみの "clobbered by 'longjmp' or 'vfork'" 警告のあれ)。

nobu: r49834 2015-03-04 01:27:34 +0900

tool/rbinstall.rb で gem パッケージのインストール時にインストール先のディレクトリの permission を File.chmod で設定するようにしています。

nobu: r49835 2015-03-04 02:01:13 +0900

mkmf のテスト用に定義している assrt_separately で子プロセスの終了時に teardown を呼び出すようにしています。一時ディレクトリの掃除用とのこと。

usa: r49836 2015-03-04 02:14:22 +0900

tool/redmine-backporter.rb でチケットの関連リビジョンが trunk の変更を含んでいるときだけ利用するようにしています。

nobu: r49837 2015-03-04 09:24:06 +0900

EnvUtil.diagnostic_reports で、子プロセスが特定のシグナルを受信して終了した時には ~/Library/Logs/DiagnosticReports のファイルを消すようにしていましたが、SIGTRAP の時もレポートファイルを消すようにしています。

hsbt: r49838 2015-03-04 10:15:43 +0900

doc/syntax/methods.rdoc の文法などの修正。 https://github.com/ruby/ruby/pull/843

hsbt: r49839 2015-03-04 10:17:02 +0900

Enumerable#slice_after に引数とブロックが同時に渡された時の例外メッセージの typo 修正。slice_after は 2.2 からなので 2.2 ブランチのみ backport 対象ですね。 https://github.com/ruby/ruby/pull/842

nobu: r49840 2015-03-04 10:22:01 +0900

EnvUtil.assert_in_out_err で子プロセスがシグナルを受信して終了した時に EnvUtil.diagnostic_reports を呼び出す前に sleep 0.1 していたのを削っています。 EnvUtil.diagnostic_reports の中でループして3秒までレポートファイルが出力されるのを待っているのでここで sleep する必要はなかったようです。

nobu: r49841 2015-03-04 10:34:11 +0900

r49834 で tool/rbinstall.rb の File.umask を 0222 に変更していましたが 077 に再修正しています。 group と others は一切の権限をつけないようにしています。 えー system wide にインストールする時にこれでいいんですかね。必要なら明示的に --{data,prog,dir}-mode を指定するからいいのかな…。 distributor のパッケージ作成者にとっては重要な変更な気がします。

nobu: r49842 2015-03-04 11:52:32 +0900

fstring の管理用の Hash オブジェクトが通常の rb_hash_new() で作成されていたため、削除時に rb_funcall() が呼ばれてしまうため、インタプリタの終了処理中に finalizer が実行されオブジェクト作成しようとしてしまって [BUG] で落ちるという不具合があったのを修正しています。 fstring の管理テーブルはオブジェクトの同値性をみる必要はないので rb_ident_hash_new() で作るようにしています。 [ruby-dev:48891] [Bug #10933]

gogotanaka: r49843 2015-03-04 12:47:06 +0900

Math のテスト test/ruby/test_math.rb に assert_float_and_int というユーティリティメソッドを導入してテストをシンプルに書き直しています。 [ruby-core:67920] [misc #10810]