ruby-trunk-changes r53041 - r53058

今日は TRICK 2015 の受賞作品の sample/ への追加や、Array#dig や Hash#dig で要素のオブジェクトに dig メソッドがなかった時の例外メッセージの改善などがありました。

mame: r53041 2015-12-11 23:37:06 +0900

RubyKaigi 2015 で発表された TRICK 2015 の受賞作品が sample/trick2015 に追加されています。なんだかすごいコードが入っています。会場で発表を聴いてたので説明は割愛させて頂きます。 https://github.com/tric/trick2015

svn: r53042 2015-12-11 23:37:45 +0900

r53041 で追加されたスクリプトの末尾に改行を追加しています。

svn: r53043 2015-12-11 23:38:42 +0900

r53041 で追加されたファイルの svn property および改行コードを修正しています。

kazu: r53044 2015-12-12 01:31:24 +0900

NEWS の stdlib のセクションの順番を辞書順にならべかえています。

svn: r53045 2015-12-12 01:34:54 +0900

version.h の日付更新。

nobu: r53046 2015-12-12 07:05:31 +0900

Windows-1252 (CP1252) という Encoding を ISO-8859-1 の別名として定義していたのを、独立したテーブルを持たせています。 0x80..0x9e の範囲の大文字小文字の扱いが違っていたみたいです。 [ruby-core:64049] [Bug #10097]

normal: r53047 2015-12-12 07:49:27 +0900

r53034 で aarch64-linux 上で IO#advise が Errno::ENOSYS を発生させるためテストで rescue するようにしていましたが、そもそも advise はシステムへの hint でベストエフォートなので errno=ENOSYS の時は例外を発生させないように修正しています。ただこれだとテストで例外を期待していたところで失敗するようになっているようですね。 [ruby-core:72066] [Feature #11806]

nobu: r53048 2015-12-12 16:07:42 +0900

r52949 で RubyVM::InstructionSequence.load_iseq があったら require/load 時に hook として呼び出すようにしたところで、rb_respond_to() を使っていたのを rb_check_funcall() を使って rb_intern() を2回くりかえされていたのを1回で済ますようにしています。

naruse: r53049 2015-12-12 17:06:18 +0900

make help の test-all の例に -j4 などのオプションも TESTS で渡せることを表示するようにしています。

nagachika: r53050 2015-12-12 17:17:22 +0900

ruby 2.2 の時にキーワード引数のマージ順序の修正で Hash リテラルに { **hash1, **hash2 } のように複数の Hash を展開した時に後のほうが優先される(上書きされる)ようになったのを doc/NEWS-2.2.0 に追記しています。 これは ruby_2_2 の NEWS に入れるためにバックポート元として追加したものです。 [Bug #10315] [Bug #11501]

nobu: r53052 2015-12-12 17:28:15 +0900

r53049 にさらに追加して make help の test-all のサンプルの出力にオプションは TESTOPTS を使うようにしています。

nobu: r53053 2015-12-12 17:31:45 +0900

make help の出力に make exam も追記しています。 make check test-rubyspec の別名ですね。

nobu: r53054 2015-12-12 18:00:27 +0900

ruby_vm_destruct() で rb_vm_t の解放時に loading_table と frozen_strings を解放するようにしています。

nobu: r53055 2015-12-12 18:03:33 +0900

Thread#name のテストで起動する Thread で sleep を実行してテスト中に Thread が停止しないようにしています。 Thread#name には Thread が生きてる必要があるのかな。

yui-knk: r53056 2015-12-12 18:29:35 +0900

新しいコミッタ yui-knk さんのはじめてのコミットです。 $KCODE と $= という deprecated な変数への代入で警告が出ることを確認するテストを追加しています。 [ruby-dev:49398] [misc #11770]

nobu: r53057 2015-12-12 18:51:30 +0900

rb_check_funcall_with_hook() で check_funcall_missing() の前に hook 関数を呼び出していたのを後に呼び出すようにしています。また hook 関数に method_missing でもメソッドがみつからなかったかどうかを第1引数に渡すようにしています。

nobu: r53058 2015-12-12 18:52:36 +0900

rb_obj_dig() で r53057 で修正した rb_check_funcall_with_hook() を利用して dig メソッドがみつからなかった時に nil を返していたのを TypeError 例外を発生させるようにしています。 [ruby-core:71798] [Bug #11762]