ruby-trunk-changes r52598 - r52624

今日は拡張ライブラリ socket のキーワード引数を受け取る(主に) xxx_nonblock 系メソッドの ruby 実装化(wrapper メソッドの導入)や、OpenStruct#dig の追加、Unicode のバージョンを 8.0.0 に更新などのほか、sonots さんが logger.rb のメンテナとして参加されて Logger#reopen の追加などの機能追加が行なわれました。

normal: r52598 2015-11-17 08:25:03 +0900

拡張ライブラリ socket の BasicSocket#recv_nonblock も r52541 で IO#read_nonblock と IO#write_nonblock についてやったのと同様に Ruby で wrapper メソッドを定義してそこでキーワード引数の処理をして内部の __recv_nonblock メソッドに委譲するようにしています。 C のキーワード引数の parse 処理が遅いのでその対策。 [ruby-core:71439] [Feature #11339]

svn: r52599 2015-11-17 08:25:45 +0900

version.h の日付更新。

normal: r52600 2015-11-17 08:34:37 +0900

拡張ライブラリ socket の Socket#connect_nonblock でも同様に Ruby でキーワード引数を処理して内部的な C 製のメソッド __connect_nonblock に委譲するようにしています。 [ruby-core:71439] [Feature #11339]

normal: r52601 2015-11-17 08:40:15 +0900

拡張ライブラリ socket の TCPSocket#accept_nonblock および UNIXSocket#accept_nonblock でも Ruby 製のメソッドでキーワード引数を処理して内部的な C 製のメソッド __accept_nonblock に委譲するようにしています。 [ruby-core:71439] [Feature #11339]

normal: r52602 2015-11-17 09:58:23 +0900

拡張ライブラリ socket の BasicSocket#recvmsg_nonblock でもキーワード引数の処理を Ruby 製のメソッドで行なって C 製の内部的メソッド __recvmsg_nonblock に委譲するようにしています。 [ruby-core:71439] [Feature #11339]

normal: r52603 2015-11-17 10:05:30 +0900

拡張ライブラリ socket の BasicSocket#sendmsg や #sendmsg_nonblock でも同様に Ruby 製のメソッドでキーワード引数を処理してから C 製の内部的メソッド __sendmsg や __sendmsg_nonblock に委譲するようにしています。 [ruby-core:71439] [Feature #11339]

normal: r52604 2015-11-17 10:16:25 +0900

拡張ライブラリ socket の Socket.udp_server_recv や Socket.accept_loop で UDPSocket#recvmsg_nonblock や Socket#accept_nonblock でループするところで引数に exception: false を渡して例外ではなく戻り値で読み込み待ちを得るようにしています。 [ruby-core:66385] [ruby-core:69473]

nobu: r52605 2015-11-17 11:15:55 +0900

拡張ライブラリ socket の rsock_init_sock() から fd が socket かどうか判定するための fstat(2) または Windows 用の rb_w32_is_socket() を呼ぶ部分を is_socket() という static 関数に切り出すリファクタリング

duerst: r52606 2015-11-17 11:22:29 +0900

NEWS ファイルの Proc#call の最適化についてのエントリの文法修正。

nobu: r52607 2015-11-17 11:25:28 +0900

Array#dig および Hash#dig の rdoc 用コメントの英文修正および Struct#dig の rdoc 用コメントを追加しています。 https://github.com/ruby/ruby/pull/1103

normal: r52608 2015-11-17 11:29:19 +0900

拡張ライブラリ socket の Socket#recvfrom_nonblock と UDPSocket#recvfrom_nonblock の rdoc 用コメントに 第3引数 outbuf とキーワード引数について追記しています。 [ruby-core:69542] [Feature #11229] [ruby-core:69543] [Feature #11242]

usa: r52609 2015-11-17 13:55:36 +0900

r52601 での Socket#accept_nonblock の Ruby 実装化で UNIXSocket が存在しない環境でも UNIXServer を実装しようとしていて Windows でエラーになっていたのを回避するため if defined?(UNIXSocket) でくるむようにしています。

