今日は Enumerable の min, max, min_by, max_by に引数で返す個数を指定できるようにする新機能の追加や、環境変数で指定するメモリ管理のパラメータに単位指定ができるようにするといった新機能の追加と、deprecated にされていた API の削除や struct RBignum の非公開化などの変更がありました。
nobu: r44936 2014-02-14 14:04:07 +0900
GC の(メモリ管理の)パラメータを指定する環境変数に 1k, 1m, 1g のように単位をつけることができるようにしています。ちなみに 1k=1024, 1m=1024**2, 1g=1024**3 となっています。大文字でも可。
svn: r44937 2014-02-14 14:04:11 +0900
version.h の日付更新。
usa: r44945 2014-02-14 15:39:06 +0900
r44584 の ChangeLog エントリで非 ASCII 文字が入っていたのが r44587 で "?" に置換されていたのですが、ウムラウトつきの u だったのを ue と表記しなおしています。
normal: r44951 2014-02-14 18:42:14 +0900
rb_str_format_m() でコンパイラの最適化による GC マーク漏れから保護するために volatile 修飾子つきの変数を使っているのを RB_GC_GUARD() による明示的な保護におきかえています。 [ruby-core:60688]
akr: r44955 2014-02-15 00:16:31 +0900
deprecated としてマークされていた API を削除しているようです。
rb_big2str0(), rb_big2ulong_pack(), rb_quad_pack(), rb_quad_unpack(), rb_thread_polling(), rb_thread_select(), rb_gc_set_params(), rb_proc_exec_n(), rb_exec_arg_init(), rb_exec_arg_addopt(), rb_exec_arg_fixup(), rb_run_exec_options(), rb_run_exec_options_err(), rb_exec(), rb_exec_err(), rb_fork(), rb_fork_err(), rb_struct_iv_get(), rb_thread_blocking_region(), rb_read_check(), rb_check_safe_str(), Check_SafeStr() などが削除されています。けっこうありますね。拡張ライブラリをメンテナンスしている人は要確認です。 [ruby-core:60581] [Feature #9502]
svn: r44956 2014-02-15 00:16:35 +0900
version.h の日付更新。
akr: r44957 2014-02-15 00:29:10 +0900
Bignum の内部構造である struct RBignum を ruby/ruby.h から internal.h に移動して非公開にしています。これで最適化とかやりやすくなるんでしょうね。 こちらも拡張ライブラリの作者の方は利用していないか確認を。まあ普通は NUM2INT とかで変換するだけで直接 Bignum の中身を触ったりしないでしょうけど。 NArray とか大丈夫かなと思いましたが、使ってなさそうですね。 [ruby-core:42891] [Feature #6083]
akr: r44958 2014-02-15 00:45:11 +0900
Enumerable の min, max, min_by, max_by に引数として上位/下位 n 個を取得することができるようにしています。また Range の min, max も n 個取り出せるようにしています。結果はソート済みになっているので、ランキングとか作るのにとても便利ですね。またチケットには Importance Sampling(重み付けサンプリング)に使えるっていう例も上がってます。 [ruby-core:57111] [Feature #8887]