Japanese follows; 日本語はあとで

Hello all --

We are pleased to announce the release of Ruby 2.0.0-rc2.

* ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.tar.bz2
  SIZE:   10822239 bytes
  MD5:    e92420131bd7994513e0bf09a3e2a19b
  SHA256: d55f897bb04283c5fa80223d96d990fe8ecb598508dd59443b356cbba1f66145

* ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.tar.gz
  SIZE:   13616756 bytes
  MD5:    9d5e6f26db7c8c3ddefc81fdb19bd41a
  SHA256: 87072ab3e6d393d47f7402682364e4f24efe1c518969795cc01fcdeeb0e646f3

* ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.zip
  SIZE:   15118480 bytes
  MD5:    1a2d33f1c50e32ca1532f8dea4790d53
  SHA256: c28e9baf3aa00b41b8823c16df436ae143e8a63e43e7a53302f23119e13d0ebf

## New features in 2.0.0

  - Keyword arguments
  - Enumerable#lazy
  - Module#prepend
  - #to_h: Convention for conversion to Hash
  - %i: a literal for symbol array
  - Updated regexp engine: Onigmo (a fork of Oniguruma)
  - Enumerator#size and Range#size were introduced
  - DTrace support
  - TracePoint
  - Optimized require performance (especially, on Windows)
  - NativeClient support
  - Documentation improvement
  - Enhanced asynchronous interrupt handling
  - Launch-time stack size tuning parameters
  - Refinements [experimental]

.. and more improvements.  See NEWS for details.

Here are some introductory articles by third parties:

  - https://speakerdeck.com/a_matsuda/ruby-2-dot-0-on-rails
  - http://globaldev.co.uk/2012/11/ruby-2-0-0-preview-features/
  - http://www.infoq.com/news/2012/11/ruby-20-preview1
  - http://timelessrepo.com/refinements-in-ruby (Refinements)
  - http://el.jibun.atmarkit.co.jp/rails/2012/11/ruby-20-8256.html (in
Japanese)
  - https://speakerdeck.com/nagachika/rubyist-enumeratorlazy(Enumerator::Lazy,
in Japanese)

(If you volunteer to provide additional articles, we may cite or refer to
them in the
next release announcement.)

## Notes

### Incompatibility

There are three notable incompatibilities we know of:

  - The default encoding for ruby scripts is now UTF-8 [#6679].  Some
people report
    that it affects existing programs, such as some benchmark programs
becoming
    very slow [ruby-dev:46547].
    The spec may change for the official release.

  - iconv was removed, which had already been deprecated when M17N was
introduced
    in ruby 1.9.  Use String#encode, etc. instead.

  - There is ABI breakage [ruby-core:48984].  We think that normal
    users can/should just reinstall extension libraries.
    You should be aware: "DO NOT COPY .so OR .bundle FILES FROM 1.9".

There are some comparatively small incompatibilities.  [ruby-core:49119]
Please report any other incompatibility you notice.

FYI: We are creating upgrade notes, but some parts are already outdated.

  - http://bugs.ruby-lang.org/projects/ruby/wiki/200UpgradeNotesDraft

### Status of Refinements

2.0.0 will include refinements as an "experimental feature" because we
could not
agree on its detailed spec.
Note that the behavior may change in future versions of Ruby.

## special thanks

I appreciate all who try preview and rc1 release!
I'm grateful for all the contributors' hard work to fix many bugs.
I'm really thankful to all the people who helped me do this release.

Regards,


こんにちは、Ruby 2.0.0-rc2 をリリースします。

* ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.tar.bz2
  SIZE:   10822239 bytes
  MD5:    e92420131bd7994513e0bf09a3e2a19b
  SHA256: d55f897bb04283c5fa80223d96d990fe8ecb598508dd59443b356cbba1f66145

* ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.tar.gz
  SIZE:   13616756 bytes
  MD5:    9d5e6f26db7c8c3ddefc81fdb19bd41a
  SHA256: 87072ab3e6d393d47f7402682364e4f24efe1c518969795cc01fcdeeb0e646f3

* ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.zip
  SIZE:   15118480 bytes
  MD5:    1a2d33f1c50e32ca1532f8dea4790d53
  SHA256: c28e9baf3aa00b41b8823c16df436ae143e8a63e43e7a53302f23119e13d0ebf

## 2.0.0 の新機能

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

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

  - https://speakerdeck.com/a_matsuda/ruby-2-dot-0-on-rails
  - http://globaldev.co.uk/2012/11/ruby-2-0-0-preview-features/
  - http://www.infoq.com/news/2012/11/ruby-20-preview1
  - http://timelessrepo.com/refinements-in-ruby (Refinements)
  - http://el.jibun.atmarkit.co.jp/rails/2012/11/ruby-20-8256.html (in
Japanese)
  - https://speakerdeck.com/nagachika/rubyist-enumeratorlazy(Enumerator::Lazy,
in Japanese)

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

## 注意点

### 非互換について

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

  - デフォルトのスクリプトエンコーディングが UTF-8 になりました [#6679] 。
    これは既存のプログラムに影響を与えることが報告されています。例えば、
    ベンチマークプログラムが非常に遅くなるなど [ruby-dev:46547] 。
    公式リリースまでに仕様が変化するかもしれません。

  - iconv が削除されました。元々 M17N が導入された 1.9 の時点で非推奨のものでした。
    String#encode などを使って書き換えてください。

  - ABI 互換性がなくなっています [ruby-core:48984] 。通常のユーザは、拡張
    ライブラリを再インストールするだけでよいはすです。「1.9 の .so, .bundle ファイル
    をコピーするな」とだけ気をつけてください。

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

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

  - http://bugs.ruby-lang.org/projects/ruby/wiki/200UpgradeNotesDraft

### refinements の扱い

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

## special thanks

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

-- 
Yusuke Endoh <mame / tsg.ne.jp>