ruby-trunk-changes r48554 - r48565

今日は rake の更新(10.4.0)、net/http の SSL 接続時の SNI の不具合修正などがありました。また明日は開発者会議があり、そろそろ 2.2 の preview2 のリリースにむけて残件が話し合われるようです。

normal: r48554 2014-11-25 10:46:11 +0900

compile.c で非公開(メソッドになってない) iseq_build_from_ary_body() で ISeq#to_a でダンプした配列から ISeq を構築する時の callinfo の処理を iseq_build_callinfo_from_hash() という関数に括り出しています。
こういう時 "hoist out" って言うんですね。はじめて聞いた単語だ。

svn: r48555 2014-11-25 10:46:24 +0900

version.h の日付更新。

nobu: r48556 2014-11-25 12:14:45 +0900

r48551 で Init_process() で process.c 内の ID の定義を最初に行っておくようにしたのを、定数の定義の前に実行するように Init_process() と InitVM_process() に分離しています。 Process の定数が GC されてしまう現象が起きていたようです。はて、なんでだろう……。 というのは勘違いで、PROCESS::CLOCK_REALTIME は環境によっては RUBY_GETTIMEOFDAY_BASED_CLOCK_REALTIME というマクロ定義が実体の場合があって、そのマクロは id の ID2SYM() で実装されているので先に id が作られている必要があるそうです。 [ruby-core:66445]

kazu: r48557 2014-11-25 12:18:39 +0900

r48553 の ChangeLog エントリに更新した gem 名を追加しています。

nobu: r48558 2014-11-25 13:37:58 +0900

make update-gems で古い gem パッケージファイルを削除するようにしています。

nobu: r48559 2014-11-25 15:26:26 +0900

tool/vcs.rb で 1.9 以前の ruby で正しく時刻の offset を扱えるように手動で offset を調整するようにしています。

drbrain: r48560 2014-11-25 16:03:36 +0900

rake のバージョンを 10.4.0 に更新しています。
また rake のテストは minitest 5 を利用しているようで、 test/lib/minitest/unit.rb は minitest 4 ベースなので、利用している minitest 5 のメソッドの互換性のため名前空間を追加しています。

svn: r48561 2014-11-25 16:03:55 +0900

r48560 で追加された lib/rake/contrib/.document が改行を持たない空ファイルだったので空行を追加しています。

svn: r48562 2014-11-25 16:03:58 +0900

r48560 で新規追加されたファイルの svn property 設定。

drbrain: r48563 2014-11-25 16:09:48 +0900

標準添付ライブラリ net/http で SNI (Server Name Indication) を使ってホスト名を元に利用する証明書を決める仕組み(多分)を使うと、Net::HTTP の接続を使いまわした時にしばらくたってから再度リクエストを投げた時に証明書エラーになるという不具合があるらしく、これを回避するため SSL Session がタイムアウトしていたら使いまわさないようにしています。 不具合自体は OpenSSL の不具合なんじゃないかということですが、この変更で対策できるそうです。 [ruby-core:66388] [Bug #10533]

ko1: r48564 2014-11-25 17:07:44 +0900

NEWS ファイルに Implementation changes というセクションを追加して Symbol GC や Incremental GC、および Hash のキーの文字列リテラルの freeze 化、rest 引数の効率化などを追記しています。 NEWS には新機能や互換性の問題などメソッドの追加/変更を伴なうものが主に書かれててこういうパフォーマンスや内部実装にかかわる点は書きにくかったのでまとめて追加したのだと思います。

akr: r48565 2014-11-25 22:39:19 +0900

NEWS の Process.spawn や exec の vfork(2) を使った高速化についての記述を Process の項目から r48564 で追加された "Implementation changes" のセクションに移動しています。