由 Yusuke Endoh 发布于 2013年2月8日
Ruby 2.0.0-rc2 已发布。这将是 Ruby 2.0.0 的最后一个候选版本。
请尝试一下,如果发现任何问题,请报告。
下载地址
-
<URL:https://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.tar.bz2>
SIZE: 10822239 bytes MD5: e92420131bd7994513e0bf09a3e2a19b SHA256: d55f897bb04283c5fa80223d96d990fe8ecb598508dd59443b356cbba1f66145
-
<URL:https://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.tar.gz>
SIZE: 13616756 bytes MD5: 9d5e6f26db7c8c3ddefc81fdb19bd41a SHA256: 87072ab3e6d393d47f7402682364e4f24efe1c518969795cc01fcdeeb0e646f3
-
<URL:https://cache.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: 转换为哈希的约定
- %i: 符号数组的字面量
- 更新的正则表达式引擎:Onigmo(Oniguruma 的一个分支)
- 引入了 Enumerator#size 和 Range#size
- DTrace 支持
- TracePoint
- 优化了 require 性能(尤其是在 Windows 上)
- NativeClient 支持
- 文档改进
- 增强的异步中断处理
- 启动时堆栈大小调整参数
- Refinements [实验性]
… 以及更多改进。详情请参阅 NEWS。
以下是第三方的一些介绍性文章
- <URL:https://speakerdeck.com/a_matsuda/ruby-2-dot-0-on-rails>
- <URL:http://globaldev.co.uk/2012/11/ruby-2-0-0-preview-features/>
- <URL:http://www.infoq.com/news/2012/11/ruby-20-preview1>
- <URL:http://timelessrepo.com/refinements-in-ruby> (Refinements)
- <URL:http://el.jibun.atmarkit.co.jp/rails/2012/11/ruby-20-8256.html> (日语)
- <URL:https://speakerdeck.com/nagachika/rubyist-enumeratorlazy> (Enumerator::Lazy,日语)
(如果您自愿提供更多文章,我们可能会在下一个版本公告中引用或提及它们。)
注意事项
不兼容性
我们知道有三个值得注意的不兼容之处
- ruby 脚本的默认编码现在是 UTF-8 [#6679]。一些人报告说它会影响现有程序,例如某些基准程序变得非常慢 [ruby-dev:46547]。该规范可能会在正式发布时进行更改。
- 删除了 iconv,它在 ruby 1.9 中引入 M17N 时已被弃用。请改用 String#encode 等。
- 存在 ABI 破坏 [ruby-core:48984]。我们认为普通用户可以/应该重新安装扩展库。您应该注意:“不要从 1.9 复制 .so 或 .bundle 文件”。
存在一些相对较小的不兼容性。[ruby-core:49119] 请报告您发现的任何其他不兼容之处。
仅供参考:我们正在创建升级说明,但某些部分已经过时。
Refinements 的状态
2.0.0 将包含 refinements 作为“实验性功能”,因为我们无法就其详细规范达成一致。请注意,其行为可能会在未来版本的 Ruby 中发生更改。
特别感谢
我感谢所有尝试预览版和 rc1 版本的人!我感谢所有贡献者为修复许多错误所做的辛勤工作。我非常感谢所有帮助我完成此版本的人。