今日は Array#permutation, #repeated_permutation, #repeated_combination などの実装に再帰を利用しないようにするリファクタリングなどがありました。
zzak: r46421 2014-06-14 08:30:20 +0900
man/rake.1 の rubyforge のリンクをまとめて GitHub の ruby/rake へのリンクへおきかえています。 [ruby-core:62942] [Bug #9904] https://github.com/ruby/ruby/pull/628
svn: r46422 2014-06-14 08:30:25 +0900
version.h の日付更新。
zzak: r46423 2014-06-14 08:42:35 +0900
CONTRIBUTING.md の英文法の修正。
nobu: r46424 2014-06-14 10:53:32 +0900
r46413 で(r46408 からの続き) rb_str_resize() でバッファサイズを切り詰めるときに実際に realloc() を呼んだかどうかにかかわらず capa を len にそろえていたので、REALLOC_N() を呼んだ時だけ capa を更新するように修正しています。
nobu: r46425 2014-06-14 10:54:33 +0900
array.c で rb_ary_combination() から [-1, 0, 1, 2, ...] の stack を作って yield_indexed_values() を呼び出す処理(ってこれ stack[0] は -1 で開始なのか。よく読まないとわからないな…)を combinate0() として関数に切り出すリファクタリング。
nobu: r46426 2014-06-14 10:54:45 +0900
Array#permutation の実装で再帰を使わずループで実装することで大きな引数を受け取ったときに SystemStackError になることを防いでいます。しかしこのテスト時間かかりそう…いやブロック付きで呼び出して最初の1回目で break しているのですぐ終わるのか。 [ruby-core:63103] [Bug #9932]
nobu: r46427 2014-06-14 10:55:07 +0900
Array#repeated_permutation の実装でも再帰を使わずループで実装するように変更しています。
nobu: r46428 2014-06-14 10:55:25 +0900
Array#repeated_combination の実装も再帰を使うものからループを使うものに変更されています。
akr: r46430 2014-06-14 22:52:04 +0900
標準添付ライブラリ rss の RSS::Maker::SetupDefaultDate#_set_default_values で self.date を上書きした後で ensure 節で書き戻す時に self.date= を使うべきところで date ローカル変数への代入になっていたため復帰できていなかったのを修正しています。