ruby-trunk-changes r50752 - r50767

今日は Windows での Dir.glob 向けの新しいフラグ FNM_SHORTNAME の追加や、即値のオブジェクトの インスタンス変数に関する実装の削除などがありました。

ko1: r50752 2015-06-04 04:12:26 +0900

rb_vm_rewrite_cref_stack() を rb_vm_rewrite_cref() に改名しています。 また変数名の new_node を new_cref に変更しています。もう T_IMEMO を使っていて T_NODE を使わなくなっているからですね。

svn: r50753 2015-06-04 04:13:59 +0900

version.h の日付更新。

ko1: r50754 2015-06-04 04:36:52 +0900

clone_method() でメソッド定義をコピーする時に、rb_vm_rewrite_cref() で cref の情報を書きかえる際に古いクラスを me->klass を参照するのをやめて、明示的にコピー元のクラスを渡すようにしています。 んー me->klass が old_class と異なっていたらそれはそのままでいいってことなんですかね。それとも実際にはこれで挙動が変更することはないはず(me->klass は old_class のはず)なのかな。難しい。

ko1: r50755 2015-06-04 04:51:38 +0900

class.c の method_entry_i() で me の NULL チェックをしていましたが、ここは mtbl に対する st_foreach() のコールバックとして呼ばれているはずで NULL にはならないはずなので、余分なチェックを削っています。

ko1: r50756 2015-06-04 05:15:24 +0900

VM_CHECK_MODE が 1 以上の時だけの処理で rb_iseq_t::iseqval が r50731 で削除されたのに追随しています。

ko1: r50757 2015-06-04 05:26:55 +0900

r50756 の変更で削除したローカル変数の参照が残っててビルドエラーのままだったのでもう1行削除。

normal: r50758 2015-06-04 05:53:35 +0900

即値のオブジェクトは全て freeze された状態になっているので([Feature #8923])、インスタンス変数を持たせることももうできないはずなので generic_ivar_tbl から SPECIAL_CONST_P() の時の対応を削除しています。 [ruby-core:69441] [Feature #11208]

normal: r50759 2015-06-04 05:57:23 +0900

r50758 の ChangeLog エントリに ML とチケットの番号を追記しています。 [ruby-core:69441] [Feature #11208]

nobu: r50760 2015-06-04 07:12:24 +0900

Windows 環境で File::Constants::FNM_SHORTNAME という Dir.glob 用のフラグの定数を追加して、省略されたパス名(short name) でのマッチもできるようにしています。 [ruby-core:69435] [Bug #11206]

ko1: r50761 2015-06-04 07:27:51 +0900

rb_method_definition_t の構造体のメンバ orig_me を、そのメンバだけ持つ rb_method_refined_t という別の構造体型を導入してその構造体をメンバとして埋め込むようにしています。つまり def->orig_me としていたのを def->refined.orig_me にしています。

normal: r50762 2015-06-04 10:09:09 +0900

拡張ライブラリ openssl の OpenSSL::SSL::SSLContext::Nonblock で IO#fcntl を使って File::NONBLOCK フラグをセットしていたのを、拡張ライブラリ io/nonblock を利用して IO#nonblock= でセットするように変更しています。 [ruby-core:69382] [Feature #11190]

hsbt: r50763 2015-06-04 10:54:41 +0900

Array#sort! の再入チェックの例外のメッセージを変更しています。 reentered -> re-entered。しかし reentered もちゃんとした単語だというのと、テストがこけてたそうで後に revert されています。 https://github.com/ruby/ruby/pull/922

hsbt: r50764 2015-06-04 11:04:11 +0900

r50763 の ChangeLog エントリの名前の修正。

hsbt: r50765 2015-06-04 11:53:11 +0900

拡張ライブラリ win32ole および st.h, util.h のコメントの typo 修正。 https://github.com/ruby/ruby/pull/923

naruse: r50766 2015-06-04 12:25:04 +0900

r50725 で追加された test/socket/test_nonblock.rb の Socket#sendmsg_nonblock のテストで FreeBSD では Errno::EMSGSIZE が発生することもあるので予測される例外に追加しています。

hsbt: r50767 2015-06-04 13:49:26 +0900

r50763 を revert。