ruby-trunk-changes r43015 - r43021

今日は rb_ary_cat() の公開 API 化と ENV.each_pair のちょっとした最適化くらいでした。
ただ 2.1.0-preview1 がリリースされています。 https://www.ruby-lang.org/en/news/2013/09/23/ruby-2-1-0-preview1-is-released/
2.1.0 系の最初の preview 版です。是非手元のコードが 2.1.0 でうまく動くかお試しください。

nobu:r43015 2013-09-23 05:07:51 +0900

rb_ary_cat() の宣言を internal.h から include/ruby/intern.h に移動しています。 README.EXT で言及されているため公開しておかないといけないからだそうです。

svn:r43016 2013-09-23 05:07:59 +0900

version.h の日付更新。

nobu:r43017 2013-09-23 05:10:40 +0900

TracePoint の C API のテスト用拡張ライブラリ ext/-test-/tracepoint/tracepoint.c で複数の static 変数を構造体として宣言してマシンスタック上に確保するようにしています。

nobu:r43018 2013-09-23 10:34:01 +0900

test/ruby/test_module.rb の assert_top_method_is_private でトップレベルでのメソッド定義のために eval に TOPLEVEL_BINDING を渡して実行していたのを assert_separately を使って子プロセスで実行するように変更しています。

nobu:r43019 2013-09-23 10:42:34 +0900

トップレベルで include した時のテストを追加しています。

glass:r43020 2013-09-23 12:17:38 +0900

Env.each_pair で渡されたブロックの arity をチェックして、2以上だったら rb_yield_values() で渡して、rb_assoc_new() で 2要素の配列を作る必要がないので不要なオブジェクト生成を抑制しています。

nobu:r43021 2013-09-23 17:47:52 +0900

TracePoint の C API のテスト用拡張ライブラリで r43017 で構造体化した変数の初期化で配列のメンバを {} で初期化していたのを削っています。 C89 では許可されていない書き方だったとのこと。