ruby-trunk-changes r56790 - r56801

今日は新しいハッシュテーブルの実装のオーバフロー修正や Complex#== の 最適化などがありました。

headius: r56790 2016-11-15 04:27:24 +0900

instance_methods や methods などのメソッドで返ってくる Symbol の配列は順序を保証しないので sort してから比較するようにテストを修正しています。

svn: r56791 2016-11-15 04:27:25 +0900

version.h の日付更新。

headius: r56792 2016-11-15 04:39:21 +0900

Queue のテストで複数の Thread を起動してそれらの状態(Thread#status)をチェックするテストで Thread が動きだすまで待つように Thread.pass するループを追加しています。

normal: r56793 2016-11-15 09:27:20 +0900

st.c の get_bins_num() および get_allocated_entries() で非常に大きなテーブルの時にオーバフローするのを防ぐため st_index_t への明示的なキャストを追加しています。r56650 のハッシュテーブルの実装変更の不具合修正ですね。 [ruby-core:78139] [Bug #12939]

nobu: r56794 2016-11-15 10:39:10 +0900

標準添付ライブラリ net/ftp で IPSocket#peeraddr でプロトコルを特定していたのを remote_address で Addrinfo オブジェクトを取得して ipv4?, ipv6? などのメソッドで判定するように変更しています。

nobu: r56795 2016-11-15 10:39:11 +0900

拡張ライブラリ socket で Socket の close メソッドを呼ぶ前に closed? でチェックしていたのをやめています。 2.3 から close は既に閉じられた IO でも IOError を発生させなくなったので不要になっていました。また if !... を unless に書き換えています。

nobu: r56797 2016-11-15 15:28:05 +0900

complec.c で f_eqeq_p() でメソッド呼び出ししていたのをやめて Fixnum か Float なら直接比較し、そうでなくても rb_equal() を直接呼ぶように最適化しています。

shugo: r56799 2016-11-15 17:16:45 +0900

標準添付ライブラリ net/ftp で IPSocket#addr や #peeraddr のかわりに local_address や remote_address メソッドで Addrinfo オブジェクトを取得してアドレスを特定するようにしています。

naruse: r56801 2016-11-15 21:42:04 +0900

.gdbinit の rb_classname コマンドで classname() という関数を利用していましたが、これは static 関数だったので rb_mod_name() におきかえています。