Ruby 2.0.0-rc2 リリース

Ruby 2.0.0-rc2 がリリースされました。Ruby 2.0.0 の最後の Release Candidate 版の予定です。

どうぞお試しください。もし何か問題があればお知らせ下さい。

所在

2.0.0 の新機能

  • キーワード引数
  • Enumerable#lazy
  • Module#prepend
  • #to_h: Hash への変換メソッド
  • %i: シンボルの配列のリテラル
  • 正規表現エンジンを Onigmo に変更(鬼雲: 鬼車の派生版)
  • Enumerator#size が導入された
  • DTrace サポート
  • TracePoint
  • require 速度の向上(特に Windows において)
  • NativeClient サポート
  • ドキュメントの改善
  • 非同期割り込み制御機能の改良
  • 起動時のスタックサイズ設定機能
  • Refinements [実験的機能]

その他改善多数。詳しくは NEWS をご覧あれ。 サードパーティによる紹介記事があります。

(他にも記事を書いて頂けると、今後のリリースアナウンスで引用や参照をさせて頂くかも)

注意点

非互換について

特筆すべき非互換を 3 つ把握しています。

  • デフォルトのスクリプトエンコーディングが UTF-8 になりました [#6679] 。これは既存のプログラムに影響を与えることが報告されています。例えば、ベンチマークプログラムが非常に遅くなるなど [ruby-dev:46547] 。公式リリースまでに仕様が変化するかもしれません。
  • iconv が削除されました。元々 M17N が導入された 1.9 の時点で非推奨のものでした。String#encode などを使って書き換えてください。
  • ABI 互換性がなくなっています [ruby-core:48984] 。通常のユーザは、拡張ライブラリを再インストールするだけでよいはすです。「1.9 の .so, .bundle ファイルをコピーするな」とだけ気をつけてください。

他にも比較的小さな非互換があります [ruby-core:49119] 。 さらに非互換に気づいたらぜひ報告してください。

ご参考: 以下にアップグレードガイドを作成中ですが、すでに一部内容が古いです。

refinements の扱い

2.0.0 では refinement を「実験的機能」として提供します。仕様の詳細について合意に至らなかったためです。 挙動が Ruby の将来のバージョンで変化する可能性があることに注意してください。

special thanks

preview と rc1 を試してくれた皆さんに感謝します。 相変わらずたくさんのバグを直してくれているコントリビュータの皆さんに感謝します。 このリリースを支えてくれた皆さんに本当に感謝します。