Japanese follows; 日本語はあとで

Hello all --

We are pleased to announce the release of Ruby 2.0.0-rc1, the first release
candidate of Ruby 2.0.0.

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc1.tar.bz2
  SIZE:   10822768 bytes
  MD5:    24cebdda11e01ff4889ac983cd7dc02c
  SHA256: 4033ddadd0b44eecfcb7686231ebd109ee6f22bf09797a7e15882b9df0b1ee81

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc1.tar.gz
  SIZE:   13621408 bytes
  MD5:    7d587dde85e0edf7a2e4f6783e6c0e2e
  SHA256: f9ca3e5b539ccf6bca6875d448a1aec34e73f7c173af180e58500c6f47096916

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc1.zip
  SIZE:   15117193 bytes
  MD5:    6ff5475553946c4dba1f68e9ce42e606
  SHA256: 76e7ed7e95057a77bd80f557a60be6a46eb0e17fa7815aadca26d475f7a8f72a

## 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 [#6636]
  - DTrace support
  - TracePoint
  - Optimized IO performance on Windows
  - NativeClient support
  - Documentation improvement
  - Enhanced asynchronous interrupt handling
  - Launch-time memory usage tuning parameters
  - Refinements [experimental]

.. and more improvements.  See NEWS for details.

  - http://svn.ruby-lang.org/repos/ruby/tags/v2_0_0_rc1/NEWS

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 a some benchmark programs
    that have become 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.

### Support level of Each Platform

We plan to decide "supported level list" depending upon whether 2.0.0-rc1
builds/works or not on each platform.
Please try it on your favorite platform(s), and report if it works all right
or not!

### Schedule

There are still minor known issues.  We are now engaged in fixing them.
We will release 2.0.0-rc2 in early February, and 2.0.0-p0 at 24th Feb.
(the 20th anniversary of Ruby).

Thanks!


こんにちは。
Ruby 2.0.0-rc1 をリリースします。Ruby 2.0.0 の最初の release candidate です。


* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc1.tar.bz2
  SIZE:   10822768 bytes
  MD5:    24cebdda11e01ff4889ac983cd7dc02c
  SHA256: 4033ddadd0b44eecfcb7686231ebd109ee6f22bf09797a7e15882b9df0b1ee81

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc1.tar.gz
  SIZE:   13621408 bytes
  MD5:    7d587dde85e0edf7a2e4f6783e6c0e2e
  SHA256: f9ca3e5b539ccf6bca6875d448a1aec34e73f7c173af180e58500c6f47096916

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc1.zip
  SIZE:   15117193 bytes
  MD5:    6ff5475553946c4dba1f68e9ce42e606
  SHA256: 76e7ed7e95057a77bd80f557a60be6a46eb0e17fa7815aadca26d475f7a8f72a

## 2.0.0 の新機能

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

その他改善多数。詳しくは NEWS をご覧あれ。

  - http://svn.ruby-lang.org/repos/ruby/tags/v2_0_0_rc1/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 の将来のバージョンで変化する可能性があることに注意してください。

### プラットフォームのサポートレベル

各プラットフォームのサポート状況は、2.0.0-rc1 の動作実績を元に決める予定です。
是非あなたのプラットフォームで動作させてみて、問題なく動くかどうかを報告して
ください。

### 今後の予定

まだ小さな既知の問題が残っています。現在修正に取り組んでいます。
2 月上旬に 2.0.0-rc2 を、2 月 24 日 (Ruby 20 周年の日) に 2.0.0-p0 をリリース
する予定です。

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