Japanese later; 日本語はあとで

Hello all --

We are pleased to announce the release of Ruby 2.0.0-preview1.
Please check out the new features in Ruby 2.0 before final release!

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-preview1.tar.bz2
  SIZE:   10309440 bytes
  MD5:    47a0f662f0e258aa1c5e429c310861b3
  SHA256: 79e5605003bf6766fbd123ce00a0027df716ba6d28494c35185909f7e61a5bdf

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-preview1.tar.gz
  SIZE:   12937316 bytes
  MD5:    c7d73f3ddb6d25e7733626ddbad04158
  SHA256: 94b585560c05cb40fadd03e675bd3beb8271c2e976b45644cc765bf854cfd80c

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-preview1.zip
  SIZE:   14470260 bytes
  MD5:    4adb51aa69b56b81c81a8c5f892689cf
  SHA256: c327f3d91ed7033790244d5b263d7b346f3d8efe808079f5a598507fad90ee6e


## The new features in 2.0.0

  - Refinements
  - Keyword arguments
  - Enumerator#lazy
  - Module#prepend
  - Converting convention to Hash: #to_h
  - %i: a literal for symbol array
  - regexp engine is changed to Onigmo
  - DTrace support

... and more improvements.  See NEWS for details.

Unfortunately, no introductory document is available yet.
(If you volunteer to write and provide, we may cite or refer to it
in the next release announcement.)


## The targets

All Ruby users, especially, the following people are strongly
encouraged to provide feedback on anything you notice.

  - All developers who want to make your products "2.0 ready".
  - Those who proposed 2.0 features.
  - Ruby committers.


## Notes

Some 2.0 features are not implemented yet.
In particular, we are planning to update Rubygems, Rdoc and Rake.
DTrace support is NOT included in preview1; will be in preview2.

  #6670: str.chars.last should be possible
  #3346: __DIR__ revisited
  #3731: Easier Embedding API for Ruby
  #1586: Including a module already present in ancestors should not be ignored
  #2294: [PATCH] ruby_bind_stack() to embed Ruby in coroutine
  #1952: cannot stop with Ctrl+C
  #2255: unicode parameters cannot be passed to ruby

If you know other features that are accepted but not implemented,
let us know.

The stdlib Syck was completely replaced with Psych, which requires
libyaml if you want to use YAML.

We have taken considerable care in source-level compatibility with
1.9.  We believe all "normal" programs will work without modification.
So, please give it a try, and report if your program does not work.


## The (rough) schedule

  - in early December: 2.0.0-preview2
  - around Christmas time: code freeze
  - at/after New Year: 2.0.0-rc1
  - in early February: 2.0.0-rc2
  - 24 February: 2.0.0-p0

## special thanks

I appreciate all who helped me (a lazy release manager).
In particular, ko1 coordinated a lot, naruse covered almost all
release jobs in place of me, and unak and Aaron Patterson reviewed
the draft of this announcement.  Thank you all!



2.0.0-preview1 をリリースします。
Ruby の次世代安定版 2.0.0 に含まれる機能を一足先に確かめてください。

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-preview1.tar.bz2
  SIZE:   10309440 bytes
  MD5:    47a0f662f0e258aa1c5e429c310861b3
  SHA256: 79e5605003bf6766fbd123ce00a0027df716ba6d28494c35185909f7e61a5bdf

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-preview1.tar.gz
  SIZE:   12937316 bytes
  MD5:    c7d73f3ddb6d25e7733626ddbad04158
  SHA256: 94b585560c05cb40fadd03e675bd3beb8271c2e976b45644cc765bf854cfd80c

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-preview1.zip
  SIZE:   14470260 bytes
  MD5:    4adb51aa69b56b81c81a8c5f892689cf
  SHA256: c327f3d91ed7033790244d5b263d7b346f3d8efe808079f5a598507fad90ee6e


☆ 2.0.0 の新機能

  - Refinements
  - キーワード引数
  - Enumerator#lazy
  - Module#prepend
  - Hash への変換メソッド #to_h
  - %i: シンボルの配列のリテラル
  - 正規表現エンジンを Onigmo に変更
  - DTrace サポート

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

残念ながら、各機能の紹介記事は用意できていません。
ブログ等で紹介記事を書いていただけると、今後のリリースアナウンスで
引用や参照をさせていただくかも。


☆対象者

Ruby をお使いの方すべてですが、特に以下に該当する方は気づいた点を
是非フィードバックしてください。

  - 自分のプロダクトを早期に 2.0 対応させたい開発者
  - 2.0.0 に機能提案して採択された人
  - Ruby のコミッタ


☆注意点

実装予定の新機能がいくつか未実装です。
特に、rubygems, rdoc, rake は最新版にアップデートされる予定です。
DTrace サポートは preview1 に含まれていません。preview2 に含まれる
予定です。

  #6670: str.chars.last should be possible
  #3346: __DIR__ revisted
  #3731: Easier Embedding API for Ruby
  #1586: Including a module already present in ancestors should not be ignored
  #2294: [PATCH] ruby_bind_stack() to embed Ruby in coroutine
  #1952: cannot stop with Ctrl+C
  #2255: unicode parameters cannot be passed to ruby

これ以外に「実装予定なのに未実装の機能」があれば、教えてください。

syck が取り除かれています。psych に完全に置き換えられました。
その結果、yaml を扱いたい場合は libyaml が必須になっています。

1.9 とのソースレベル互換性はかなり意識されており、「ふつう」の
プログラムであれば特に修正なく動くと思います。ぜひお試しください。
もし動かない場合はご報告ください。


☆ (大まかな) 今後の予定

  - 12 月上旬: 2.0.0-preview2
  - クリスマスごろ: code freeze
  - 正月過ぎたくらい: 2.0.0-rc1
  - 2 月上旬: 2.0.0-rc2
  - 2/24: 2.0.0-p0

☆謝辞

怠惰なリリースマネージャを助けてくれた皆さんに感謝します。
特に、いろいろ調整してくれた笹田さん、実作業のほとんどをやって
くれた成瀬さん、このアナウンス文面をレビューしてくれた usa さんと
Aaron Patterson 、みなさん感謝です!

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