usa: r52610 2015-11-17 14:06:18 +0900

r52602 で BasicSocket#sendmsg_nonblock などの Ruby メソッド化で clen 引数のデフォルト値を nil にして内部的メソッドでデフォルト値 4096 をセットするようにしています。追加したテストが失敗していたみたいです。 [ruby-core:71439] [Feature #11339]

nobu: r52611 2015-11-17 14:36:03 +0900

Array#dig, Hash#dig, Struct#dig に続いて標準添付ライブラリ ostruct の OpenStruct#dig も追加しています。 [ruby-dev:49344] [Feature #11688]

duerst: r52612 2015-11-17 15:30:39 +0900

enc/unicode/casefold.h と env/unicode/name2ctype.h のテーブルを更新して Unicode のバージョンを 7.0.0 から 8.0.0 に更新しています。 [Feature #11563]

duerst: r52613 2015-11-17 15:34:52 +0900

NEWS ファイルに r52612 の Unicode 8.0.0 への更新について追記しています。

ko1: r52614 2015-11-17 18:42:39 +0900

rb_method_definition_t に complemented_count というメンバを追加して、alias_count とは別にメソッド定義の参照数を持ようにしてメソッド再定義の時の警告を include 済みの Module のメソッドの再定義の時にも出力できるようにしています。

ko1: r52615 2015-11-17 18:54:33 +0900

r52614 の ChangeLog エントリの typo 修正。

usa: r52616 2015-11-17 19:05:04 +0900

configure.in で BASERUBY のコマンドラインオプション決定のために実行してみるときに Kernel#p を使ってたのを Kernel#print を使って出力するようにしています。p だと改行を出力するので環境(というか出力モード?)によっては改行が CRLF で出て test の判定でマッチしなくなる可能性があるためだそうです。

ko1: r52617 2015-11-17 19:39:30 +0900

r52614 の rb_method_definition_t::complemented_count の導入に追随して METHOD_ENTRY_COMPLEMENTED()、METHOD_ENTRY_COMPLEMENTED_SET() などのマクロを導入してこれを利用するようにしています。

usa: r52618 2015-11-17 19:50:28 +0900

win32/win32.c の stati64_set_inode() の第1引数の型をやや変更(PBY_HANDLE_FILE_INFORMATION → BY_HANDLE_FILE_INFORMATION *)して、fstat() の extern 宣言を追加しています。 mingw 向けの宣言追加とのこと。

ko1: r52619 2015-11-17 22:18:19 +0900

r52614, r52615, r52617 の rb_method_definition_t::complemented_count の導入に関する変更を revert しています。 "they cause serious errors" とのこと。

sonots: r52620 2015-11-17 22:58:57 +0900

sonots さんが lib/logger.rb のメンテナとして新しくコミッタになり、その初コミットです。 Wellcome!!
標準添付ライブラリ logger に Logger#reopen メソッドを追加しています。出力先の IO の付け替えやファイルの場合の再open(こちらが主な用途でしょうけど)を行うようにしています。 外部 log rotation 対応のためですかね。 ChangeLog およびコミットログに ML/チケットの参照を入れるようにしましょう。 [ruby-dev:49355] [Feature #11696]

sonots: r52621 2015-11-17 23:15:25 +0900

標準添付ライブラリ logger で Logger#level= が Symbol/String も受け付けるようにしています。 https://github.com/ruby/ruby/pull/1101 [ruby-dev:49348] [Feature #11695]

sonots: r52622 2015-11-17 23:16:02 +0900

doc/maintainers.rdoc の lib/logger.rb のメンテナを nahi さんから sonots さんに変更しています。

kazu: r52623 2015-11-18 00:25:07 +0900

r52620 の NEWS の追記を組み込みクラスのセクションから標準添付ライブラリのセクションに移動しています。

svn: r52624 2015-11-18 00:25:34 +0900

version.h の日付更新。