ruby-trunk-changes r52468 - r52481

今日は TracePoint を使った時の SEGV する場合があった不具合修正や Net::HTTP の open_timeout のデフォルト値が 60 秒に設定されるようになる変更などがありました。

gogotanaka: r52468 2015-11-06 23:01:30 +0900

Array#reject! の rdoc 用コメントに delete_if と同じだと書いてありましたが、delete_if は常に self を返し reject! は要素の削除が行なわれなかったら nil を返すのでその部分は削っています。 そういう違いがあったのか…。 https://github.com/ruby/ruby/pull/894

gogotanaka: r52469 2015-11-07 00:11:39 +0900

標準添付ライブラリ cmath で ! つきのメソッド (exp -> exp!、log -> log! など)を alias にしていたのを wrapper メソッドを定義して deprecated 警告を出すようにしています。 こんなメソッド群があったのか(そもそも cmath あまり使ったことありませんが)。

svn: r52470 2015-11-07 00:13:48 +0900

version.h の日付更新。

naruse: r52471 2015-11-07 01:19:08 +0900

しかし cmath の ! つきメソッドについて rubyspec が記述していたようで失敗するようになったので r52469 を revert しています。 チケットの参照もありませんでしたしね。あまり積極的な反対はなさそうな気もしますが仕様変更なのでチケット作って議論してからという感じでしょうか。

ngoto: r52472 2015-11-07 02:07:08 +0900

Solaris 10 での Dir#fileno のサポートを追加しています。 dirfd(3) が存在しない場合に struct DIR の要素を返す代替実装のマクロを追加するようにしています。dirfd(3) は Solaris 11 からは追加されているそうです。

ko1: r52473 2015-11-07 03:35:29 +0900

include/ruby/ruby.h のマクロ RSTRUCT_PTR() の定義でかっこの対応が取れてなかったのを修正しています。こんなところにコンパイルエラーになりそうなバグが残ってるとは…と思いましたが RSTRUCT_PTR() は拡張ライブラリ用で本体と標準添付されている拡張ライブラリでは利用されていないため気がつかなかったようです。ruby_2_2 ブランチを確認したら大丈夫だったので 2.3 の変更時に入ったものみたいですね。リリース前に気がついてよかった…。

nobu: r52474 2015-11-07 08:47:04 +0900

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

nobu: r52475 2015-11-07 09:25:50 +0900

拡張ライブラリ io/console の Windows 版の時の実装で IO#winsize の引数の配列の第3,4要素が使われていなかったのを修正しています。また col,row は nil も許容するように他のプラットフォームと仕様をあわせています。

ko1: r52476 2015-11-07 09:55:11 +0900

TracePoint で internal event の時に rb_vm_t::trace_running をインクリメントして trace 実行中であることを示すのが漏れていたので TracePoint の無効化した時に不正な解放が起きて SEGV が発生していた不具合を修正しています。 [ruby-dev:49308] [Bug #11603] https://github.com/ruby/ruby/pull/1059

svn: r52477 2015-11-07 09:55:22 +0900

r52476 の ChangeLog エントリの行末の空白除去。

normal: r52478 2015-11-07 11:40:33 +0900

thread.c の rb_cThreadShield という変数が他で利用されていなかったので static 変数にしています。

normal: r52479 2015-11-07 12:18:58 +0900

string.c で to_s や to_str を呼び出すための ID を組み込みの定義ずみのものを利用するようにしています。

naruse: r52480 2015-11-08 01:48:49 +0900

Net::HTTP の open_timeout のデフォルト値が nil のため connect でのタイムアウトがデフォルトではきかなかったのを 60秒に設定するようにしています。これ Web API を叩く系のライブラリで時々固まってしまうので Faraday とか経由で使うときにオプションでセットするようにしたりしてたので、デフォルトでセットされるようになって良かったです。

svn: r52481 2015-11-08 01:49:47 +0900

version.h の日付更新。