ruby-trunk-changes r49942 - r49953

今日も主に T_NODE 型から T_IMEMO 型への移行がありました。

ko1: r49942 2015-03-12 08:13:01 +0900

昨日に引き続き Enumerator などで利用されている struct MEMO の実体も T_NODE 型から T_IMEMO 型のオブジェクトに移動しています。ついでに setter マクロに WriteBarrier の挿入を追加しています。

ko1: r49943 2015-03-12 08:15:35 +0900

r49942 で誤ってデバッグ用の RGENGC_CHECK_MODE を 2 にしたままコミットしてしまっていたので 0 に戻しています。

ko1: r49944 2015-03-12 08:22:05 +0900

load.c、method.h、symbol.c などで NODE 型オブジェクトの依存がなくなったため #include "node.h" を削除しています。

nobu: r49945 2015-03-12 09:12:43 +0900

template/fake.rb.in で @srcdir@ が絶対パスの時のことを考慮して絶対パス化を join でなく expand_path で行うようにしています。

ko1: r49946 2015-03-12 10:33:46 +0900

r49944 の #include 削除で不要になった依存関係を削除するように common.mk を変更しています。

ko1: r49947 2015-03-12 10:55:58 +0900

さらに struct rb_global_entry の定義を node.h から internal.h に移動して variable.c からも #include "node.h" を削除しています。

normal: r49948 2015-03-12 12:03:04 +0900

Socket#accept_nonblock や OpenSSL::SSL::SSLSocket#accept_nonblock は通常新しい接続がない時に IO::WaitReadable という Module を include した例外を発生させますが、r42695 で IO#read_nonblock がexception キーワード引数をサポートして、これに false が指定されると例外を発生させずに :wait_readable を返すようにしたのと同様に accept_nonblock も例外を発生させない指定に対応するようにしています。 [ruby-core:66385] [Feature #10532]

akr: r49949 2015-03-12 23:01:00 +0900

make test-all で各テストケース毎にファイルディスクリプタなどの解放漏れがないかチェックする test/lib/leakchecker.rb に環境変数の変更/追加/削除を検出する機能も追加しています。

nobu: r49950 2015-03-12 23:57:33 +0900

r49949 で検出するようにしたテストケースでの環境変数の変更をさっそく元の状態に復元するように rubygemscgi、rake などのテストで後処理を追加しています。

kazu: r49951 2015-03-13 00:29:32 +0900

r49935、r49936、r49942 の ChangeLog エントリの typo 修正。

svn: r49952 2015-03-13 00:29:48 +0900

version.h の日付更新。

nobu: r49953 2015-03-13 01:15:07 +0900

make showflags した時にターゲットにオブジェクトファイルをビルドするようなものがないかチェックしているみたいなのですが、いくつか疑問があります。まず Makefile の filter 関数を使っているのですが、こいつは 2引数の関数みたいなのですが3つ引数を渡している(最初の行のカンマは不要?)。make の関数は引数の数はチェックされないのかも。次に、$(MAKECMDGOALS) に all や main などのコンパイルが走るものが入っていた時に showflags というファイルを include させようとしているようなのですが、このファイルは存在しないみたいなので、-include と先頭に - がついているので単に無視されるのではないでしょうか。