このリリースは基本的にはバグ修正版だが、1.9 を使っている者なら押さえておくべき機能も追加されている。例えば次のような仕様変更がある。
* Enumerable#zip は 1.8と同じ挙動に戻った。
* Hash#flatten は再帰的には適用されない。
Rubyの作成者である、まつもとゆきひろ氏("Matz")は
Hash#flatten
の振る舞いを次のように説明している。 つまり、これ以外にも注目に値する機能が追加されている。
{a: [:a,1], b: 2}.flatten
は
[:a, [:a, 1], :b, 2]
です。
[:a, :a, 1, :b, 2]
という挙動ではなくなりました。
Proc#curry
については既にInfoQでも報じた通り(source)だが、その他にも次のような機能が追加された。 * Math.cbrt の追加。Ruby 1.9 を使っている者なら、Multiruby を使うことで複数バージョン間での(source)Rubyの挙動の違いを手っ取り早く確認できるだろう。 .
* Math.gammaとMath.lgammaの追加。
* RubyGemsのリビジョン1601の統合。
* Proc#curry の追加。
* Oniguruma 5.9.1へのアップデート。
* サポートするエンコーディングの追加。UTF-16,CP949,EUC-KR,GB12345,UCS-{2,4}{BE,LE},GBK,CP936,CP949, GB2312,UTF-7,BIG5,EUC-TW,GB18030,KOI8,KOI8-R,KOI8-U,Windows-1251 をサポート。.
Rubyは現在 1.9が鋭意開発中だが、1.8.xブランチも保守されている。武者晶紀氏のメーリングリストへの投稿によれば、Ruby 1.8.7(1.8ブランチの次安定版)(source)は2008年4月の後半のリリースを目指して作業するようだ(具体的な変更点は未決定である)。
原文はこちらです:http://www.infoq.com/news/2008/03/ruby-1-9-0-1-released