ruby-trunk-changes r56862 - r56872

今日は昨日の ?a リテラルの文法の連結についての変更や Complex() メソッドの最適化などがありました。

nobu: r56862 2016-11-21 21:34:54 +0900

標準添付ライブラリ net/ftp の Net::FTP#initialize の rdoc 用コメントの username オプションの説明で :user のままだった部分を修正しています。

nobu: r56863 2016-11-22 07:45:26 +0900

r56856 の ?a のようなリテラルで文字列リテラルの連結をしなくする変更を revert しています。連結できなくなるようにするのは意図的ではなかったみたいです。というか ?a "b" は連結可能ですが "a" ?b の並びだと SyntaxError になるので偶然っぽいですね。

svn: r56864 2016-11-22 07:45:27 +0900

version.h の日付更新。

normal: r56865 2016-11-22 08:05:41 +0900

標準添付ライブラリで socket などを closed? でチェックしてから close するようにしていたところでチェックを外しています。 2.2 以降複数回 close しても IOError が発生しなくなっているので不要になっていました。

normal: r56866 2016-11-22 08:13:16 +0900

lib/open3.rb で Symbol をブロック引数として渡す each(&:close) のような記法を利用するようにしています。

normal: r56867 2016-11-22 08:50:25 +0900

ext/socket/lib/socket.rb でも配列に入っている全 Socket を閉じるのに each(&:close) のように Symbol のブロック引数渡しを利用するようにしています。

normal: r56868 2016-11-22 08:50:31 +0900

lib/resolv.rb でも Symbol のブロック引数渡しの記法を使うようにリファクタリングしています。

normal: r56869 2016-11-22 09:16:23 +0900

標準添付ライブラリ webrickWEBrick::Daemon.start で fork や reopen を使っていたのを Process.daemon というそのものずばりのメソッドがあるのでこれを利用するようにしています。 [ruby-core:78137] [Misc #12937]

mrkn: r56870 2016-11-22 13:54:57 +0900

Kernel#Complex メソッドで内部でメソッド呼び出しを行なっていたのを直接 nucomp_s_convert() を呼ぶように最適化しています。

shugo: r56871 2016-11-22 14:17:45 +0900

r56860 で標準添付ライブラリ net/ftpTLS 対応時のクラスとして Net::FTP::BufferedSSLSocket というクラスを分離しましたが、そこに send メソッドを実装して write で代替しています。

mrkn: r56872 2016-11-22 14:21:12 +0900

complex.c の f_gt_p() で Fixnum の時のみ直接処理してそれ以外の時は '>' のメソッド呼び出しにしていたのを Integer, Float, Rational でも最適化しています。そのために rb_int_gt(), rb_float_gt() などの関数を改名して非 static 関数にしています。