ruby-trunk-changes r56030 - r56044

今日は OS X での SEGV 時のバックトレース出力の修正や Windows でのファイル以外の IO への fsync/fdatasync の修正などがありました。

naruse: r56030 2016-08-30 03:43:17 +0900

vm_dump.c で SIGSEGV などを受信した時のバックトレースを出す情報で Darwin(OS X) の場合にプログラムカウンタを取得するのに rsp レジスタからスタック上にのっている値を取ってきていたのを、0 だったら rip レジスタの値を使うようにしています。 シグナルの受信時に Kernel 内だった(システムコール中)だったか、ユーザーランドだったかで保存されている位置が異なるので、ユーザランドでシグナル受信した場合に対応するようにしているようです。 [ruby-core:77096] [Bug #12711]

svn: r56031 2016-08-30 03:43:18 +0900

version.h の日付更新。

okkez: r56033 2016-08-30 09:34:10 +0900

doc/NEWS-2.1.0 の read_nonblock や write_nonblock のメソッド名を変更しているのですが、逆ですね。次で revert されています。

okkez: r56034 2016-08-30 09:44:34 +0900

r56033 は revert して doc/NEWS-2.2.0 で IO#nonblock_read や IO#nonblock_write と書かれていたメソッド名を read_nonblock/write_nonblock に修正しています。

naruse: r56035 2016-08-30 13:49:26 +0900

r56030 の追加修正。 スタック上の値を先に読むようにしてましたが、これだと誤判定の可能性があるので、まず rip の値を取得して、そこにある命令が 0x0f 0x05 だったらシステムコールの呼び出しなので、今システムコール内にいるということを意味するのでスタック上の値を読むようにしています。 [ruby-core:77096] [Bug #12711]

usa: r56036 2016-08-30 14:59:17 +0900

io.c の nogvl_fsync(), nogvl_fdatasync() で Windows 用に fd が指すファイルハンドルの GetFileType() で取得した種別が FILE_TYPE_DISK でなかったら fsync()/fdatasync() を呼ばずにすぐ return するようにしています。

nobu: r56037 2016-08-30 15:22:30 +0900

標準添付ライブラリやテスト、ベンチマークスクリプトなどで Mutex, Queue などのクラスを Thread::Mutex, Thread::Queue と正式な名前で参照するようにしています。

nobu: r56038 2016-08-30 15:27:29 +0900

拡張ライブラリ json の OpenStruct.json_create の rdoc 用コメントの typo 修正。 https://github.com/ruby/ruby/pull/1421

nobu: r56039 2016-08-30 16:29:59 +0900

vm.c の vm_stat() で引数のチェックの不要な分岐の条件を削っています。

kazu: r56040 2016-08-30 21:40:55 +0900

NEWS ファイルの各節の項目をアルファベット順にソートしなおしています。

kazu: r56041 2016-08-30 21:40:56 +0900

r56036 の ChangeLog エントリの typo 修正。

nobu: r56042 2016-08-31 00:52:24 +0900

r55950 以降ビルドするとビルドディレクトリに $(topdir)/.ext/gems というディレクトリが $(topdir) の変数名が展開されずに作られていたので、 extmk.rb で変数名展開してディレクトリ作るようにしています。 [ruby-core:77102] [Bug #12714]

svn: r56043 2016-08-31 00:52:25 +0900

version.h の日付更新。

yui-knk: r56044 2016-08-31 01:54:06 +0900

doc/extension.ja.rdoc の typo 修正。 /第4変数/第4引数/