ruby-trunk-changes r50839 - r50857

今日は開発者会議があったのでそこで決定された新機能の追加などがたくさんありました。 Array#bsearch_index, Hash#fetch_values などの追加、Windows での開いたファイルを削除できるようにする File::SHARE_DELETE フラグの追加、pack/unpack の指示子 "j/J" の追加などがありました。

nobu: r50839 2015-06-12 16:28:21 +0900

Array#bsearch_index というメソッドを追加しています。 Array#bsearch の要素ではなく index を返すバージョンみたいですね。 [ruby-core:67514] [Feature #10730]

svn: r50840 2015-06-12 16:28:44 +0900

version.h の日付更新。

nobu: r50841 2015-06-12 16:40:43 +0900

r50839 の typo を修正しています。

nobu: r50842 2015-06-12 17:02:49 +0900

test/-ext-/string/test_nofree.rb の assert_no_memory_leak を使ったメモリリークのテストで事前にもループを回しておいて誤検出を減らそうとしています。

nobu: r50843 2015-06-12 17:04:39 +0900

r50842 で事前のループ回数が本番と同じだったので、本番のほうの繰り返し回数を増やし、またエラー判定するメモリ増加量のしきい値も増やしています。

nobu: r50844 2015-06-12 17:19:24 +0900

r50839 で新規追加した Array#bsearch_index にブロックが渡されなかった時の Enumerator を返す処理が long を返す関数内にあったので関数の戻り値を VALUE になるように修正しています。

nobu: r50845 2015-06-12 17:34:17 +0900

Hash#fetch_values というメソッドを新規追加しています。可変長引数で複数の key を指定して、それに対応する値を Array で返すという Hash#fetch の複数版みたいです。 Hash#fetch と同様 key が存在しなかったら例外が発生します。 [ruby-core:63594] [Feature #10017] https://github.com/ruby/ruby/pull/776

hsbt: r50846 2015-06-12 18:20:44 +0900

sample/ のサンプルコードなどの typo 修正。 https://github.com/ruby/ruby/pull/927

hsbt: r50847 2015-06-12 18:21:51 +0900

r50846 の ChangeLog エントリに GitHub の pull request の参照を追記しています。

usa: r50848 2015-06-12 21:14:06 +0900

Windows ではプロセスが開いているファイルは削除できないのですが、File::Constant::SHARE_DELETE というフラグを用意してこれを設定した IO は開いたままでも削除できるようにしています。このフラグが立っていたら CreateFileW() に渡すフラグの FILE_SHARE_DELETE を設定するようにしています。 [ruby-dev:49022] [Feature #11218]

usa: r50849 2015-06-12 21:22:36 +0900

Array#pack と String#unpack に新たな指示子 "j" と "J" を追加しています。 これはポインタと同じサイズの整数(intptr_t および uintptr_t)を表すものです。 "j" が符号つきで "J" が符号なし(unsigned)です。 [ruby-dev:49015] [Feature #11215]

nobu: r50850 2015-06-12 22:01:40 +0900

rb_vm_search_cf_from_ep() で ep に対応する cfp がみつからなかった時に rb_bug() で強制終了していたのをやめています。 Enumerable を include したクラスで each に渡されたブロックを保存しておいて外から呼ぶとみつからない可能性があるみたいです。 [ruby-core:69548] [Bug #11254]

kazu: r50851 2015-06-12 22:22:49 +0900

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

kazu: r50852 2015-06-12 22:22:55 +0900

test/ruby/test_extlibs.rb の拡張ライブラリがビルドできているかのテストで mkmf.log を読み込む時に File.binread を利用するように修正しています。 [ruby-dev:49079] [Bug #11255]

zzak: r50853 2015-06-12 23:45:56 +0900

拡張ライブラリ date の DateTime の rdoc 用コメントの文法修正。

marcandre: r50854 2015-06-13 00:45:22 +0900

標準添付ライブラリ prime の Prime#with_index を each_with_index の alias としていたのを offset という引数を受け付けるように拡張しています。 [Feature #11007]

svn: r50855 2015-06-13 00:45:43 +0900

version.h の日付更新。

marcandre: r50856 2015-06-13 00:45:44 +0900

標準添付ライブラリ prime で Prime#with_object に引数が渡されなかった時に返す Enumerator に引数の obj が渡されていなかったのを修正しています。

marcandre: r50857 2015-06-13 00:45:59 +0900

r50854 および r50856 で修正した標準添付ライブラリ prime の Prime#with_index と Prime#with_obj で返す Enumerator に size を指定するブロックを渡して、常に Enumerator#size が Float::INFINITY を返すようにしています。 https://github.com/ruby/ruby/pull/931