ruby-trunk-changes r48454 - r48462

今日は新たな C-API rb_current_receiver() が追加されている他はリファクタリングなどでした。

akr: r48454 2014-11-16 11:06:11 +0900

r48450 の common.mk での parse.o の依存関係の順序変更の revert です。おや、なんでだろう。必須でもないけど害もないと思ったのですが。

normal: r48455 2014-11-16 11:09:22 +0900

test/ruby/test_io.rb で r47422 で rescue 節を削除してから不要になってた begin 節を削除しています。

akr: r48456 2014-11-16 13:12:38 +0900

common.mk でヘッダなどの依存関係を自動的に生成するようにしたので不要になった CCAN_LIST_INCLUDES、ENCODING_H_INCLUDES、PROBES_H_INCLUDES、VM_CORE_H_INCLUDES などの変数を削除しています。

nobu: r48457 2014-11-16 17:33:35 +0900

defs/id.def で :mesg と :exception という Symbol の ID を組み込みで定義しておくようにしています。またこれまで rb_intern() で ID を作っていたところを idMesg と idException を利用するようにしています。

nobu: r48458 2014-11-16 17:33:49 +0900

vm_eval.c では Init_vm_eval() で初期化時に :tag と :value の ID を rb_intern_const() で定義して static 変数に格納しておいて、それを使うようにリファクタリングしています。

normal: r48459 2014-11-16 18:22:43 +0900

tool/update-deps で gcc などの -save-temps=obj オプションを使う時は ccache などのツールを使ってビルド高速化をしているとうまく動かないので、*.i ファイルが生成できていなかった時に警告を出力するようにしています。

nobu: r48460 2014-11-16 19:11:08 +0900

標準添付ライブラリ timeout で r48433 で導入した Kernel#throw が発生させる例外 UncaughtThrowError を rescue するようにしています。 これまでは ArgumentError を rescue してメッセージで判別していたのですが、クラスで throw が発生させる例外が区別できるようになったので。元々こんなところにも需要はあったのですね。

nobu: r48461 2014-11-16 19:11:28 +0900

テスト用の拡張ライブラリ ext/-test-/proc/ の call_super.c を super.c にファイル名を変更して、定義しているメソッド名も変更しています。これチケット番号が参照されてるんですけど、どういう関係があるのかいまいちわかりません。 [ruby-core:64713] [Feature #10195]

nobu: r48462 2014-11-16 19:38:15 +0900

現在のスコープの receiver (つまり self)を取得する C-API rb_current_receiver() を追加しています。 [ruby-core:64713] [Feature #10195]