ruby-trunk-changes r59618 - r59623

今日はキーワード引数のエラー処理のリファクタリングなどがありました。

nobu: r59618 2017-08-18 21:17:59 +0900

rb_threadptr_stack_overflow() で rb_during_gc() が真だった時に rb_fatal() で異常終了させていたのを、予約済みの例外オブジェクトを使って例外発生に置き換えています。

nobu: r59619 2017-08-18 21:44:30 +0900

vm_insnhelper.c のマクロ CHECK_CFP_CONSISTENCY() から cfp や th->errinfo のチェックを vm_cfp_consistent_p() という inline 関数に切り出しています。

nobu: r59620 2017-08-19 09:45:22 +0900

キーワード引数として受け付けていないキーワードが引数として渡された時の例外に埋め込むキーワードリストを取得するのに rb_funcallv() を使っていたのを、直接 rb_hash_keys() を呼び出すように最適化しています。

svn: r59621 2017-08-19 09:45:23 +0900

version.h の日付更新。

nobu: r59622 2017-08-19 10:04:15 +0900

キーワード引数の不一致の時の例外オブジェクトを作る rb_keyword_error_new() で rb_ary_join() を使ってキーワードリストを連結していたのを、文字列への連結を独自にループを回して行うようにしています。中間オブジェクトの生成抑止のためみたいです。

ktsj: r59623 2017-08-19 19:02:57 +0900

gems/bundled_gems の power_assert のバージョンを 1.0.2 -> 1.1.0 に更新しています。